프로젝트

일반

사용자정보

통계
| 브랜치(Branch): | 개정판:

hytos / DTI_PID / SPPIDConverter / Main.vb @ e4b3e191

이력 | 보기 | 이력해설 | 다운로드 (26.1 KB)

1 4f359afa Gyusu
Imports System.IO
2
Imports System.Data.SqlClient
3
Imports System.Data.SQLite
4
Imports Plaice
5
Imports Llama
6
Imports PidA
7 962b2464 Gyusu
8 4f359afa Gyusu
Public Class Main
9
10
    Dim _DB As DataTable = New DataTable()
11
    Dim _Placement As New Placement
12
    Dim _DWG_X = 0.84 '0.695 '1 '
13
    Dim _DWG_Y = 0.594 '0.585 '0.8 '
14
15
    Dim _IMG_X = 0
16
    Dim _IMG_Y = 0
17
18
    Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
19
        Dim sDBPath As String = "C:\Users\kyusu\Desktop\Auto SPPID 변환 프로젝트\PID.db"
20
        LoadDB(sDBPath)
21 962b2464 Gyusu
22
        SetUpListViewColumns()
23
        LoadTree()
24
25
26
    End Sub
27
    Private Sub LoadTree()
28
29
        Dim i As Integer
30
        Dim j() As String
31
        j = Directory.GetLogicalDrives
32
        For i = 0 To UBound(j)
33
34
            Dim cdrive As System.IO.DriveInfo
35
            cdrive = My.Computer.FileSystem.GetDriveInfo(j(i).ToString)
36
37
            Select Case cdrive.DriveType
38
                Case DriveType.Fixed
39
                    Tree_XMLFiles.Nodes.Add(j(i), j(i).ToString, 3)
40
                Case DriveType.CDRom
41
                    Tree_XMLFiles.Nodes.Add(j(i), j(i).ToString, 11)
42
                Case DriveType.Network
43
                    Tree_XMLFiles.Nodes.Add(j(i), j(i).ToString, 5)
44
                Case DriveType.Removable
45
                    Tree_XMLFiles.Nodes.Add(j(i), j(i).ToString, 12)
46
            End Select
47
48
        Next
49
    End Sub
50
51
    Private Sub SetUpListViewColumns()
52
        ' TODO: Add code to set up listview columns
53
        ListView_File.Columns.Add("  Name ")
54
        '   ListView_File.Columns.Add(" Size  ")
55
        '    ListView_File.Columns.Add(" Extension  ")
56
        ListView_File.Columns.Add(" Date Modified  ")
57
        SetView(View.Details)
58 4f359afa Gyusu
    End Sub
59
60 962b2464 Gyusu
61
    Private Sub SetView(ByVal View As System.Windows.Forms.View)
62
        'Figure out which menu item should be checked
63
        'Dim MenuItemToCheck As ToolStripMenuItem = Nothing
64
        'Select Case View
65
        '    Case View.Details
66
        '        MenuItemToCheck = DetailsToolStripMenuItem
67
        '    Case View.LargeIcon
68
        '        MenuItemToCheck = LargeIconsToolStripMenuItem
69
        '    Case View.List
70
        '        MenuItemToCheck = ListToolStripMenuItem
71
        '    Case View.SmallIcon
72
        '        MenuItemToCheck = SmallIconsToolStripMenuItem
73
        '    Case View.Tile
74
        '        MenuItemToCheck = TileToolStripMenuItem
75
        '    Case Else
76
        '        Debug.Fail("Unexpected View")
77
        '        View = View.Details
78
        '        MenuItemToCheck = DetailsToolStripMenuItem
79
        'End Select
80
81
        ''Check the appropriate menu item and deselect all others under the Views menu
82
        'For Each MenuItem As ToolStripMenuItem In ListViewToolStripButton.DropDownItems
83
        '    If MenuItem Is MenuItemToCheck Then
84
        '        MenuItem.Checked = True
85
        '    Else
86
        '        MenuItem.Checked = False
87
        '    End If
