Optmizer 3.0.1.5

-sistemata grafica progressbar per verifica
-aggiunto creazione btlinfo nuovo progetto
-aggiunto reset feature
-sistemato creazione pdf
This commit is contained in:
Demetrio Cassarino
2026-01-23 11:18:35 +01:00
parent 5277b78f94
commit b10cfb3913
16 changed files with 370 additions and 504 deletions
@@ -463,6 +463,10 @@ Public Class BTLPartManagerVM
Public Sub ResetCalc()
If IsNothing(ProjectManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM) Then Return
Map.refMyStatusBarVM.SetLoadingProgress(0)
Map.refMyStatusBarVM.SetOutputMessage("")
Map.refShowBeamPanelVM.ShowBuilding_IsEnabled = True
MyExecProcessManager.nProjIndex = 0
Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.SelBTLPart
If IsNothing(SelPart) Then Return
If SelPart.nGlobalState <> CalcStates.NOTCALCULATED Then
@@ -2379,6 +2379,9 @@ Public Class BTLPartVM
Friend Sub Verify()
If IsNothing(ProjectManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM) Then Return
Map.refMyStatusBarVM.SetLoadingProgress(0)
Map.refMyStatusBarVM.SetOutputMessage("")
MyExecProcessManager.nProjIndex = -1
Map.refCALCPanelVM.Verify(ProjectType.PROJ)
Return
End Sub
@@ -577,7 +577,7 @@ Public Class CALCPanelVM
Map.refSceneShowBuldingVM.SceneShowBulding.Enable(False)
Map.refSceneBuildingVM.SetViewPanel_IsEnable(False)
Map.refShowBeamPanelVM.ShowBuilding_IsEnabled = False
Map.refMyStatusBarVM.SetOutputMessage("Scena assemblato disabilitata durante la verifica")
Map.refMyStatusBarVM.SetOutputMessage("Verifica in corso...")
' Imposto contesto scena principale
Dim CurrContext As Integer = EgtGetCurrentContext()
Dim MainSceneContext As Integer = Map.refSceneHostVM.MainScene.GetCtx()
@@ -629,7 +629,7 @@ Public Class CALCPanelVM
Map.refSceneShowBuldingVM.SceneShowBulding.Enable(False)
Map.refSceneBuildingVM.SetViewPanel_IsEnable(False)
Map.refShowBeamPanelVM.ShowBuilding_IsEnabled = False
Map.refMyStatusBarVM.SetOutputMessage("Scena assemblato disabilitata durante la verifica")
Map.refMyStatusBarVM.SetOutputMessage("Verifica in corso...")
' Imposto contesto scena principale
Dim CurrContext As Integer = EgtGetCurrentContext()
Dim MainSceneContext As Integer = Map.refSceneHostVM.MainScene.GetCtx()
@@ -81,9 +81,15 @@ Module MyExecProcessManager
Map.refCALCPanelVM.ProcessResults(sBarPath, nProgramPage, nBarId)
' Gestione progressbar per verificare l'inizio e la fine della verifica
If nProgramPage = ProjectType.PROJ Then
Map.refMyStatusBarVM.MaximumValue = Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1
Map.refMyStatusBarVM.SetLoadingProgress(nProjIndex)
nProjIndex += 1
If nProjIndex = -1 Then
Map.refMyStatusBarVM.MaximumValue = 1
Map.refMyStatusBarVM.SetLoadingProgress(1)
Map.refMyStatusBarVM.SetOutputMessage("Verifica Completata")
Else
Map.refMyStatusBarVM.MaximumValue = Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1
Map.refMyStatusBarVM.SetLoadingProgress(nProjIndex)
nProjIndex += 1
End If
If nProjIndex = Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1 Then
Map.refMyStatusBarVM.SetOutputMessage("Verifica Completata")
Map.refSceneShowBuldingVM.SceneShowBulding.Enable(True)
@@ -91,9 +97,15 @@ Module MyExecProcessManager
Map.refShowBeamPanelVM.ShowBuilding_IsEnabled = True
End If
Else
Map.refMyStatusBarVM.MaximumValue = Map.refMachGroupPanelVM.MachGroupVMList.Count - 1
Map.refMyStatusBarVM.SetLoadingProgress(nProdIndex)
nProdIndex += 1
If nProdIndex = -1 Then
Map.refMyStatusBarVM.MaximumValue = 1
Map.refMyStatusBarVM.SetLoadingProgress(1)
Map.refMyStatusBarVM.SetOutputMessage("Verifica Completata")
Else
Map.refMyStatusBarVM.MaximumValue = Map.refMachGroupPanelVM.MachGroupVMList.Count - 1
Map.refMyStatusBarVM.SetLoadingProgress(nProdIndex)
nProdIndex += 1
End If
If nProdIndex = Map.refMachGroupPanelVM.MachGroupVMList.Count - 1 Then
Map.refMyStatusBarVM.SetOutputMessage("Verifica Completata")
Map.refSceneShowBuldingVM.SceneShowBulding.Enable(True)
@@ -22,8 +22,8 @@
<Button Content="MAT"
ToolTip="{Binding ChangeMaterial_ToolTip}"
Command="{Binding ChangeMaterial_Command}"
Visibility="{Binding ChangeMaterial_Visibility}"
Visibility="Collapsed"
IsEnabled="{Binding InstrumentPanel_IsEnabled}"
Style="{StaticResource InstrumentPanel_Button}"/>
<!--Visibility="{Binding ChangeMaterial_Visibility}"-->
</StackPanel>
@@ -329,6 +329,7 @@ Public Class LeftPanelVM
If (IsNothing(ProjectManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM)) Then Return
Map.refMyStatusBarVM.SetLoadingProgress(0)
Map.refMyStatusBarVM.SetOutputMessage("")
Map.refShowBeamPanelVM.ShowBuilding_IsEnabled = True
MyExecProcessManager.nProjIndex = 0
For Each Part In Map.refProjectVM.BTLStructureVM.BTLPartVMList
If Part.nGlobalState <> CalcStates.NOTCALCULATED Then
@@ -969,6 +969,9 @@ Public Class MyMachGroupVM
Friend Sub Verify()
If ((IsNothing(ProjectManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM))) Then Return
Map.refMyStatusBarVM.SetLoadingProgress(0)
Map.refMyStatusBarVM.SetOutputMessage("")
MyExecProcessManager.nProdIndex = -1
Map.refCALCPanelVM.Verify(ProjectType.PROD)
Return
End Sub
@@ -1247,6 +1250,10 @@ Public Class MyMachGroupVM
Public Sub ResetCalc()
If ((IsNothing(ProjectManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM))) Then Return
Map.refMyStatusBarVM.SetLoadingProgress(0)
Map.refMyStatusBarVM.SetOutputMessage("")
Map.refShowBeamPanelVM.ShowBuilding_IsEnabled = True
MyExecProcessManager.nProdIndex = 0
Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup
If IsNothing(SelMachGroup) Then Return
' se barra gia' assegnata a supervisore, esco
@@ -67,5 +67,5 @@ Imports System.Windows
' Revision
'
<Assembly: AssemblyVersion("3.1.0.4")>
<Assembly: AssemblyFileVersion("3.1.0.4")>
<Assembly: AssemblyVersion("3.1.0.5")>
<Assembly: AssemblyFileVersion("3.1.0.5")>
@@ -96,6 +96,7 @@ Public Class OptimizePanelVM
Return m_Optimize_IsEnabled
End Get
End Property
Private m_CalcRotFlip_IsEnabled As Boolean = True
Public ReadOnly Property CalcRotFlip_IsEnabled As Boolean
Get
@@ -919,6 +919,11 @@ Public Class ProdManagerVM
' Disabilito pulsante assemblato
Map.refShowBeamPanelVM.ShowBuilding_IsEnabled = False
' creo BTLINFO
Dim nBTLInfoLayer As Integer = EgtCreateGroup(GDB_ID.ROOT)
EgtSetName(nBTLInfoLayer, BTLINFO)
EgtSetLevel(nBTLInfoLayer, GDB_LV.SYSTEM)
' creo PROJECTINFO
Dim nProjectInfoLayer As Integer = EgtCreateGroup(GDB_ID.ROOT)
EgtSetName(nProjectInfoLayer, PROJECTINFO)
@@ -955,7 +960,6 @@ Public Class ProdManagerVM
End If
End While
' scrivo info proj e type su layer BtlInfo
Dim nBTLInfoLayer As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
EgtSetInfo(nBTLInfoLayer, BTL_PRT_PROJ, nProjId)
EgtSetInfo(nBTLInfoLayer, BTL_GEN_PROJTYPE, nType)
' scrivo info proj su layer AsseBase
@@ -1028,7 +1032,7 @@ Public Class ProdManagerVM
Return False
End If
' se la macchina del progetto in apertura non è tra le macchine disponibili lo segnalo ed esco
Dim OpenProjectMachine As MyMachine = Map.refMachinePanelVM.MachineList.FirstOrDefault(Function(x) x.Name = m_TempCurrProd.sMachine)
Dim OpenProjectMachine As MyMachine = Map.refMachinePanelVM.MachineList.FirstOrDefault(Function(x) String.Equals(x.Name, m_TempCurrProd.sMachine, StringComparison.OrdinalIgnoreCase))
If IsNothing(OpenProjectMachine) Then
' rimuovo il file in apertura dalla lista degli MRU
m_MruFiles.Remove(sFilePath)
@@ -1125,7 +1129,7 @@ Public Class ProdManagerVM
' carico filtri di ricerca
Map.refProjectVM.BTLStructureVM.LoadFilters()
' imposto macchina del progetto
Map.refMachinePanelVM.SelectedMachine = Map.refMachinePanelVM.MachineList.FirstOrDefault(Function(x) x.Name = ProjectManagerVM.CurrProd.sMachine)
Map.refMachinePanelVM.SelectedMachine = Map.refMachinePanelVM.MachineList.FirstOrDefault(Function(x) String.Equals(x.Name, ProjectManagerVM.CurrProd.sMachine, StringComparison.OrdinalIgnoreCase))
Map.refMachinePanelVM.SetSelMachineName(Map.refMachinePanelVM.SelectedMachine.Name)
Map.refMachinePanelVM.SetStrategyManagerIsChecked(True)
Core.ViewPanelVM.UpdateBWType(ProjectManagerVM.CurrProd.nType)
@@ -1266,7 +1270,7 @@ Public Class ProdManagerVM
End If
End Sub
Public Sub OpenOnlyProjectFromSupervisor(ProjIdToOpen As Integer)
Public Sub OpenProjectFromSupervisor(ProjIdToOpen As Integer)
If Not IsNothing(ProjectManagerVM.CurrProd) Then
m_nProjIdToOpen = ProjIdToOpen
m_bOpenProj = True
@@ -1612,7 +1616,7 @@ Public Class ProdManagerVM
Dim nImpExpPartId = EgtGetFirstNameInGroup(GDB_ID.ROOT, EXP_PART)
Dim sMachine As String = ""
EgtGetInfo(nImpExpPartId, EXP_MACHINE, sMachine)
Dim Machine As Machine = Map.refMachinePanelVM.MachineList.FirstOrDefault(Function(x) x.Name = sMachine)
Dim Machine As Machine = Map.refMachinePanelVM.MachineList.FirstOrDefault(Function(x) String.Equals(x.Name, sMachine, StringComparison.OrdinalIgnoreCase))
' se la macchina del progetto in apertura non è tra le macchine disponibili lo segnalo e apro un progetto vuoto
Dim nType As Integer = BWType.NULL
@@ -1746,6 +1750,12 @@ Public Class ProdManagerVM
End If
Next
' imposto progetto corrente
If NewProjIdList.Count > 0 Then
SetCurrProj(NewProjIdList(0))
SetCurrProd(nProdId)
End If
If Map.refMainWindowVM.MainWindowM.nUserLevel >= 5 AndAlso GetMainPrivateProfileInt(S_MACH, K_EXPORTBWE, 0) = 1 Then
Map.refMyStatusBarVM.SetLoadingProgress(0)
Map.refMyStatusBarVM.SetOutputMessage("")
@@ -1804,12 +1814,7 @@ Public Class ProdManagerVM
DbControllers.m_ProdController.LockByProdId(nProdId, False, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
End If
DbControllers.m_ProdController.ResetController()
' imposto progetto corrente
If NewProjIdList.Count > 0 Then
SetCurrProj(NewProjIdList(0))
SetCurrProd(nProdId)
OpenProject(CurrProd)
End If
OpenProject(CurrProd)
WriteMainPrivateProfileString(S_GENERAL, K_LASTNGEXPDIR, Path.GetDirectoryName(ImportDlg.FileName))
LoadingWndHelper.CloseLoadingWnd(ActiveIds.IMPORTPROJECT)
End Sub
@@ -688,6 +688,8 @@ Public Class ProjectVM
Next
Map.refProjectVM.BTLStructureVM.SelBTLPart.SetStrategyModify_Visibility(Visibility.Collapsed)
End If
Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.ResetCalcFeature()
Map.refProjectVM.BTLStructureVM.SelBTLPart.ResetCalcPart()
If Map.refProdManagerVM.ListProjAsseBase.Count > 0 Then UpdatePart()
Map.refProjectVM.SetRawPartManagerVisibility(Visibility.Visible)
Map.refProjectVM.SetStrategyManagerVisibility(Visibility.Collapsed)
@@ -803,6 +803,7 @@ Public Class RawPartManagerVM
Map.refMyStatusBarVM.SetLoadingProgress(0)
Map.refMyStatusBarVM.SetOutputMessage("")
MyExecProcessManager.nProdIndex = 0
Map.refShowBeamPanelVM.ShowBuilding_IsEnabled = True
For Each MachGroup As MyMachGroupVM In Map.refProjectVM.MachGroupPanelVM.MachGroupVMList
If MachGroup.nProduction_State >= ItemState.Assigned Then Continue For
If MachGroup.nGlobalState <> CalcStates.NOTCALCULATED Then
@@ -56,11 +56,13 @@ Public Class ShowBeamPanelVM
Map.refProjectVM.SetSceneShowBuldingVisibility(Visibility.Visible)
Map.refProjectVM.SetManagerTabVisibility(Visibility.Collapsed)
Map.refProjectVM.SetFeatureListVisibility(Visibility.Collapsed)
Map.refOptimizePanelVM.SetOptimizePanelIsEnabled(False)
Else
EgtSetCurrentContext(Map.refSceneHostVM.MainScene.GetCtx())
Map.refProjectVM.SetSceneShowBuldingVisibility(Visibility.Collapsed)
Map.refProjectVM.SetManagerTabVisibility(Visibility.Visible)
If Not IsNothing(Map.refProjectVM.MachGroupPanelVM) Then Map.refProjectVM.SetFeatureListVisibility(Visibility.Visible)
Map.refOptimizePanelVM.SetOptimizePanelIsEnabled(True)
End If
NotifyPropertyChanged(NameOf(ShowBuilding_IsChecked))
End Set
@@ -1,3 +1,10 @@
Public Class OptimizerStatisticsV
Private m_StatisticsVM As StatisticsVM
Private Sub PrintBtn_Click(sender As Object, e As RoutedEventArgs) Handles CopyToClipboardBtn.Click
m_StatisticsVM = Me.DataContext()
CopyToClipboard(dgOptimizerStatistics, dgRawPartStatistics, m_StatisticsVM)
End Sub
End Class
+301 -480
View File
@@ -1,12 +1,13 @@
Imports MigraDoc.DocumentObjectModel
Imports MigraDoc.DocumentObjectModel.Shapes.Charts
Imports MigraDoc.DocumentObjectModel.Tables
Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtBEAMWALL.Core
Imports EgtBEAMWALL.Core.ConstGen
Imports EgtUILib
Imports System.Collections.ObjectModel
Imports MigraDoc.DocumentObjectModel
Imports MigraDoc.DocumentObjectModel.Shapes
Imports System.IO
Imports MigraDoc.DocumentObjectModel.Shapes.Charts
Imports MigraDoc.DocumentObjectModel.Tables
Imports PdfSharp.Pdf.Content.Objects
Module PDFHelper
@@ -140,367 +141,201 @@ Module PDFHelper
End Sub
Private Sub DefineItem(document As Document, nListType As ListTypes, bPreview As Boolean, sMachGroupList As ExpanderTable, sName As EgtDataGridColumn, sW As EgtDataGridColumn, sH As EgtDataGridColumn, sL As EgtDataGridColumn, sMaterial As EgtDataGridColumn, sUsage As EgtDataGridColumn, sWaste As EgtDataGridColumn, sUTime As EgtDataGridColumn, sQty As EgtDataGridColumn, sPDN As EgtDataGridColumn, sDesc As EgtDataGridColumn, sCNT As EgtDataGridColumn, sAdded As EgtDataGridColumn, sDone As EgtDataGridColumn, sUVolume As EgtDataGridColumn, sTVolume As EgtDataGridColumn, sTTime As EgtDataGridColumn, sINProd As EgtDataGridColumn, section As Section)
Dim countItemList As Integer
Select Case nListType
Case ListTypes.PART
section.AddParagraph(EgtMsg(61733), "Heading2")
Case ListTypes.MACHGROUP
section.AddParagraph(EgtMsg(61730), "Heading2")
Case ListTypes.RAWPART
section.AddParagraph(EgtMsg(61732), "Heading2")
Case ListTypes.PART : section.AddParagraph(EgtMsg(61733), "Heading2")
Case ListTypes.MACHGROUP : section.AddParagraph(EgtMsg(61730), "Heading2")
Case ListTypes.RAWPART : section.AddParagraph(EgtMsg(61732), "Heading2")
End Select
Dim items As IList(Of Object) = GetItemList(nListType, bPreview)
If Not bPreview AndAlso (IsNothing(items) OrElse items.Count = 0) Then Return
Dim activeColumns As New List(Of Integer)
For i As Integer = 0 To sMachGroupList.RawPartColumns.Count - 1
Dim colName As String = sMachGroupList.RawPartColumns(i).Name
If ColumnIsEnabled(colName, sPDN, sName, sW, sH, sL, sMaterial, sUsage, sWaste, sUTime, sQty, sDesc, sCNT, sAdded, sDone, sUVolume, sTVolume, sTTime, sINProd) Then
activeColumns.Add(i)
End If
Next
If activeColumns.Count = 0 Then Return
Dim table As New Table()
table.Borders.Width = 0.75
' ciclo sulle colonne per creare la tabella e riempirne i campi
' -2 -> creo colonne
' -1 -> riempio colonne della riga degli header
' >=0 -> riempio le colonne con i valori dei pezzi
Dim Itemlist As IEnumerable(Of Object) = Nothing
' Controllo se bPreview è true mostra il PDF di preview se no il PDF completo
If bPreview Then
Itemlist = New List(Of Object)
Else
Select Case nListType
Case ListTypes.PART
Itemlist = Map.refProjectVM.BTLStructureVM.BTLPartVMList
Case ListTypes.MACHGROUP
Itemlist = Map.refProjectVM.MachGroupPanelVM.MachGroupVMList
Case ListTypes.RAWPART
Map.refStatisticsVM.LoadRawPart()
Itemlist = Map.refStatisticsVM.RawPartList
End Select
End If
countItemList = If(bPreview, Itemlist.Count, Itemlist.Count - 1)
For PartIndex = -2 To countItemList
Dim BTLPartVM As BTLPartVM = Nothing
Dim MachGroupVM As MyMachGroupVM = Nothing
Dim RawPart As SParam = Nothing
Dim row As Row = Nothing
If PartIndex <> -2 Then
' aggiungo riga
row = table.AddRow()
End If
If PartIndex = -1 Then
' imposto la riga come header che si ripetera' all'inizio di ogni pagina
row.HeadingFormat = True
' coloro sfondo riga degli header
row.Shading.Color = Colors.Aqua
ElseIf PartIndex >= 0 Then
If bPreview Then
' recupero elemento della riga
Select Case nListType
Case ListTypes.PART
BTLPartVM = Nothing
Case ListTypes.MACHGROUP
MachGroupVM = Nothing
Case ListTypes.RAWPART
RawPart = Nothing
End Select
Else
' recupero elemento della riga
Select Case nListType
Case ListTypes.PART
BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList(PartIndex)
Case ListTypes.MACHGROUP
MachGroupVM = Map.refProjectVM.MachGroupPanelVM.MachGroupVMList(PartIndex)
Case ListTypes.RAWPART
RawPart = Map.refStatisticsVM.RawPartList(PartIndex)
End Select
End If
End If
For ColumnIndex = 0 To sMachGroupList.RawPartColumns.Count - 1
Select Case sMachGroupList.RawPartColumns(ColumnIndex).Name
Case COL_PDN
If sPDN.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(1))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.PDN_Msg)
ElseIf nListType = ListTypes.PART Then
row.Cells(ColumnIndex).AddParagraph(If(bPreview, 1, BTLPartVM.nPDN))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_ID
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(1.5))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Map.refStatisticsVM.ID_Msg)
ElseIf nListType = ListTypes.MACHGROUP Then
row.Cells(ColumnIndex).AddParagraph(MachGroupVM.Id)
End If
Case COL_W
If sW.bIsChecked Then
If PartIndex = -2 Then
Select Case nListType
Case ListTypes.PART
table.AddColumn(Unit.FromCentimeter(1))
Case ListTypes.MACHGROUP, ListTypes.RAWPART
table.AddColumn(Unit.FromCentimeter(2))
End Select
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.W_Msg)
ElseIf bPreview Then
row.Cells(ColumnIndex).AddParagraph(If(nListType = ListTypes.PART, 200, 120))
Else
Select Case nListType
Case ListTypes.PART
row.Cells(ColumnIndex).AddParagraph(BTLPartVM.sW)
Case ListTypes.MACHGROUP
row.Cells(ColumnIndex).AddParagraph(MachGroupVM.dW)
Case ListTypes.RAWPART
row.Cells(ColumnIndex).AddParagraph(RawPart.sW)
End Select
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_H
If sH.bIsChecked Then
If PartIndex = -2 Then
Select Case nListType
Case ListTypes.PART
table.AddColumn(Unit.FromCentimeter(1))
Case ListTypes.MACHGROUP, ListTypes.RAWPART
table.AddColumn(Unit.FromCentimeter(2))
End Select
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.H_Msg)
ElseIf bPreview Then
row.Cells(ColumnIndex).AddParagraph(If(nListType = ListTypes.PART, 360, 160))
Else
Select Case nListType
Case ListTypes.PART
row.Cells(ColumnIndex).AddParagraph(BTLPartVM.sH)
Case ListTypes.MACHGROUP
row.Cells(ColumnIndex).AddParagraph(MachGroupVM.dH)
Case ListTypes.RAWPART
row.Cells(ColumnIndex).AddParagraph(RawPart.sH)
End Select
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_L
If sL.bIsChecked Then
If PartIndex = -2 Then
Select Case nListType
Case ListTypes.PART
table.AddColumn(Unit.FromCentimeter(1.6))
Case ListTypes.MACHGROUP, ListTypes.RAWPART
table.AddColumn(Unit.FromCentimeter(2))
End Select
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.L_Msg)
ElseIf bPreview Then
row.Cells(ColumnIndex).AddParagraph(If(nListType = ListTypes.PART, 6672.6, 15000))
Else
Select Case nListType
Case ListTypes.PART
row.Cells(ColumnIndex).AddParagraph(BTLPartVM.sL)
Case ListTypes.MACHGROUP
row.Cells(ColumnIndex).AddParagraph(MachGroupVM.dL)
Case ListTypes.RAWPART
row.Cells(ColumnIndex).AddParagraph(RawPart.sL)
End Select
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_DESC
If sDesc.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(4))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.NAM_Msg)
ElseIf bPreview Then
row.Cells(ColumnIndex).AddParagraph(If(nListType = ListTypes.PART, EgtMsg(63032), 1))
Else
row.Cells(ColumnIndex).AddParagraph(If(nListType = ListTypes.PART, BTLPartVM.sNAM, MachGroupVM.nName))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_NAME
If sName.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(4))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.NAM_Msg)
ElseIf bPreview Then
row.Cells(ColumnIndex).AddParagraph(If(nListType = ListTypes.PART, EgtMsg(63032), 1))
Else
row.Cells(ColumnIndex).AddParagraph(If(nListType = ListTypes.PART, BTLPartVM.sNAM, MachGroupVM.nName))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_MATERIAL
If sMaterial.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.MAT_Msg)
ElseIf bPreview Then
row.Cells(ColumnIndex).AddParagraph("GL24h")
Else
Select Case nListType
Case ListTypes.PART
row.Cells(ColumnIndex).AddParagraph(BTLPartVM.sMATERIAL)
Case ListTypes.MACHGROUP
row.Cells(ColumnIndex).AddParagraph(MachGroupVM.sMATERIAL)
Case ListTypes.RAWPART
row.Cells(ColumnIndex).AddParagraph(RawPart.sMaterial)
End Select
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_CNT
If sCNT.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(1.6))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.CNT_Msg)
ElseIf nListType = ListTypes.PART Then
row.Cells(ColumnIndex).AddParagraph(If(bPreview, 1, BTLPartVM.sCNT))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_ADDED
If sAdded.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(1.5))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.ADDED_Msg)
ElseIf nListType = ListTypes.PART Then
row.Cells(ColumnIndex).AddParagraph(If(bPreview, 0, BTLPartVM.sADDED))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_INPROD
If sINProd.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2.5))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.INPROD_Msg)
ElseIf nListType = ListTypes.PART Then
row.Cells(ColumnIndex).AddParagraph(If(bPreview, 0, BTLPartVM.nINPROD))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_DONE
If sDone.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(1.5))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.DONE_Msg)
ElseIf nListType = ListTypes.PART Then
row.Cells(ColumnIndex).AddParagraph(If(bPreview, 0, BTLPartVM.nDONE))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_USAGE
If sUsage.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.Used_Msg)
ElseIf nListType = ListTypes.MACHGROUP Then
row.Cells(ColumnIndex).AddParagraph(If(bPreview, 99.719, MachGroupVM.sUsage))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_WASTE
If sWaste.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.Waste_Msg)
ElseIf nListType = ListTypes.MACHGROUP Then
row.Cells(ColumnIndex).AddParagraph(If(bPreview, 0.5, MachGroupVM.sWaste))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_UNITVOLUME
If sUVolume.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(If(nListType = ListTypes.PART, Unit.FromCentimeter(1.5), Unit.FromCentimeter(2)))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.UNIT_VOLUME_Msg)
ElseIf bPreview Then
row.Cells(ColumnIndex).AddParagraph(0.48)
Else
row.Cells(ColumnIndex).AddParagraph(If(nListType = ListTypes.PART, BTLPartVM.sUnitVolume, MachGroupVM.dUnitVolume))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_TOTVOLUME
If sTVolume.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(1.5))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.TOT_VOLUME_Msg)
ElseIf nListType = ListTypes.PART Then
row.Cells(ColumnIndex).AddParagraph(If(bPreview, 0.48, BTLPartVM.sTotVolume))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_UNITTIME
If sUTime.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2.2))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.UNIT_TIME_Msg)
ElseIf bPreview Then
row.Cells(ColumnIndex).AddParagraph(If(nListType = ListTypes.PART, "00:00:00", "00:13:07"))
Else
row.Cells(ColumnIndex).AddParagraph(If(nListType = ListTypes.PART, BTLPartVM.sUnitTime, MachGroupVM.sUnitTime))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_TOTTIME
If sTTime.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.TOT_TIME_Msg)
ElseIf nListType = ListTypes.PART Then
row.Cells(ColumnIndex).AddParagraph(If(bPreview, "00:00:00", BTLPartVM.sTotTime))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_QTY
If sQty.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.QTY_Msg)
ElseIf nListType = ListTypes.RAWPART Then
row.Cells(ColumnIndex).AddParagraph(If(bPreview, 11, RawPart.nQuantity))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
End Select
Next
For Each colIndex As Integer In activeColumns
Dim width As Unit = GetColumnWidth(sMachGroupList.RawPartColumns(colIndex).Name, nListType)
table.AddColumn(width)
Next
' aggiungo tabella all'ultima sezione
document.LastSection.Add(table)
Dim header As Row = table.AddRow()
header.HeadingFormat = True
header.Shading.Color = Colors.Aqua
For j As Integer = 0 To activeColumns.Count - 1
Dim colName As String = sMachGroupList.RawPartColumns(activeColumns(j)).Name
header.Cells(j).AddParagraph(GetHeaderText(colName))
Next
If bPreview Then
Dim row As Row = table.AddRow()
For j As Integer = 0 To activeColumns.Count - 1
Dim colName As String = sMachGroupList.RawPartColumns(activeColumns(j)).Name
row.Cells(j).AddParagraph(GetCellValue(colName, Nothing, nListType, bPreview))
Next
Else
For Each item As Object In items
Dim row As Row = table.AddRow()
For j As Integer = 0 To activeColumns.Count - 1
Dim colName As String = sMachGroupList.RawPartColumns(activeColumns(j)).Name
row.Cells(j).AddParagraph(GetCellValue(colName, item, nListType, bPreview))
Next
Next
End If
If table.Columns.Count > 0 AndAlso table.Rows.Count > 0 Then document.LastSection.Add(table)
End Sub
Private Function ColumnIsEnabled(colName As String, sPDN As EgtDataGridColumn, sName As EgtDataGridColumn, sW As EgtDataGridColumn, sH As EgtDataGridColumn, sL As EgtDataGridColumn, sMaterial As EgtDataGridColumn, sUsage As EgtDataGridColumn, sWaste As EgtDataGridColumn, sUTime As EgtDataGridColumn, sQty As EgtDataGridColumn, sDesc As EgtDataGridColumn, sCNT As EgtDataGridColumn, sAdded As EgtDataGridColumn, sDone As EgtDataGridColumn, sUVolume As EgtDataGridColumn, sTVolume As EgtDataGridColumn, sTTime As EgtDataGridColumn, sINProd As EgtDataGridColumn) As Boolean
Select Case colName
Case COL_PDN : Return sPDN.bIsChecked
Case COL_NAME, COL_DESC : Return Not IsNothing(sName) AndAlso sName.bIsChecked Or Not IsNothing(sDesc) AndAlso sDesc.bIsChecked
Case COL_W : Return sW.bIsChecked
Case COL_H : Return sH.bIsChecked
Case COL_L : Return sL.bIsChecked
Case COL_MATERIAL : Return sMaterial.bIsChecked
Case COL_USAGE : Return sUsage.bIsChecked
Case COL_WASTE : Return sWaste.bIsChecked
Case COL_UNITTIME : Return sUTime.bIsChecked
Case COL_QTY : Return sQty.bIsChecked
Case COL_CNT : Return sCNT.bIsChecked
Case COL_ADDED : Return sAdded.bIsChecked
Case COL_DONE : Return sDone.bIsChecked
Case COL_UNITVOLUME : Return sUVolume.bIsChecked
Case COL_TOTVOLUME : Return sTVolume.bIsChecked
Case COL_TOTTIME : Return sTTime.bIsChecked
Case COL_INPROD : Return sINProd.bIsChecked
Case COL_ID : Return True
Case Else : Return False
End Select
End Function
Private Function GetColumnWidth(colName As String, nListType As ListTypes) As Unit
Select Case colName
Case COL_PDN : Return Unit.FromCentimeter(1)
Case COL_ID : Return Unit.FromCentimeter(1.5)
Case COL_W, COL_H : Return If(nListType = ListTypes.PART, Unit.FromCentimeter(1), Unit.FromCentimeter(2))
Case COL_L : Return If(nListType = ListTypes.PART, Unit.FromCentimeter(1.6), Unit.FromCentimeter(2))
Case COL_NAME, COL_DESC : Return Unit.FromCentimeter(4)
Case COL_MATERIAL : Return Unit.FromCentimeter(2)
Case COL_CNT : Return Unit.FromCentimeter(1.6)
Case COL_ADDED : Return Unit.FromCentimeter(1.5)
Case COL_INPROD : Return Unit.FromCentimeter(2.5)
Case COL_DONE : Return Unit.FromCentimeter(1.5)
Case COL_USAGE, COL_WASTE : Return Unit.FromCentimeter(2)
Case COL_UNITVOLUME : Return If(nListType = ListTypes.PART, Unit.FromCentimeter(1.5), Unit.FromCentimeter(2))
Case COL_TOTVOLUME : Return Unit.FromCentimeter(1.5)
Case COL_UNITTIME : Return Unit.FromCentimeter(2.2)
Case COL_TOTTIME : Return Unit.FromCentimeter(2)
Case COL_QTY : Return Unit.FromCentimeter(2)
Case Else : Return Unit.FromCentimeter(2)
End Select
End Function
Private Function GetHeaderText(colName As String) As String
Select Case colName
Case COL_PDN : Return Statistic_Messages.PDN_Msg
Case COL_ID : Return Map.refStatisticsVM.ID_Msg
Case COL_W : Return Statistic_Messages.W_Msg
Case COL_H : Return Statistic_Messages.H_Msg
Case COL_L : Return Statistic_Messages.L_Msg
Case COL_NAME, COL_DESC : Return Statistic_Messages.NAM_Msg
Case COL_MATERIAL : Return Statistic_Messages.MAT_Msg
Case COL_CNT : Return Statistic_Messages.CNT_Msg
Case COL_ADDED : Return Statistic_Messages.ADDED_Msg
Case COL_INPROD : Return Statistic_Messages.INPROD_Msg
Case COL_DONE : Return Statistic_Messages.DONE_Msg
Case COL_USAGE : Return Statistic_Messages.Used_Msg
Case COL_WASTE : Return Statistic_Messages.Waste_Msg
Case COL_UNITVOLUME : Return Statistic_Messages.UNIT_VOLUME_Msg
Case COL_TOTVOLUME : Return Statistic_Messages.TOT_VOLUME_Msg
Case COL_UNITTIME : Return Statistic_Messages.UNIT_TIME_Msg
Case COL_TOTTIME : Return Statistic_Messages.TOT_TIME_Msg
Case COL_QTY : Return Statistic_Messages.QTY_Msg
Case Else : Return ""
End Select
End Function
Private Function GetItemList(nListType As ListTypes, bPreview As Boolean) As IList(Of Object)
If bPreview Then Return New List(Of Object)()
Select Case nListType
Case ListTypes.PART
Return Map.refProjectVM.BTLStructureVM.BTLPartVMList.Cast(Of Object)().ToList()
Case ListTypes.MACHGROUP
Return Map.refProjectVM.MachGroupPanelVM.MachGroupVMList.Cast(Of Object)().ToList()
Case ListTypes.RAWPART
Map.refStatisticsVM.LoadRawPart()
Return Map.refStatisticsVM.RawPartList.Cast(Of Object)().ToList()
Case Else
Return New List(Of Object)()
End Select
End Function
Private Function GetCellValue(colName As String, item As Object, nListType As ListTypes, bPreview As Boolean) As String
Select Case nListType
Case ListTypes.PART
Dim Part As BTLPartVM = CType(item, BTLPartVM)
Select Case colName
Case COL_PDN : Return If(bPreview, "1", Part.nPDN)
Case COL_W : Return If(bPreview, "200", Part.sW)
Case COL_H : Return If(bPreview, "360", Part.sH)
Case COL_L : Return If(bPreview, "6672.6", Part.sL)
Case COL_NAME, COL_DESC : Return Part.sNAM
Case COL_MATERIAL : Return Part.sMATERIAL
Case COL_CNT : Return If(bPreview, "1", Part.sCNT)
Case COL_ADDED : Return If(bPreview, "0", Part.sADDED)
Case COL_INPROD : Return If(bPreview, "0", Part.nINPROD)
Case COL_DONE : Return If(bPreview, "0", Part.nDONE)
Case COL_UNITVOLUME : Return If(bPreview, "0.48", Part.sUnitVolume)
Case COL_TOTVOLUME : Return If(bPreview, "0.48", Part.sTotVolume)
Case COL_UNITTIME : Return If(bPreview, "00:00:00", Part.sUnitTime)
Case COL_TOTTIME : Return If(bPreview, "00:00:00", Part.sTotTime)
End Select
Case ListTypes.MACHGROUP
Dim Machgroup As MyMachGroupVM = CType(item, MyMachGroupVM)
Select Case colName
Case COL_ID : Return Machgroup.Id
Case COL_W : Return If(bPreview, "120", Machgroup.dW)
Case COL_H : Return If(bPreview, "160", Machgroup.dH)
Case COL_L : Return If(bPreview, "15000", Machgroup.dL)
Case COL_NAME, COL_DESC : Return Machgroup.nName
Case COL_MATERIAL : Return Machgroup.sMATERIAL
Case COL_USAGE : Return If(bPreview, "99.719", Machgroup.sUsage)
Case COL_WASTE : Return If(bPreview, "0.5", Machgroup.sWaste)
Case COL_UNITVOLUME : Return If(bPreview, "0.48", Machgroup.dUnitVolume)
Case COL_UNITTIME : Return If(bPreview, "00:13:07", Machgroup.sUnitTime)
End Select
Case ListTypes.RAWPART
Dim RawPart As SParam = CType(item, SParam)
Select Case colName
Case COL_W : Return If(bPreview, "120", RawPart.sW)
Case COL_H : Return If(bPreview, "160", RawPart.sH)
Case COL_L : Return If(bPreview, "15000", RawPart.sL)
Case COL_MATERIAL : Return RawPart.sMaterial
Case COL_QTY : Return If(bPreview, "11", RawPart.nQuantity)
End Select
End Select
Return ""
End Function
Public Sub CreateRawPartPages(ByVal document As Document, bPreview As Boolean)
document.DefaultPageSetup.DifferentFirstPageHeaderFooter = False
'Recupero la lista delle colonne delle tabelle
@@ -524,131 +359,120 @@ Module PDFHelper
Private Sub CreateRawPartPage(document As Document, sMachGroupList As ExpanderTable, sPDN As EgtDataGridColumn, sW As EgtDataGridColumn, sH As EgtDataGridColumn, sL As EgtDataGridColumn, sDesc As EgtDataGridColumn, sMaterial As EgtDataGridColumn, RawPart As MyMachGroupVM, bPreview As Boolean)
Dim section As Section = document.AddSection()
' cambio orientamento a verticale
Dim pgSetup As PageSetup = document.DefaultPageSetup.Clone()
pgSetup.Orientation = Orientation.Landscape
section.PageSetup = pgSetup
Dim PartVMList As IEnumerable(Of Object)
Dim countPartVMList As Integer
Dim items As IList(Of Object)
If IsNothing(RawPart) Then
PartVMList = New List(Of Object)
items = New List(Of Object)()
CreateRawPartImage(section, sMachGroupList, 44143, 1, bPreview)
countPartVMList = PartVMList.Count
Else
PartVMList = RawPart.PartVMList
items = RawPart.PartVMList.Cast(Of Object)().ToList()
CreateRawPartImage(section, sMachGroupList, RawPart.Id, RawPart.Name, bPreview)
countPartVMList = PartVMList.Count - 1
End If
' aggiungo tabella dei pezzi
Dim table As Table = New Table()
table.Borders.Width = 0.75
For PartIndex = -2 To countPartVMList
Dim PartVM As PartVM = Nothing
Dim row As Row = Nothing
If PartIndex <> -2 Then
' aggiungo riga
row = table.AddRow()
If Not bPreview AndAlso items.Count = 0 Then Exit Sub
Dim activeColumns As New List(Of Integer)
For i = 0 To sMachGroupList.RawPartColumns.Count - 1
Dim colName = sMachGroupList.RawPartColumns(i).Name
If ColumnRawPartIsEnabled(colName, sPDN, Nothing, sW, sH, sL, sMaterial, Nothing, Nothing, Nothing, Nothing, sDesc, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing) Then
activeColumns.Add(i)
End If
If PartIndex = -1 Then
' imposto la riga come header che si ripetera' all'inizio di ogni pagina
row.HeadingFormat = True
' coloro sfondo riga degli header
row.Shading.Color = Colors.Aqua
ElseIf PartIndex >= 0 Then
' recupero elemento della riga
PartVM = PartVMList(PartIndex)
End If
Dim Columnlist As ObservableCollection(Of EgtDataGridColumn) = sMachGroupList.RawPartColumns
For ColumnIndex = 0 To Columnlist.Count - 1
Select Case Columnlist(ColumnIndex).Name
Case COL_PDN
If sPDN.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(1.5))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.PDN_Msg)
Else
row.Cells(ColumnIndex).AddParagraph(If(IsNothing(RawPart), 55, PartVM.nPDN))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_W
If sW.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.W_Msg)
Else
row.Cells(ColumnIndex).AddParagraph(If(IsNothing(RawPart), 120, PartVM.sW))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_H
If sH.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.H_Msg)
Else
row.Cells(ColumnIndex).AddParagraph(If(IsNothing(RawPart), 160, PartVM.sH))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_L
If sL.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.L_Msg)
Else
row.Cells(ColumnIndex).AddParagraph(If(IsNothing(RawPart), 185.9, PartVM.sL))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_DESC
If sDesc.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(4))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.NAM_Msg)
Else
row.Cells(ColumnIndex).AddParagraph(If(IsNothing(RawPart), EgtMsg(63033), PartVM.sNAM))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
Case COL_NAME
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(4))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.NAM_Msg)
Else
row.Cells(ColumnIndex).AddParagraph(PartVM.sNAM)
End If
Case COL_MATERIAL
If sMaterial.bIsChecked Then
If PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(2))
ElseIf PartIndex = -1 Then
row.Cells(ColumnIndex).AddParagraph(Statistic_Messages.MAT_Msg)
Else
row.Cells(ColumnIndex).AddParagraph(If(IsNothing(RawPart), "GL24h", PartVM.sMATERIAL))
End If
ElseIf PartIndex = -2 Then
table.AddColumn(Unit.FromCentimeter(0))
End If
End Select
Next
Next
' aggiungo tabella all'ultima sezione
section.Add(table)
If activeColumns.Count = 0 Then Return
' --- CREA TABELLA ---
Dim table As New Table()
table.Borders.Width = 0.75
For Each colIndex In activeColumns
Dim width = GetRawPartColumnWidth(sMachGroupList.RawPartColumns(colIndex).Name)
table.AddColumn(width)
Next
Dim header = table.AddRow()
header.HeadingFormat = True
header.Shading.Color = Colors.Aqua
For j = 0 To activeColumns.Count - 1
Dim colName = sMachGroupList.RawPartColumns(activeColumns(j)).Name
header.Cells(j).AddParagraph(GetRawPartHeader(colName))
Next
If bPreview Then
Dim row = table.AddRow()
For j = 0 To activeColumns.Count - 1
Dim colName = sMachGroupList.RawPartColumns(activeColumns(j)).Name
row.Cells(j).AddParagraph(GetRawPartValue(colName, Nothing, bPreview))
Next
Else
For Each obj In items
Dim p = CType(obj, PartVM)
Dim row = table.AddRow()
For j = 0 To activeColumns.Count - 1
Dim colName = sMachGroupList.RawPartColumns(activeColumns(j)).Name
row.Cells(j).AddParagraph(GetRawPartValue(colName, p, bPreview))
Next
Next
End If
If table.Columns.Count > 0 AndAlso table.Rows.Count > 0 Then section.Add(table)
End Sub
Private Function ColumnRawPartIsEnabled(colName As String, sPDN As EgtDataGridColumn, sName As EgtDataGridColumn, sW As EgtDataGridColumn, sH As EgtDataGridColumn, sL As EgtDataGridColumn, sMaterial As EgtDataGridColumn, sUsage As EgtDataGridColumn, sWaste As EgtDataGridColumn, sUTime As EgtDataGridColumn, sQty As EgtDataGridColumn, sDesc As EgtDataGridColumn, sCNT As EgtDataGridColumn, sAdded As EgtDataGridColumn, sDone As EgtDataGridColumn, sUVolume As EgtDataGridColumn, sTVolume As EgtDataGridColumn, sTTime As EgtDataGridColumn, sINProd As EgtDataGridColumn) As Boolean
Select Case colName
Case COL_PDN : Return sPDN.bIsChecked
Case COL_W : Return sW.bIsChecked
Case COL_H : Return sH.bIsChecked
Case COL_L : Return sL.bIsChecked
Case COL_DESC : Return sDesc.bIsChecked
Case COL_MATERIAL : Return sMaterial.bIsChecked
Case COL_NAME : Return True
Case Else : Return False
End Select
End Function
Private Function GetRawPartColumnWidth(colName As String) As Unit
Select Case colName
Case COL_PDN : Return Unit.FromCentimeter(1.5)
Case COL_W, COL_H, COL_L : Return Unit.FromCentimeter(2)
Case COL_DESC, COL_NAME : Return Unit.FromCentimeter(4)
Case COL_MATERIAL : Return Unit.FromCentimeter(2)
Case Else : Return Unit.FromCentimeter(2)
End Select
End Function
Private Function GetRawPartHeader(colName As String) As String
Select Case colName
Case COL_PDN : Return Statistic_Messages.PDN_Msg
Case COL_W : Return Statistic_Messages.W_Msg
Case COL_H : Return Statistic_Messages.H_Msg
Case COL_L : Return Statistic_Messages.L_Msg
Case COL_DESC, COL_NAME : Return Statistic_Messages.NAM_Msg
Case COL_MATERIAL : Return Statistic_Messages.MAT_Msg
Case Else : Return ""
End Select
End Function
Private Function GetRawPartValue(colName As String, p As PartVM, bPreview As Boolean) As String
Select Case colName
Case COL_PDN : Return If(bPreview, "55", p.nPDN)
Case COL_W : Return If(bPreview, "120", p.sW)
Case COL_H : Return If(bPreview, "160", p.sH)
Case COL_L : Return If(bPreview, "185.9", p.sL)
Case COL_DESC, COL_NAME : Return If(bPreview, EgtMsg(63033), p.sNAM)
Case COL_MATERIAL : Return If(bPreview, "GL24h", p.sMATERIAL)
Case Else : Return ""
End Select
End Function
Private Sub CreateRawPartImage(section As Section, sMachGroupList As ExpanderTable, RawPartId As Integer, RawPartName As String, bPreview As Boolean)
Dim sImagePath As String = String.Empty
' creo immagine
@@ -656,16 +480,13 @@ Module PDFHelper
EgtSetMachineLook(MCH_LOOK.TAB)
Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.FRONT, VT.TOP), False)
EgtZoom(ZM.ALL, False)
If Not File.Exists(Map.refMainWindowVM.MainWindowM.sTempDir & "\Image" & RawPartId & ".png") Then
sImagePath = Map.refMainWindowVM.MainWindowM.sTempDir & "\Image" & RawPartId & ".png"
ElseIf bPreview Then
sImagePath = Map.refMainWindowVM.MainWindowM.sTempDir & "\ImageTest.png"
Else
Return
End If
Dim basePath = Map.refMainWindowVM.MainWindowM.sTempDir
Dim realImage = $"{basePath}\Image{RawPartId}.png"
Dim previewImage = $"{basePath}\ImageTest.png"
sImagePath = If(bPreview, previewImage, realImage)
EgtGetImage(SM.HIDDENLINE, New Color3d(255, 255, 255), New Color3d(255, 255, 255), 3000, 1000, sImagePath)
' aggiungo immagine
If sMachGroupList.bSection_IsChecked Then section.AddParagraph(RawPartName)
' aggiungo immagine
If sMachGroupList.bImage_IsChecked Then
Dim Image As Image = section.AddImage(sImagePath)
Image.LockAspectRatio = True
@@ -678,12 +499,12 @@ Module PDFHelper
Public Sub DefineLogo(section As Section, sImageLogo As String)
Dim Image As MigraDoc.DocumentObjectModel.Shapes.Image = section.Headers.FirstPage.AddImage(sImageLogo)
Image.Width = Unit.FromMillimeter(245)
Image.Width = Unit.FromMillimeter(40)
Image.Height = Unit.FromMillimeter(40)
Image.LockAspectRatio = True
Image.RelativeVertical = RelativeVertical.Line
Image.Top = ShapePosition.Top
Image.Left = ShapePosition.Left
Image.Left = ShapePosition.Right
Image.WrapFormat.Style = WrapStyle.Through
Image.RelativeHorizontal = RelativeHorizontal.Margin
End Sub
@@ -36,7 +36,7 @@ Public Class SupervisorComm
Case StatusMapOpType.OpenPageInViewOptimRequest
Map.refMainMenuVM.OpenPageFromSupervisor(Math.Abs(Message.ItemId))
Case StatusMapOpType.ChangeProdInOptimizerRequest
Map.refProdManagerVM.OpenOnlyProjectFromSupervisor(Message.ItemId)
Map.refProdManagerVM.OpenProjectFromSupervisor(Message.ItemId)
End Select
End Select
Next