Files
2025-01-20 10:31:02 +01:00

512 lines
28 KiB
VB.net

Imports System.Text.RegularExpressions
Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Module TableUtility
Friend Const DATETIME As String = "%DATE_TIME%"
Friend Const TABLENAME As String = "%TABLE_NAME%"
Private Const MMACHINEDATA As String = ".MMachineData"
Private Const MACHNAME As String = "MachName"
Private Const NCGENERATE As String = "NcGenerate"
Private Const MAKERAW As String = "MakeRaw"
Private Const MTABLE As String = ".MTable"
Private Const NAME As String = "Name"
Private Const ONCONST As String = "On"
Private Const MACHORD As String = "MachOrd"
Private Const MACHJOIN As String = "MachJoin"
Private Const MACH As String = "Mach"
Private Const MACHUPORD As String = "MachUpOrd"
Private Const MACHUPJOIN As String = "MachUpJoin"
Private Const MACHUP As String = "MachUp"
Private Const MACHDWORD As String = "MachDwOrd"
Private Const MACHDWJOIN As String = "MachDwJoin"
Private Const MACHDW As String = "MachDw"
Private Const MACHID As String = "MachId"
Private Const SHIFT As String = "Shift"
Private Const LINK As String = "Link"
Private Const PROPERTYTABLE As String = "PropertyTable"
Private Const OPER As String = "Oper"
Private Const GROUP As String = "Group"
Private Const PROPERTYPAR As String = "Property"
Friend Function ReadDoorsTable(Table As MTableListBoxItem) As Boolean
Dim FileContent As String() = File.ReadAllLines(Table.m_TableNamePath)
Dim bMMachineData As Boolean = False
Dim bMTable As Boolean = False
Dim bPropertyTable As Boolean = False
Dim bOrderedMachining As Boolean = False
For LineIndex As Integer = 0 To FileContent.Count - 1
If FileContent(LineIndex).Contains(MMACHINEDATA) Then
bMMachineData = True
ElseIf FileContent(LineIndex).Contains(MTABLE) Then
bMTable = True
ElseIf FileContent(LineIndex).Contains("PropertyTable") Then
bPropertyTable = True
End If
Dim Open As Integer = CountCharacter(FileContent(LineIndex), "{"c)
Dim Close As Integer = CountCharacter(FileContent(LineIndex), "}"c)
If Close > Open Then
If bMMachineData Then
bMMachineData = False
ElseIf bMTable Then
bMTable = False
ElseIf bPropertyTable Then
bPropertyTable = False
End If
End If
If bMMachineData Then
Dim sMachName As String = SearchKey(FileContent(LineIndex), MACHNAME)
Dim bNcGenerate As Boolean = False
Dim bMakeraw As Boolean = False
If Not String.IsNullOrEmpty(sMachName) Then
Dim sNcGenerate As String = SearchKey(FileContent(LineIndex), NCGENERATE)
If Not String.IsNullOrEmpty(sNcGenerate) Then
bNcGenerate = Convert.ToBoolean(sNcGenerate)
End If
Dim sMakeraw As String = SearchKey(FileContent(LineIndex), MAKERAW)
If Not String.IsNullOrEmpty(sMakeraw) Then
bMakeraw = Convert.ToBoolean(sMakeraw)
End If
Try
Table.SharedMachIndex += 1
Dim Temp As New MTableMachineListBoxItem(sMachName, bNcGenerate, bMakeraw, Table.SharedMachIndex)
If IsNothing( Temp.SelectedMachine) Then
EgtOutLog( "MTable error : missing selected machine " & sMachName)
Return False
End If
Table.ActiveMachinesList.Add(Temp)
Table.m_MachIdList.Add(Table.SharedMachIndex)
Catch ex As Exception
EgtOutLog(ex.ToString)
Return False
End Try
End If
End If
If bMTable Then
Dim sName As String = SearchKey(FileContent(LineIndex), NAME)
Dim bOn As Boolean = False
Dim sMach As String = String.Empty
Dim sMachUp As String = String.Empty
Dim sMachDw As String = String.Empty
Dim nMachId As Integer = 1
Dim nShift As Integer = 0
Dim sOper As String = String.Empty
Dim nLink As Integer = 0
If Not String.IsNullOrEmpty(sName) Then
Dim sOn As String = SearchKey(FileContent(LineIndex), ONCONST)
If Not String.IsNullOrEmpty(sOn) Then
Dim nValue As Integer
Integer.TryParse(sOn, nValue)
bOn = nValue <> 0
End If
sMach = SearchKey(FileContent(LineIndex), MACH)
sMachUp = SearchKey(FileContent(LineIndex), MACHUP)
sMachDw = SearchKey(FileContent(LineIndex), MACHDW)
Dim sMachId = SearchKey(FileContent(LineIndex), MACHID)
If String.IsNullOrEmpty(sMachId) Then
' il suo valore di default è 1 quindi lo imposto a questo valore
nMachId = 1
Else
Integer.TryParse(sMachId, nMachId)
End If
Dim sShift = SearchKey(FileContent(LineIndex), SHIFT)
If String.IsNullOrEmpty(sShift) Then
' il suo valore di default è 1 quindi lo imposto a questo valore
nShift = 0
Else
Integer.TryParse(sShift, nShift)
End If
sOper = SearchKey(FileContent(LineIndex), OPER)
' verifico che il MachId letto sia valido
If nMachId > Table.m_MachIdList.Count Then
nMachId = 0
End If
' Creo elementi per lista lavorazioni da ordinare
Dim MachItem As MTableMachiningGridBoxItem = Nothing
Dim MachUpItem As MTableMachiningGridBoxItem = Nothing
Dim MachDwItem As MTableMachiningGridBoxItem = Nothing
For MachIndex = 0 To Table.ActiveMachinesList.Count - 1
If Table.ActiveMachinesList(MachIndex).MachId = nMachId Then
If VerifyMachiningExists(sMach, Table.ActiveMachinesList(MachIndex).SelectedMachine) Then
' Recupero indice della lavorazione
Dim sMachOrd As String = SearchKey(FileContent(LineIndex), MACHORD)
Dim sMachJoin As String = SearchKey(FileContent(LineIndex), MACHJOIN)
AddOrdMachItem(sMachOrd, MachIndex, sName, sMach, sMachJoin, MachItem, Table)
ElseIf Not String.IsNullOrWhiteSpace(sMach) Then
Table.m_IsMachiningOrdModified = True
End If
If VerifyMachiningExists(sMachUp, Table.ActiveMachinesList(MachIndex).SelectedMachine) Then
If sMachUp <> sMach Then
' Recupero indice della lavorazione
Dim sMachOrd As String = SearchKey(FileContent(LineIndex), MACHUPORD)
Dim sMachJoin As String = SearchKey(FileContent(LineIndex), MACHUPJOIN)
AddOrdMachItem(sMachOrd, MachIndex, sName, sMachUp, sMachJoin, MachUpItem, Table)
Else
MachUpItem = MachItem
End If
ElseIf Not String.IsNullOrWhiteSpace(sMachUp) Then
Table.m_IsMachiningOrdModified = True
End If
If VerifyMachiningExists(sMachDw, Table.ActiveMachinesList(MachIndex).SelectedMachine) Then
If sMachDw <> sMach And sMachDw <> sMachUp Then
' Recupero indice della lavorazione
Dim sMachOrd As String = SearchKey(FileContent(LineIndex), MACHDWORD)
Dim sMachJoin As String = SearchKey(FileContent(LineIndex), MACHDWJOIN)
AddOrdMachItem(sMachOrd, MachIndex, sName, sMachDw, sMachJoin, MachDwItem, Table)
ElseIf sMachDw = sMach Then
MachDwItem = MachItem
ElseIf sMachDw = sMachUp Then
MachDwItem = MachUpItem
Else
MachDwItem = MachItem
End If
ElseIf Not String.IsNullOrWhiteSpace(sMachDw) Then
Table.m_IsMachiningOrdModified = True
End If
End If
Next
Dim sLink As String = SearchKey(FileContent(LineIndex), LINK)
Integer.TryParse(sLink, nLink)
Table.AssociationList.Add(New MTableAssociationGridBoxItem(bOn, sName, nMachId, nShift, sOper, MachItem, sMach, MachUpItem, sMachUp, MachDwItem, sMachDw, nLink, Table.ActiveMachinesList, Table.AssociationList))
End If
End If
If bPropertyTable Then
' se lavorazioni ancora disordinate
If Not bOrderedMachining Then
' Riordino tabelle per ordine lavorazioni
For MachIndex = 0 To Table.ActiveMachinesList.Count - 1
' Verifico se c'è almeno una lavorazione ordinata
Dim bFound As Boolean = False
For MachiningIndex = 0 To Table.ActiveMachinesList(MachIndex).MachiningList.Count - 1
Dim CurrMachining As MTableMachiningGridBoxItem = Table.ActiveMachinesList(MachIndex).MachiningList(MachiningIndex)
If CurrMachining.RWGroupId <> 0 Then
bFound = True
Exit For
End If
Next
If Not bFound And Table.ActiveMachinesList(MachIndex).MachiningList.Count > 0 Then
Table.ActiveMachinesList(MachIndex).MachiningList(0).GroupId = 1
Table.ActiveMachinesList(MachIndex).MachiningList(0).RWGroupId = 100
End If
Table.ActiveMachinesList(MachIndex).MachiningList = New ObservableCollection(Of MTableMachiningGridBoxItem)(Table.ActiveMachinesList(MachIndex).MachiningList.OrderBy(Function(x) x.RWGroupId))
Next
bOrderedMachining = True
End If
' recupero valori da tabella proprietà
Dim sMachId As String = SearchKey(FileContent(LineIndex), MACHID)
Dim nMachId As Integer = -1
If String.IsNullOrEmpty(sMachId) Then
' il suo valore di default è 1 quindi lo imposto a questo valore
nMachId = 1
Else
Integer.TryParse(sMachId, nMachId)
End If
Dim sGroup As String = SearchKey(FileContent(LineIndex), GROUP)
Dim nGroup As Integer = -1
Integer.TryParse(sGroup, nGroup)
Dim sProperty As String = SearchKey(FileContent(LineIndex), PROPERTYPAR)
For MachIndex = 0 To Table.ActiveMachinesList.Count - 1
Dim bFound As Boolean = False
If Table.ActiveMachinesList(MachIndex).MachId = nMachId Then
For MachiningIndex = 0 To Table.ActiveMachinesList(MachIndex).MachiningList.Count - 1
Dim CurrMachining As MTableMachiningGridBoxItem = Table.ActiveMachinesList(MachIndex).MachiningList(MachiningIndex)
If CurrMachining.GroupId = nGroup \ 100 Then
CurrMachining.PropertyPar = sProperty
bFound = True
Exit For
End If
Next
End If
If bFound Then
Exit for
End If
Next
End If
Next
' verifico se le liste ordinate contengono un indice diverso da zero
For MachIndex = 0 To Table.ActiveMachinesList.Count - 1
Dim CurrMachine As MTableMachineListBoxItem = Table.ActiveMachinesList(MachIndex)
If CurrMachine.MachiningList.Count > 0 AndAlso CurrMachine.MachiningList(CurrMachine.MachiningList.Count - 1).GroupId = 0 Then
CurrMachine.MachiningList(CurrMachine.MachiningList.Count - 1).GroupId = 1
End If
Next
' se nessuna macchina, ne aggiungo una vuota
If Table.ActiveMachinesList.Count = 0 Then
Table.SharedMachIndex += 1
Table.ActiveMachinesList.Add(New MTableMachineListBoxItem(String.Empty, False, False, Table.SharedMachIndex))
Table.m_MachIdList.Add(Table.SharedMachIndex)
End If
' se nessuna lavorazione, ne aggiungo una vuota
If Table.AssociationList.Count = 0 Then
Table.AssociationList.Add(New MTableAssociationGridBoxItem(False, String.Empty, 0, 0, String.Empty, Nothing, String.Empty, Nothing, String.Empty, Nothing, String.Empty, 0, Table.ActiveMachinesList, Table.AssociationList))
End If
Return True
End Function
Private Function VerifyMachiningExists(sMach As String, SelectedMachine As MTableMachine) As Boolean
If String.IsNullOrWhiteSpace(sMach) Then Return False
For Each MachType In SelectedMachine.MachTypeList
If SelectedMachine.MachiningListByType(MachType).Contains(sMach) Then
Return True
End If
Next
Return False
End Function
Private Sub AddOrdMachItem(sMachOrd As String, MachIndex As Integer, sName As String, sMach As String, sJoin As String, ByRef MachItem As MTableMachiningGridBoxItem, Table As MTableListBoxItem)
Dim nMachOrd As Integer = 0
Dim bJoin As Boolean = False
If Not String.IsNullOrWhiteSpace(sMachOrd) Then
Integer.TryParse(sMachOrd, nMachOrd)
End If
If Not String.IsNullOrEmpty(sJoin) Then
Dim nValue As Integer
Integer.TryParse(sJoin, nValue)
bJoin = nValue <> 0
End If
' verifico se esiste già un item della tabella lavorazioni ordinate con gli stessi dati
Dim bExist As Boolean = False
For OrdMachIndex = 0 To Table.ActiveMachinesList(MachIndex).MachiningList.Count - 1
Dim CurrMachining As MTableMachiningGridBoxItem = Table.ActiveMachinesList(MachIndex).MachiningList(OrdMachIndex)
If CurrMachining.Geometry = sName AndAlso CurrMachining.Machining = sMach Then
bExist = True
MachItem = CurrMachining
Exit For
End If
Next
If Not bExist Then
MachItem = New MTableMachiningGridBoxItem(nMachOrd, sName, sMach, bJoin, Table.ActiveMachinesList(MachIndex))
Table.ActiveMachinesList(MachIndex).MachiningList.Add(MachItem)
End If
End Sub
Friend Sub WriteDoorTable(SelectedTable As MTableListBoxItem, sTableNamePath As String)
' controllo e correggo indici gruppi
CheckGroupIndex(SelectedTable)
' inizio routine di scrittura
Dim FileContent As String() = File.ReadAllLines(IniFile.m_sTablesRoot & "\" & MTABLETEMPLATE_FILE)
Dim NewTableFileContent As New List(Of String)
Dim bMMachineData As Boolean = False
Dim bMTable As Boolean = False
Dim bPropertyTable As Boolean = False
ReorderMachiningIndex(SelectedTable)
For LineIndex As Integer = 0 To FileContent.Count - 1
Dim sCurrLine As String = FileContent(LineIndex)
sCurrLine = sCurrLine.Replace(DATETIME, System.DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"))
sCurrLine = sCurrLine.Replace(TABLENAME, Path.GetFileNameWithoutExtension(sTableNamePath))
If sCurrLine.Contains(MMACHINEDATA) Then
bMMachineData = True
NewTableFileContent.Add(sCurrLine)
PrintActiveMachineList(SelectedTable, NewTableFileContent)
ElseIf sCurrLine.Contains(MTABLE) Then
bMTable = True
NewTableFileContent.Add(sCurrLine)
PrintActiveMachiningList(SelectedTable, NewTableFileContent)
ElseIf sCurrLine.Contains(PROPERTYTABLE) Then
bPropertyTable = True
NewTableFileContent.Add(sCurrLine)
PrintPropertyList(SelectedTable, NewTableFileContent)
End If
If Not bMMachineData AndAlso Not bMTable AndAlso Not bPropertyTable Then
NewTableFileContent.Add(sCurrLine)
Else
bMMachineData = False
bMTable = False
bPropertyTable = False
End If
Next
File.WriteAllLines(sTableNamePath, NewTableFileContent, Text.Encoding.UTF8)
' scrivo tabelle lavorazioni ordinate
For MachineIndex = 0 To SelectedTable.ActiveMachinesList.Count - 1
WriteMachiningOrderedTable(SelectedTable.ActiveMachinesList(MachineIndex), sTableNamePath)
Next
End Sub
Private Sub CheckGroupIndex(Table As MTableListBoxItem)
' ciclo sulle macchine attive
For MachIndex = 0 To Table.ActiveMachinesList.Count - 1
Dim CurrMachine As MTableMachineListBoxItem = Table.ActiveMachinesList(MachIndex)
Dim CurrMachiningList As ObservableCollection(Of MTableMachiningGridBoxItem) = CurrMachine.MachiningList
' ciclo sugli elementi della lista ordinata lavorazioni
Dim CurrGroupId As Integer = 0
Dim CurrIndex As Integer = 0
For MachiningIndex = 0 To CurrMachiningList.Count - 1
Dim CurrListItem As MTableMachiningGridBoxItem = CurrMachiningList(MachiningIndex)
If CurrListItem.GroupId = 0 Then
Continue For
ElseIf CurrListItem.GroupId = CurrGroupId Then
CurrListItem.GroupId = CurrIndex
ElseIf CurrListItem.GroupId <> CurrGroupId Then
CurrGroupId = CurrListItem.GroupId
CurrIndex += 1
CurrListItem.GroupId = CurrIndex
End If
Next
If CurrMachiningList.Count > 0 AndAlso CurrMachiningList(CurrMachiningList.Count - 1).GroupId = 0 Then
CurrMachiningList(CurrMachine.MachiningList.Count - 1).GroupId = 1
End If
Next
End Sub
Friend Sub WriteMachiningOrderedTable(SelectedMachine As MTableMachineListBoxItem, sTableNamePath As String)
Dim FileContent As String() = File.ReadAllLines(IniFile.m_sTablesRoot & "\" & MTABLETEMPLATE_FILE)
Dim NewTableFileContent As New List(Of String)
Dim bMMachineData As Boolean = False
Dim bWaitClosure As Boolean = False
Dim bMTable As Boolean = False
Dim bPropertyTable As Boolean = False
For LineIndex As Integer = 0 To FileContent.Count - 1
Dim sCurrLine As String = FileContent(LineIndex)
sCurrLine = sCurrLine.Replace(DATETIME, System.DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"))
sCurrLine = sCurrLine.Replace(TABLENAME, Path.GetFileNameWithoutExtension(sTableNamePath))
If sCurrLine.Contains(MMACHINEDATA) Then
bMMachineData = True
bWaitClosure = True
ElseIf sCurrLine.Contains(MTABLE) Then
bMTable = True
NewTableFileContent.Add(sCurrLine)
PrintOrderedMachiningList(SelectedMachine, NewTableFileContent)
ElseIf sCurrLine.Contains(PROPERTYTABLE) Then
bPropertyTable = True
bWaitClosure = True
End If
If Not bMMachineData AndAlso Not bMTable AndAlso Not bPropertyTable Then
NewTableFileContent.Add(sCurrLine)
ElseIf bWaitClosure Then
bWaitClosure = False
Else
bMMachineData = False
bMTable = False
bPropertyTable = False
End If
Next
' creo nuovo nome
Dim sOrderedTableName As String = Path.GetDirectoryName(sTableNamePath) & "\" & Path.GetFileNameWithoutExtension(sTableNamePath) & "_" & SelectedMachine.MachId.ToString & ".otl"
File.WriteAllLines(sOrderedTableName, NewTableFileContent, Text.Encoding.UTF8)
End Sub
Private Sub PrintOrderedMachiningList(CurrMachine As MTableMachineListBoxItem, NewTableFileContent As List(Of String))
For MachiningIndex = 0 To CurrMachine.MachiningList.Count - 1
Dim CurrMachining As MTableMachiningGridBoxItem = CurrMachine.MachiningList(MachiningIndex)
Dim sCurrTool As String = String.Empty
EgtMdbSetCurrMachining(CurrMachining.Machining)
Dim sTUUID As String = String.Empty
EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sTUUID)
EgtTdbGetToolFromUUID(sTUUID, sCurrTool)
Dim CurrentLine As String = " { Group = " & CurrMachining.GroupId & ", Property = '" & CurrMachining.PropertyPar &
"', Name = '" & CurrMachining.Geometry & "', Mach = '" & CurrMachining.Machining & "', Join = " & If(CurrMachining.Join, 1, 0) & "}"
If MachiningIndex < CurrMachine.MachiningList.Count - 1 Then
CurrentLine &= ","
End If
CurrentLine &= " -- " & sCurrTool
NewTableFileContent.Add(CurrentLine)
Next
End Sub
Private Sub PrintActiveMachineList(SelectedTable As MTableListBoxItem, NewTableFileContent As List(Of String))
For Index As Integer = 0 To SelectedTable.ActiveMachinesList.Count - 1
Dim CurrentLine As String = " { MachName = '" & SelectedTable.ActiveMachinesList(Index).SelectedMachine.Name & "', NcGenerate = " & SelectedTable.ActiveMachinesList(Index).NcGenerate.ToString.ToLower _
& ", MakeRaw = " & SelectedTable.ActiveMachinesList(Index).Makeraw.ToString.ToLower & " }"
If Index < SelectedTable.ActiveMachinesList.Count - 1 Then
CurrentLine &= " ,"
End If
NewTableFileContent.Add(CurrentLine)
Next
End Sub
Private Sub PrintPropertyList(SelectedTable As MTableListBoxItem, NewTableFileContent As List(Of String))
Dim CurrGroupId As Integer = -1
Dim LastGroupId As Integer = -1
For MachineIndex As Integer = 0 To SelectedTable.ActiveMachinesList.Count - 1
If SelectedTable.ActiveMachinesList(MachineIndex).MachiningList.Count > 0 Then
LastGroupId = SelectedTable.ActiveMachinesList(MachineIndex).MachiningList(SelectedTable.ActiveMachinesList(MachineIndex).MachiningList.Count - 1).GroupId
For MachiningIndex = 0 To SelectedTable.ActiveMachinesList(MachineIndex).MachiningList.Count - 1
Dim CurrMachining As MTableMachiningGridBoxItem = SelectedTable.ActiveMachinesList(MachineIndex).MachiningList(MachiningIndex)
If CurrMachining.GroupId <> CurrGroupId And Not String.IsNullOrWhiteSpace(CurrMachining.PropertyPar) Then
Dim CurrentLine As String = " { MachId = '" & SelectedTable.ActiveMachinesList(MachineIndex).MachId & "', Group = " & (CurrMachining.GroupId * 100).ToString &
", Property = " & CurrMachining.PropertyPar & " } ,"
'If CurrMachining.GroupId <> LastGroupId Then
' CurrentLine &= " ,"
'End If
NewTableFileContent.Add(CurrentLine)
CurrGroupId = CurrMachining.GroupId
'ElseIf MachineIndex = SelectedTable.ActiveMachinesList.Count - 1 AndAlso CurrMachining.GroupId <> CurrGroupId And CurrMachining.GroupId = LastGroupId Then
' NewTableFileContent(NewTableFileContent.Count - 1) = NewTableFileContent(NewTableFileContent.Count - 1).Trim(","c)
End If
Next
End If
Next
NewTableFileContent(NewTableFileContent.Count - 1) = NewTableFileContent(NewTableFileContent.Count - 1).Trim(","c)
End Sub
Private Sub ReorderMachiningIndex(SelectedTable As MTableListBoxItem)
For MachineIndex = 0 To SelectedTable.ActiveMachinesList.Count - 1
Dim nCurrGroupIndex As Integer = 0
Dim nCurrGroupOrd As Integer = 0
For MachiningIndex = 0 To SelectedTable.ActiveMachinesList(MachineIndex).MachiningList.Count - 1
Dim CurrMachining As MTableMachiningGridBoxItem = SelectedTable.ActiveMachinesList(MachineIndex).MachiningList(MachiningIndex)
If CurrMachining.GroupId = 0 Then Continue For
If CurrMachining.GroupId <> nCurrGroupIndex Then
nCurrGroupOrd = 0
nCurrGroupIndex = CurrMachining.GroupId
Else
nCurrGroupOrd += 1
End If
CurrMachining.RWGroupId = CurrMachining.GroupId * 100 + nCurrGroupOrd
Next
Next
End Sub
Private Sub PrintActiveMachiningList(SelectedTable As MTableListBoxItem, NewTableFileContent As List(Of String))
For Index As Integer = 0 To SelectedTable.AssociationList.Count - 1
If String.IsNullOrEmpty(SelectedTable.AssociationList(Index).Name) Then Continue For
Dim CurrentLine As String = " { On = " & If(SelectedTable.AssociationList(Index).OnPar, 1, 0) & ", Name = '" & SelectedTable.AssociationList(Index).Name & "'" &
If(Not String.IsNullOrEmpty(SelectedTable.AssociationList(Index).Oper), ", Oper = '" & SelectedTable.AssociationList(Index).Oper & "'", String.Empty) &
If(Not IsNothing(SelectedTable.AssociationList(Index).MachId) AndAlso SelectedTable.AssociationList(Index).MachId > 1, ", MachId = " & SelectedTable.AssociationList(Index).MachId.ToString, String.Empty) &
If(SelectedTable.AssociationList(Index).Shift <> 0, ", Shift = " & SelectedTable.AssociationList(Index).Shift.ToString, String.Empty) &
If(Not String.IsNullOrEmpty(SelectedTable.AssociationList(Index).Mach), ", MachOrd = '" & SelectedTable.AssociationList(Index).RefMachItem.RWGroupId & "'" &
", MachJoin = '" & If(SelectedTable.AssociationList(Index).RefMachItem.Join, 1, 0) & "'" &
", Mach = '" & SelectedTable.AssociationList(Index).Mach & "'", String.Empty) &
If(Not String.IsNullOrEmpty(SelectedTable.AssociationList(Index).MachUp), ", MachUpOrd = '" & SelectedTable.AssociationList(Index).RefMachUpItem.RWGroupId & "'" &
", MachUpJoin = '" & If(SelectedTable.AssociationList(Index).RefMachUpItem.Join, 1, 0) & "'" &
", MachUp = '" & SelectedTable.AssociationList(Index).MachUp & "'", String.Empty) &
If(Not String.IsNullOrEmpty(SelectedTable.AssociationList(Index).MachDw), ", MachDwOrd = '" & SelectedTable.AssociationList(Index).RefMachDwItem.RWGroupId & "'" &
", MachDwJoin = '" & If(SelectedTable.AssociationList(Index).RefMachDwItem.Join, 1, 0) & "'" &
", MachDw = '" & SelectedTable.AssociationList(Index).MachDw & "'", String.Empty) &
If(Not String.IsNullOrEmpty(SelectedTable.AssociationList(Index).Link), ", Link = '" & SelectedTable.AssociationList(Index).Link & "'", String.Empty) & " }"
If Index < SelectedTable.AssociationList.Count - 1 Then
CurrentLine &= " ,"
End If
NewTableFileContent.Add(CurrentLine)
Next
End Sub
Friend Function VerifyDoorsDir() As Boolean
' verifico l'esistenza della cartella Machines
If String.IsNullOrWhiteSpace(IniFile.m_sDoorsDirPath) Then
Return False
End If
Return RecursiveVerifyDoorsDir()
End Function
Private Function RecursiveVerifyDoorsDir() As Boolean
If Directory.Exists(IniFile.m_sDoorsDirPath) Then
Return True
Else
If MessageBox.Show(String.Format(EgtMsg(MSG_DOORSERRORS + 15) & Environment.NewLine & EgtMsg(MSG_DOORSERRORS + 16), IniFile.m_sDoorsDirPath), EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.YesNo, MessageBoxImage.Error) = MessageBoxResult.Yes Then
Return RecursiveVerifyDoorsDir()
End If
Return False
End If
End Function
End Module