88
        'Next
89
90
        'Finally, set the view requested
91
        ListView_File.View = View.Details
92
    End Sub
93
94
    Private Sub Btn_FolderPath_Click(sender As Object, e As EventArgs)
95 4f359afa Gyusu
        Dim oOpenFolderDlg = New FolderBrowserDialog()
96
        Dim result As DialogResult = oOpenFolderDlg.ShowDialog()
97
        Dim sFolderName As String = ""
98
99
        If (result = DialogResult.OK) Then
100
            sFolderName = oOpenFolderDlg.SelectedPath
101 962b2464 Gyusu
            '    Txt_FolderPath.Text = sFolderName
102 4f359afa Gyusu
            InitXMLTree(sFolderName)
103
        End If
104
105
    End Sub
106
107
    Private Sub InitXMLTree(ByVal sFolderPath As String)
108
        Tree_XMLFiles.Nodes.Clear()
109
        Dim oRootNode As TreeNode = Tree_XMLFiles.Nodes.Add("XML")
110
        '.XML 만 로드
111
        Dim sfileEntries As String() = Directory.GetFiles(sFolderPath, "*.xml")
112
        ' Process the list of files found in the directory.
113
        Dim sfileName As String
114
        For Each sfileName In sfileEntries
115
            oRootNode.Nodes.Add(sfileName)
116
        Next sfileName
117
        oRootNode.ExpandAll()
118
    End Sub
119
120 962b2464 Gyusu
    Private Function CreateDwg(ByVal oDwgName As String, ByVal sPlantGroupName As String, ByVal sTemplateFileName As String) As Boolean
121 4f359afa Gyusu
        Try
122
            Dim datasource As LMADataSource
123
            Dim objPIDAutoApp As Object
124
            Dim objPIDADrawing As Object
125
            Dim PlantGroupName As String
126
            Dim TemplateFileName As String
127
            Dim DrawingNumber As String
128
            Dim DrawingName As String
129
130
            Dim extension As String = Path.GetExtension(oDwgName)
131
            oDwgName = oDwgName.Replace(extension, "")
132
            datasource = New LMADataSource
133
            objPIDAutoApp = CreateObject("PIDAutomation.Application")
134 962b2464 Gyusu
            PlantGroupName = sPlantGroupName
135 4f359afa Gyusu
            'considering accessing T_OptinSetting to read the template files path, which will be more flexible
136
            TemplateFileName = sTemplateFileName
137
            DrawingNumber = oDwgName
138
            DrawingName = oDwgName
139
            objPIDADrawing = objPIDAutoApp.Drawings.Add(PlantGroupName, TemplateFileName, DrawingNumber, DrawingName)
140
            If Not objPIDADrawing Is Nothing Then
141
                '이미 오픈
142
                objPIDADrawing.CloseDrawing
143
            End If
144
            objPIDAutoApp.Quit
145
            objPIDAutoApp = Nothing
146
            objPIDADrawing = Nothing
147
            Return True
148
        Catch ex As Exception
149
            Return False
150
        End Try
151
152
    End Function
153
154
#Region "Load Pipe"
155
    Private Function LoadPipe_DT() As DataTable
156
        Dim oDt As New DataTable
157
        oDt.Columns.Add("start_x")
158
        oDt.Columns.Add("start_y")
159
        oDt.Columns.Add("end_x")
160
        oDt.Columns.Add("end_y")
161
        oDt.Columns.Add("Symbol")
162
        Return oDt
163
164
    End Function
165
166
#End Region
167
168
#Region "Load Symbol"
169
    Private Function LoadSymbol_DT() As DataTable
170
        Dim oDt As New DataTable
171
        oDt.Columns.Add("Name")
172
        oDt.Columns.Add("x")
173
        oDt.Columns.Add("y")
174
        oDt.Columns.Add("Angle")
175
        oDt.Columns.Add("Symbol")
176
        oDt.Columns.Add("Text")
177
        Return oDt
178
    End Function
