diff --git a/EgtBEAMWALL.Core/MyMachGroup.vb b/EgtBEAMWALL.Core/MyMachGroup.vb index f639af89..f0b36a90 100644 --- a/EgtBEAMWALL.Core/MyMachGroup.vb +++ b/EgtBEAMWALL.Core/MyMachGroup.vb @@ -18,16 +18,6 @@ Public MustInherit Class MyMachGroup m_nMachineType = nMachineType End Sub - Protected m_nProjId As Integer = 0 - Public Property nProjId As Integer - Get - Return m_nProjId - End Get - Set(value As Integer) - m_nProjId = value - End Set - End Property - Protected m_dL As Double Public Property dL As Double Get diff --git a/EgtBEAMWALL.Core/Part.vb b/EgtBEAMWALL.Core/Part.vb index 683b1a6e..3818c540 100644 --- a/EgtBEAMWALL.Core/Part.vb +++ b/EgtBEAMWALL.Core/Part.vb @@ -27,6 +27,18 @@ Public MustInherit Class Part Friend Sub SetPartId(nPartId As Integer) m_nPartId = nPartId End Sub + + ' Proj del pezzo + Protected m_nProjId As Integer = 0 + Public Property nProjId As Integer + Get + Return m_nProjId + End Get + Set(value As Integer) + m_nProjId = value + End Set + End Property + ' Info del pezzo Protected m_nPDN As Integer Public ReadOnly Property nPDN As Integer diff --git a/EgtBEAMWALL.ViewerOptimizer/Constants/ConstBeam.vb b/EgtBEAMWALL.ViewerOptimizer/Constants/ConstBeam.vb index b1642789..90786d04 100644 --- a/EgtBEAMWALL.ViewerOptimizer/Constants/ConstBeam.vb +++ b/EgtBEAMWALL.ViewerOptimizer/Constants/ConstBeam.vb @@ -116,6 +116,7 @@ Friend Const BTLINFO As String = "BtlInfo" ' info parametri BTL + Friend Const BTL_PRT_PROJ As String = "PROJ" Friend Const BTL_PRT_PDN As String = "PDN" Friend Const BTL_PRT_DO As String = "DO" Friend Const BTL_PRT_NAM As String = "NAM" diff --git a/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb index e03eef1b..a507f53a 100644 --- a/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb @@ -339,13 +339,14 @@ Public Class LeftPanelVM If AddPartWnd.ShowDialog() Then ' creo nuovo part Dim nNewPartId As Integer = EgtBeamCreatePart() + ' scrivo info proj + EgtSetInfo(nNewPartId, BTL_PRT_PROJ, Map.refProjManagerVM.CurrProj.nProjId) EgtBeamSetPartProdNbr(AddPartWndVM.nPDN) If Not IsNothing(AddPartWndVM.sNAM) Then EgtBeamSetPartName(AddPartWndVM.sNAM) EgtBeamSetPartCount(AddPartWndVM.nCNT) EgtBeamSetPartBox(AddPartWndVM.dL, AddPartWndVM.dH, AddPartWndVM.dW) ' aggiungo dati pezzo Dim NewPart As New BTLPart(Map.refProjectVM.BTLStructure, nNewPartId) - ' aggiungo pezzo alla lista Map.refProjectVM.BTLStructure.PartList.Add(NewPart) Map.refProjectVM.BTLStructure.SelPart = NewPart diff --git a/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupPanelVM.vb index db91bfff..74fb09f3 100644 --- a/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupPanelVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupPanelVM.vb @@ -546,6 +546,7 @@ Public Class Beam Sub New(nParentMachGroup As Core.MyMachGroup, nPartId As Integer, nRawPartId As Integer) MyBase.New(nParentMachGroup, nPartId, nRawPartId) ' leggo info pezzo + EgtGetInfo(nPartId, BTL_PRT_PROJ, nProjId) EgtGetInfo(nPartId, BTL_PRT_PDN, nPDN) EgtGetInfo(nPartId, BTL_PRT_NAM, sNAM) EgtGetInfo(nPartId, BTL_PRT_L, dL) @@ -671,6 +672,7 @@ Public Class Wall Sub New(nParentMachGroup As Core.MyMachGroup, nPartId As Integer) MyBase.New(nParentMachGroup, nPartId) ' leggo info pezzo + EgtGetInfo(nPartId, BTL_PRT_PROJ, nProjId) EgtGetInfo(nPartId, BTL_PRT_PDN, m_nPDN) EgtGetInfo(nPartId, BTL_PRT_NAM, m_sNAM) EgtGetInfo(nPartId, BTL_PRT_L, m_dL) diff --git a/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb b/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb index f7166739..bcbcf66e 100644 --- a/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb @@ -100,7 +100,13 @@ Public Class OpenProjectFileDialogVM m_ProjectType = ProjectType If IsNothing(ProjectList) OrElse ProjectList.Count = 0 Then ' leggo da db - For Each Project In DbControllers.m_ProjController.GetLastDesc(50) + Dim DbProjectList As New List(Of Core.ProjectFile) + If ProjectType = ProjectType.PROJ Then + DbProjectList = DbControllers.m_ProjController.GetLastDesc(50) + ElseIf ProjectType = ProjectType.PROD Then + DbProjectList = DbControllers.m_ProdController.GetLastDesc(50) + End If + For Each Project In DbProjectList m_ProjectList.Add(New ProjectFile(Project.nProjectType, Project.nProjId, Project.nProdId, Project.BTLFileName)) Next '' cartella da cui leggere i programmi @@ -139,6 +145,9 @@ Public Class OpenProjectFileDialogVM 'End Function Friend Function VerifySelected() As Boolean If SelProject.nProjectType = Core.ConstBeam.ProjectType.PROJ Then + ' verifico se esiste ProdId + + For Each File In SelProject.sProjDirPath If Path.GetExtension(File).ToLower() = ".nge" Then Return True diff --git a/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb index 07a7492f..3a8f3372 100644 --- a/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb @@ -153,6 +153,7 @@ Public Class ProdManagerVM Public Sub Save() Map.refSceneHostVM.SaveProject() Map.refMainWindowVM.SetTitle(CurrProd.nProdId.ToString("0000") & " - EgtBEAMWALL") + 'DbControllers.m_ProdController.up ' se nuovo progetto, incremento l'indice di progetto If m_CurrProd.NewProd Then m_nLastProdId = m_nLastProdId + 1 diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb index 295a7454..8718136f 100644 --- a/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb @@ -127,7 +127,7 @@ Public Class ProjManagerVM ProjectFile.VerifyProjectModification(CurrProj, ProjectType.PROJ) ' creo nuova ottimizzazione ' leggo indice di ottimizzazione - Dim nProdsIndex As Integer = GetMainPrivateProfileInt(S_GENERAL, K_PRODSINDEX, 1) + Dim nProdsIndex As Integer = DbControllers.m_ProdController.GetNextIndex(CurrProj.nProjId) Dim sProdsDir As String = refMainWindowVM.MainWindowM.sProdsDir & "\" & nProdsIndex.ToString("0000") ' creo cartella nuova ottimizzazione If Not Directory.Exists(sProdsDir) Then @@ -163,6 +163,9 @@ Public Class ProjManagerVM Map.refProdManagerVM.CurrProd = New ProjectFile(ProjectType.PROD, Path.GetFileNameWithoutExtension(sProdPath)) ' setto flag nuovo progetto in prod Map.refProdManagerVM.CurrProd.NewProd = True + Else + ' elimino da DB + DbControllers.m_ProdController.DeleteProd(nProdsIndex) End If End Sub @@ -244,9 +247,10 @@ Public Class ProjManagerVM Public Sub Save() Map.refSceneHostVM.SaveProject() Map.refMainWindowVM.SetTitle(CurrProj.nProjId.ToString("0000") & " - " & CurrProj.BTLFileName & " - EgtBEAMWALL") - ' se nuovo progetto, incremento l'indice di progetto + ' aggiorno su DB DbControllers.m_ProjController.UpdateBtlParts(CurrProj.nProjId, Map.refProjectVM.BTLStructure.PartList.ToList()) + ' se nuovo progetto, incremento l'indice di progetto 'If m_CurrProj.NewProj Then ' 'm_nLastProjId = m_nLastProjId + 1 @@ -351,6 +355,12 @@ Public Class ProjManagerVM End If Dim sProjFileName As String = sProjsDir & "\" & nProjId.ToString("0000") & FILENAMESEPARATOR & FILENAMESEPARATOR & Path.GetFileNameWithoutExtension(sBtlCopyPath) & ".nge" If bOk Then + ' scrivo info proj su tutti i pezzi + Dim nPartId = EgtGetFirstPart() + While nPartId <> GDB_ID.NULL + EgtSetInfo(nPartId, BTL_PRT_PROJ, m_CurrProj.nProjId) + nPartId = EgtGetNextPart(nPartId) + End While ' salvo il progetto bOk = EgtSaveFile(sProjFileName, NGE.BIN) Else @@ -362,6 +372,9 @@ Public Class ProjManagerVM m_CurrProj = New ProjectFile(ProjectType.PROJ, Path.GetFileNameWithoutExtension(sProjFileName)) 'm_CurrProj.NewProj = True Map.refMainWindowVM.SetTitle(CurrProj.nProjId.ToString("0000") & " - " & CurrProj.BTLFileName & " - EgtBEAMWALL") + Else + ' elimino da Db + DbControllers.m_ProjController.DeleteProj(nProjId) End If End Sub diff --git a/EgtBEAMWALL.ViewerOptimizer/Utility/DbControllers.vb b/EgtBEAMWALL.ViewerOptimizer/Utility/DbControllers.vb index b14ee1bb..dfe34008 100644 --- a/EgtBEAMWALL.ViewerOptimizer/Utility/DbControllers.vb +++ b/EgtBEAMWALL.ViewerOptimizer/Utility/DbControllers.vb @@ -1,5 +1,6 @@ Module DbControllers Public m_ProjController As New DataLayer.Controllers.ProjController + Public m_ProdController As New DataLayer.Controllers.ProdController End Module