179
180
#End Region
181
182
    Private Function GetSymbolMapping(ByVal oSymbolName As String) As String
183
        Dim oSystemPath As String = ""
184
        Dim oSelectRow() As DataRow = _DB.Select("[pid_symbolname] = '" + oSymbolName + "'")
185
        If oSelectRow.Length = 1 Then
186
            oSystemPath = oSelectRow(0).Item("sppid_systempath").ToString()
187
        End If
188
        Return oSystemPath
189
    End Function
190
191
    Private Function LoadSymbolInXml(ByVal sXmlPath As String) As DataTable
192
        Dim oDt As DataTable = LoadSymbol_DT()
193
        Dim oElement As XElement = XElement.Load(sXmlPath)
194
        If oElement IsNot Nothing Then
195
            For Each symbols As Object In oElement.Elements("SYMBOLS")
196
                For Each page As Object In symbols.Elements("SYMBOL")
197
                    Dim oAddrow As DataRow = oDt.NewRow()
198
                    Dim oObj As XElement = page.Element("NAME")
199
                    Dim oSymbol = oObj.Value
200
201
                    oObj = page.Element("TEXT")
202 962b2464 Gyusu
                    Dim oText = oObj.Value
203
                    oObj = page.Element("CLASS")
204
                    Dim oClass = oObj.Value
205
                    oObj = page.Element("TYPE")
206
                    Dim oType = oObj.Value
207
                    oObj = page.Element("ITEM")
208
                    Dim oItem = oObj.Value
209
210
                    ' Dim oSymbolPath As String = "\" + oSymbol + "\" + oClass + "\" + oType + "\" + oItem + ".sym"
211
                    Dim oSymbolPath As String = GetSymbolMapping(oItem)
212
213
                    oObj = page.Element("ORIGINALPOINT")
214
                    Dim sOriginPoint = oObj.Value
215
216
                    oObj = page.Element("ANGLE")
217
                    Dim oAngle = oObj.Value
218
219
                    Dim oSplitPos As String() = sOriginPoint.Split(",")
220
                    Dim oX As Double = 0.0
221
                    Dim oY As Double = 0.0
222
                    If IsNumeric(oSplitPos(0)) Then
223
                        oX = Double.Parse(oSplitPos(0))
224
                    End If
225
                    If IsNumeric(oSplitPos(1)) Then
226
                        oY = Double.Parse(oSplitPos(1))
227
                    End If
228 4f359afa Gyusu
229
                    ConvertPoint(oX, oY, _DWG_X, _DWG_Y)
230
                    oAddrow("X") = oX '+ 0.05
231 962b2464 Gyusu
                    oAddrow("Y") = oY
232
                    oAddrow("Angle") = oAngle
233
                    oAddrow("Symbol") = oSymbolPath
234
                    oAddrow("Text") = oText
235
                    oAddrow("Name") = oSymbol
236 4f359afa Gyusu
237
                    oDt.Rows.Add(oAddrow)
238
239
                Next
240
            Next
241
242
        End If
243
    End Function
244
245
246
247
    Private Function LoadPipeInXml(ByVal sXmlPath As String) As DataTable
248
        Try
249
            Dim oDt As DataTable = LoadPipe_DT()
250
            Dim oElement As XElement = XElement.Load(sXmlPath)
251
            If oElement IsNot Nothing Then
252
                Dim DWGElement As XElement = oElement.Element("DWGNAME")
253
                Dim DWGNAME = DWGElement.Value
254
                Dim sXY As XElement = oElement.Element("SIZE")
255
                Dim sSize = sXY.Value
256
                Dim oSplitDWGPos As String() = sSize.Split(",")
257
258
                If IsNumeric(oSplitDWGPos(0)) Then
259
                    _IMG_X = Double.Parse(oSplitDWGPos(0))
260
                End If
261
                If IsNumeric(oSplitDWGPos(1)) Then
262
                    _IMG_Y = Double.Parse(oSplitDWGPos(1))
263
                End If
264
265
                For Each pipes As Object In oElement.Elements("IMGLINES")
266
                    For Each pipe As Object In pipes.Elements("IMGLINE")
267
                        Dim oAddrow As DataRow = oDt.NewRow()
268
                        Dim oObj As XElement = pipe.Element("ITEM")
269
                        Dim oItem = oObj.Value
270
                        ' Dim oSymbolPath As String = "\" + oSymbol + "\" + oClass + "\" + oType + "\" + oItem + ".sym"
271
                        Dim oSymbolPath As String = GetSymbolMapping(oItem)
272
                        oObj = pipe.Element("START")
273
                        Dim oStartPoint = oObj.Value
274
                        Dim oSplitPos As String() = oStartPoint.Split(",")
275
                        Dim oStartpos_X As Double = 0.0
276
                        Dim oStartpos_Y As Double = 0.0
277
                        If IsNumeric(oSplitPos(0)) Then
278
                            oStartpos_X = Double.Parse(oSplitPos(0))
279
                        End If
280
                        If IsNumeric(oSplitPos(1)) Then
281
                            oStartpos_Y = Double.Parse(oSplitPos(1))
282
                        End If
283
284
                        ConvertPoint(oStartpos_X, oStartpos_Y, _DWG_X, _DWG_Y)
285
                        oObj = pipe.Element("END")
286
                        Dim oEndPoint = oObj.Value
287
                        oSplitPos = oEndPoint.Split(",")
288
                        Dim oEndpos_X As Double = 0.0
289
                        Dim oEndpos_Y As Double = 0.0
290
                        If IsNumeric(oSplitPos(0)) Then
291
                            oEndpos_X = Double.Parse(oSplitPos(0))
292
                        End If
293
                        If IsNumeric(oSplitPos(1)) Then
294
                            oEndpos_Y = Double.Parse(oSplitPos(1))
295
                        End If
296
                        ConvertPoint(oEndpos_X, oEndpos_Y, _DWG_X, _DWG_Y)
297
298
                        oAddrow("start_x") = oStartpos_X '+ 0.05
299
                        oAddrow("start_y") = oStartpos_Y
300
                        oAddrow("end_x") = oEndpos_X
301
                        oAddrow("end_y") = oEndpos_Y
302
                        oAddrow("Symbol") = oSymbolPath
303
                        oDt.Rows.Add(oAddrow)
304
305
306
                    Next
307
                Next
308
309
            End If
310
311
312
            Return oDt
313
        Catch ex As Exception
314
            Return Nothing
315
        End Try
316
    End Function
317
318
319
    Private Sub ConvertPoint(ByRef dX As Double, ByRef dY As Double, ByVal dDwgX As Double, ByVal dDwgY As Double)
320
321
        Dim calcx As Double = 0
322
        Dim calcy As Double = 0
323
        calcx = (dX * _DWG_X) / dDwgX 'Math.Round((dX * _DWG_X) / dDwgX, 2)
324
        calcy = _DWG_Y - (dY * _DWG_Y) / dDwgY '_DWG_Y - Math.Round((dY * _DWG_Y) / dDwgY, 2)
325
        dX = calcx
326
        dY = calcy
327
    End Sub
328
329
330
331
332
    Private Function AutoConverting(ByVal oPipe_Dt As DataTable, ByVal oSymbol_Dt As DataTable) As Boolean
333
        Dim iSymbolcount = 0
334
        Dim datasource As LMADataSource
335
        datasource = _Placement.PIDDataSource
336
        Dim iPipecnt As Integer = 0
337
338
        For Each oRow As DataRow In oPipe_Dt.Rows
339
            Dim oposition As String = oRow("position").ToString()
340
            Dim oSymbol As String = oRow("Symbol").ToString()
341
            Dim oSplitStr As String() = Split(oposition, " ")
342
            Dim objConnector As LMConnector
343
            Dim objInputs As PlaceRunInputs
344
            objInputs = New PlaceRunInputs
345
            Dim oDwg_x As Double = 9933
346
            Dim oDwg_y As Double = 7016
347
            For Each sposition As String In oSplitStr
348
                Dim opointstr As String() = Split(sposition, ",")
349
350
                If (opointstr.Length > 1) Then
351
                    If IsNumeric(opointstr(0)) And IsNumeric(opointstr(1)) Then
352
                        Dim ox As Double = opointstr(0)
353
                        Dim oy As Double = opointstr(1)
354
                        ConvertPoint(ox, oy, oDwg_x, oDwg_y)
355
                        objInputs.AddPoint(ox, oy)
356
                    End If
357
                End If
358
            Next
359
            Dim objItem As LMAItem
360
            objItem = _Placement.PIDCreateItem(oSymbol)
361
            objConnector = _Placement.PIDPlaceRun(objItem, objInputs)
362
363
            'Dim objPipeRun As LMPipeRun = datasource.GetPipeRun(objConnector.ModelItemID)
364
            'objPipeRun.Attributes("OperFluidCode").Value = "AFS"
365
            'objPipeRun.Commit()
366
            iPipecnt = iPipecnt + 1
367
368
        Next
369
370
371
        For Each oRow As DataRow In oSymbol_Dt.Rows
372
373
            Dim oSymbol As String = oRow("Symbol").ToString()
374
            Dim oType As String = oRow("Name").ToString()
375
            Dim oText As String = oRow("Text").ToString()
376
            Dim oX As Double = 0.0
377
            Dim oY As Double = 0.0
378
            If IsNumeric(oRow("x").ToString()) Then
379
                oX = Double.Parse(oRow("x").ToString())
380
            End If
381
            If IsNumeric(oRow("y").ToString()) Then
382
                oY = Double.Parse(oRow("y").ToString())
383
            End If
384
            Dim oAngle As Double = 0.0
385
            If IsNumeric(oRow("Angle").ToString()) Then
386
                oAngle = Double.Parse(oRow("Angle").ToString())
387
            End If
388
            '   oSymbol = "\INSTRUMENTation\SYSTEM FUNCTIONS\D C S\DCS FUNC ACCESS IN PRIME LOC.sym"
389
            If oSymbol <> "" Then
390
                If oType = "INSTRUMENT" Then
391
                    Dim sTagsuffix As String = ""
392
                    Dim sTagSequenceNo As String = ""
393
                    Dim sMeasuredVariableCode As String = ""
394
                    Dim sInstrumentTypeModifier As String = ""
395
                    If oText <> "" Then
396
                        If oText.Contains(",") Then
397
                            Dim splitstr() As String = oText.Split(",")
398
                            For i = 0 To splitstr.Count - 1
399
                                If i = 0 Then
400
                                    sMeasuredVariableCode = Mid(splitstr(i), 1, 1)
401
                                    sTagSequenceNo = Mid(splitstr(i), 2, Len(splitstr(i)))
402
                                Else
403
                                    If Len(splitstr(i)) = 1 Then
404
                                        sInstrumentTypeModifier = splitstr(i)
405
                                    ElseIf Len(splitstr(i)) = 0 Then
406
407
                                    ElseIf Len(splitstr(i)) > 1 Then
408
                                        sInstrumentTypeModifier = Mid(splitstr(i), 1, 1)
409
                                        sTagsuffix = Mid(splitstr(i), 2, Len(splitstr(i)))
410
                                    End If
411
                                End If
412
                            Next
413
                        Else
414
                            sMeasuredVariableCode = Mid(oText, 1, 1)
415
                            sTagSequenceNo = Mid(oText, 2, Len(oText))
416
                        End If
417
418
                    End If
419
420
                    Dim objInstrSym As LMSymbol
421
                    objInstrSym = _Placement.PIDPlaceSymbol(oSymbol, oX, oY, , oAngle)
422
                    Dim objInstr As LMInstrument
423
                    objInstr = datasource.GetInstrument(objInstrSym.ModelItemID)
424
425
                    Dim objItem As LMAItem
426
                    objItem = _Placement.PIDCreateItem(oSymbol)
427
428
                    'Dim objInstrClass As LMInstrument
429
                    'objInstrClass = datasource.GetInstrument(objItem.Id)
430
                    objInstr.Attributes("MeasuredVariableCode").Value = sMeasuredVariableCode
431
                    objInstr.Attributes("InstrumentTypeModifier").Value = sInstrumentTypeModifier
432
                    objInstr.Attributes("TagSuffix").Value = sTagsuffix
433
                    objInstr.Attributes("TagSequenceNo").Value = sTagSequenceNo
434
                    objInstr.Commit()
435
436
437
                    'objItem = objPlacement.PIDCreateItem(oSymbol)
438
                    'Dim objInstrLoop As LMInstrLoop
439
                    'objInstrLoop = datasource.GetInstrLoop(objItem.Id)
440
441
                    'objInstrLoop.Commit()
442
443
                ElseIf oType = "GATE VALVE WITH PLUG" Then
444
445
                ElseIf oType = "MEDIUM 1D 1TO1" Then
446
447
1:
448
                Else
449
                    _Placement.PIDPlaceSymbol(oSymbol, oX, oY, , oAngle)
450
451
                End If
452
                iSymbolcount = iSymbolcount + 1
453
            Else
454
            End If
455
456
        Next
457
        'For Each oRow As DataRow In oPipe_Dt.Rows
458
        '    Dim oSymbol As String = oRow("Symbol").ToString()
459
        '    Dim oStartPos_x As Double = 0.0
460
        '    Dim oStartPos_y As Double = 0.0
461
        '    Dim oEndPos_x As Double = 0.0
462
        '    Dim oEndPos_y As Double = 0.0
463
        '    If IsNumeric(oRow("start_x").ToString()) Then
464
        '        oStartPos_x = Double.Parse(oRow("start_x").ToString())
465
        '    End If
466
        '    If IsNumeric(oRow("start_y").ToString()) Then
467
        '        oStartPos_y = Double.Parse(oRow("start_y").ToString())
468
        '    End If
469
470
        '    If IsNumeric(oRow("end_x").ToString()) Then
471
        '        oEndPos_x = Double.Parse(oRow("end_x").ToString())
472
        '    End If
473
        '    If IsNumeric(oRow("end_y").ToString()) Then
474
        '        oEndPos_y = Double.Parse(oRow("end_y").ToString())
475
        '    End If
476
        '    Dim objConnector As LMConnector
477
        '    Dim objInputs As PlaceRunInputs
478
        '    objInputs = New PlaceRunInputs
479
        '    objInputs.AddPoint(oStartPos_x, oStartPos_y)
480
        '    objInputs.AddPoint(oEndPos_x, oEndPos_y)
481
        '    Dim objItem As LMAItem
482
        '    objItem = objPlacement.PIDCreateItem(oSymbol)
483
        '    objConnector = objPlacement.PIDPlaceRun(objItem, objInputs)
484
        '    'Dim objPipeRun As LMPipeRun = datasource.GetPipeRun(objConnector.ModelItemID)
485
        '    'objPipeRun.Attributes("OperFluidCode").Value = "AFS"
486
        '    'objPipeRun.Commit()
487
        '    pipecnt = pipecnt + 1
488
489
        'Next
490
491
492
493
494
        MsgBox("symbol: " & iSymbolcount & "개, pipe : " & iPipecnt & "개 변환완료")
495
    End Function
496
497
498
    Private Sub Tree_XMLFiles_AfterCheck(sender As Object, e As TreeViewEventArgs) Handles Tree_XMLFiles.AfterCheck
499
        If e.Node.Checked = True Then
500
            For Each oNode As TreeNode In e.Node.Nodes
501
                oNode.Checked = True
502
            Next
503
        Else
504
            For Each oNode As TreeNode In e.Node.Nodes
505
                oNode.Checked = False
506
            Next
507
        End If
508
    End Sub
509
510
    Private Sub LoadDB(ByVal sDBPath As String)
511
512
        Try
513
            Dim sConnectionstring As String = "Data Source=" & sDBPath & ";Version=3;Synchronous=Off;UTF8Encoding=True;"
514
            Dim conn As SQLiteConnection = New SQLiteConnection(sConnectionstring)
515
            conn.Open()
516
            Dim sQuery As String = "Select * from Mapping"
517
            Dim cmd As SQLiteCommand = conn.CreateCommand()
518
            Dim adapter As SQLiteDataAdapter = New SQLiteDataAdapter(sQuery, conn)
519
            Dim oDataSet As DataSet = New DataSet()
520
            adapter.Fill(oDataSet)
521
            _DB = oDataSet.Tables(0)
522
        Catch ex As Exception
523
524
        End Try
525
526
527
    End Sub
528
529 962b2464 Gyusu
    Dim first_start As Boolean = False
530
    Dim folders_path As String
531
532
    Private Sub Tree_XMLFiles_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles Tree_XMLFiles.AfterSelect
533
        If first_start = False Then Exit Sub
534
        Dim pa = e.Node.FullPath.ToString
535
536
        printfilesfolders_here(pa, e.Node)
537
538
        displayfiles(pa)
539
540
        ''be careful ! displayfils comes BEFORE you change // to / in pa !!!
541
        Dim coco As String = ""
542
        coco = pa.ToString
543
        coco = coco.Replace("\\", "\")
544
        Me.Text = coco
545
        folders_path = coco
546
    End Sub
547
548
    Sub printfilesfolders_here(ByVal path As String, ByRef itree As TreeNode)
549
550
        Dim foldername As String
551
        Dim filename As String
552
        itree.Nodes.Clear()
553
        On Error GoTo eee
554
        For Each foldername In Directory.GetDirectories(path)
555
            On Error GoTo eee
556
            Dim jj = foldername.LastIndexOf("\")
557
            Dim jj1 = foldername.Length - jj
558
            Dim foldr = foldername.Substring((jj + 1), (jj1 - 1))
559
            itree.Nodes.Add(foldr, foldr)
560
        Next ' if you put this next at the end of procedure recursive will be done on first folder only
561
        Exit Sub
562
eee:
563
    End Sub
564
565
    Sub displayfiles(ByVal path As String)
566
567
        Dim lvItem As ListViewItem
568
        ListView_File.Items.Clear()
569
        Me.ToolStripProgressBar1.Visible = True
570
        ' lvItem = ListView.Items.Add("ListViewItem1")
571
        '   lvItem.SubItems.AddRange(New String() {"Size", "extention", "date modified"})
572
573
        Dim filename As String
574
        On Error GoTo wwq
575
        ' Directory.GetFiles(path).Length.
576
        Me.ToolStripProgressBar1.Maximum = Directory.GetFiles(path).Length + 1
577
        Me.ToolStripProgressBar1.Value = 0
578
        For Each filename In Directory.GetFiles(path)
579
            On Error GoTo wwq
580
            Dim jj_ = filename.LastIndexOf("\")
581
            Dim jj1_ = filename.Length - jj_
582
            Dim fil = filename.Substring((jj_ + 1), (jj1_ - 1))
583
            If fil.Contains(".xml") Then
584
                Me.ToolStripProgressBar1.Value = Me.ToolStripProgressBar1.Value + 1
585
                ' ListView.Items.Add(fil, 13) ''old 13 28
586
                lvItem = ListView_File.Items.Add(fil, 13) '2 5 7 work, 0 alos
587
                Dim infoReader As System.IO.FileInfo
588
                infoReader = My.Computer.FileSystem.GetFileInfo(filename)
589
                '    lvItem.SubItems.AddRange(New String() {infoReader.Length.ToString + " Byte", infoReader.Extension.ToString, infoReader.LastWriteTime})
590
                lvItem.SubItems.AddRange(New String() {infoReader.LastWriteTime})
591
                ListView_File.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
592
            End If
593
594
595
        Next
596
        Me.ToolStripProgressBar1.Visible = False
597
        Exit Sub
598
wwq:
599
        Me.ToolStripProgressBar1.Visible = False
600
        MsgBox(Err.Description)
601
    End Sub
602
603
    Private Sub Tree_XMLFiles_MouseMove(sender As Object, e As MouseEventArgs) Handles Tree_XMLFiles.MouseMove
604
        first_start = True
605
    End Sub
606
607
    Private Sub ListView_File_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView_File.SelectedIndexChanged
608
        Dim indexes As ListView.SelectedIndexCollection =
609
                         Me.ListView_File.SelectedIndices
610
        Dim index As Integer
611
612
        For Each index In indexes
613
            'On Error Resume Next
614
            If folders_path.EndsWith("\") = True Then
615
                Me.Status_Main.Items(0).Text = folders_path + (Me.ListView_File.Items(index).Text)
616
                'On Error Resume Next
617
            Else
618
                Me.Status_Main.Items(0).Text = folders_path + "\" + (Me.ListView_File.Items(index).Text)
619
            End If
620
621
            Dim infoReader As System.IO.FileInfo
622
            infoReader = My.Computer.FileSystem.GetFileInfo(Me.Status_Main.Items(0).Text)
623
            Me.Status_Main.Items(1).Text = " Created : " + infoReader.CreationTime.ToString + " " + infoReader.Attributes.ToString
624
        Next
625
    End Sub
626
627
    Private Sub Procees()
628
        Dim indexes As ListView.SelectedIndexCollection =
629
                            Me.ListView_File.SelectedIndices
630
        Dim index As Integer
631
632
        For Each index In indexes
633
            'On Error Resume Next
634
            If folders_path.EndsWith("\") = True Then
635
                On Error GoTo out
636
                Me.Status_Main.Items(0).Text = folders_path + (Me.ListView_File.Items(index).Text)
637
                On Error GoTo out
638
                'On Error Resume Next
639
            Else
640
                Me.Status_Main.Items(0).Text = folders_path + "\" + (Me.ListView_File.Items(index).Text)
641
                On Error GoTo out
642
            End If
643
644
            Dim infoReader As System.IO.FileInfo
645
            infoReader = My.Computer.FileSystem.GetFileInfo(Me.Status_Main.Items(0).Text)
646
            Me.Status_Main.Items(1).Text = " Created : " + infoReader.CreationTime.ToString + " " + infoReader.Attributes.ToString
647
            On Error GoTo out
648
            MsgBox(Me.Status_Main.Items(0).Text + " is processed")
649
            On Error GoTo out
650
        Next
651
        Exit Sub
652
out:
653
        MsgBox(Err.Description)
654
    End Sub
655
656
    Private Sub Btn_Convert_Click(sender As Object, e As EventArgs) Handles Btn_Convert.Click
657
        If ListView_File.Items.Count > 0 Then
658
            For Each oItem As ListViewItem In ListView_File.Items
659
                If oItem.Checked Then
660
                    Dim sDwgName As String = oItem.Text
661
                    Dim sDwgNo As String = oItem.Text
662
                    Dim oDwgPath As String = ""
663
                    oDwgPath = Tree_XMLFiles.SelectedNode.FullPath + "\" + sDwgName
664
                    Dim sPlantGroupName As String = "Test"
665
                    Dim sTemplateName As String = "Gazprom Project.pid"
666
                    Dim oPipe_Dt As DataTable = LoadPipeInXml(oDwgPath)
667
                    Dim oSymbol_Dt As DataTable = LoadSymbolInXml(oDwgPath)
668
                    '도면 생성
669
                    If CreateDwg(sDwgName, sPlantGroupName, sTemplateName) Then
670
                        'AutoConverting
671
                        AutoConverting(oPipe_Dt, oSymbol_Dt)
672
                    End If
673
                End If
674 4f359afa Gyusu
675 962b2464 Gyusu
            Next
676
        End If
677
    End Sub
678 4f359afa Gyusu
End Class
클립보드 이미지 추가 (최대 크기: 500 MB)