Merge branch 'feature/ReportConfigWnd' into feature/NewPage

This commit is contained in:
Demetrio Cassarino
2024-02-12 17:12:09 +01:00
43 changed files with 4053 additions and 664 deletions
+2
View File
@@ -144,6 +144,8 @@
Public Const BTL_PRT_INVERTED As String = "INVERTED"
Public Const BTL_PRT_MATERIAL As String = "MATERIAL"
Public Const BTL_PRT_VOLUME As String = "VOLUME"
Public Const BTL_PRT_ROT As String = "ROT"
Public Const BTL_PRT_FLIP As String = "FLIP"
' parametri pezzo
Public Const BTL_PRT_SINGLEMEMBERNUM = "SINGLEMEMBERNUMBER"
Public Const BTL_PRT_ASSEMBLYNUM = "ASSEMBLYNUMBER"
+18 -5
View File
@@ -1,11 +1,27 @@
Public Module ConstColumns
Public Const COL_ID As String = "colID"
Public Const COL_DO As String = "colDO"
Public Const COL_VALUE As String = "colVALUE"
Public Const COL_CUSTOM As String = "colCUSTOM"
Public Const COL_NAME As String = "colNAME"
Public Const COL_CALC As String = "colCALC"
Public Const COL_PDN As String = "colPDN"
Public Const COL_STARTCUT As String = "colSTARTCUT"
Public Const COL_W As String = "colW"
Public Const COL_H As String = "colH"
Public Const COL_L As String = "colL"
Public Const COL_CNT As String = "colCNT"
Public Const COL_ADDED As String = "colADDED"
Public Const COL_INPROD As String = "colINPROD"
Public Const COL_DONE As String = "colDONE"
Public Const COL_MATERIAL As String = "colMATERIAL"
Public Const COL_UNITVOLUME As String = "colUNITVOLUME"
Public Const COL_TOTVOLUME As String = "colTOTVOLUME"
Public Const COL_UNITTIME As String = "colUNITTIME"
Public Const COL_TOTTIME As String = "colTOTTIME"
Public Const COL_USAGE As String = "colUSAGE"
Public Const COL_WASTE As String = "colWASTE"
Public Const COL_POSZ As String = "colPOSZ"
Public Const COL_ROT As String = "colROT"
Public Const COL_FLIP As String = "colFLIP"
@@ -15,13 +31,10 @@
Public Const COL_REDO As String = "colREDO"
Public Const COL_TYPE As String = "colTYPE"
Public Const COL_DESCRIPTION As String = "colDESCRIPTION"
Public Const COL_DESC As String = "colDESC"
Public Const COL_SUPERVISORID As String = "colSUPERVISORID"
Public Const COL_PRIORITY As String = "colPRIORITY"
Public Const COL_NAME As String = "colNAME"
Public Const COL_H As String = "colH"
Public Const COL_MATERIAL As String = "colMATERIAL"
Public Const COL_USAGE As String = "colUSAGE"
Public Const COL_WASTE As String = "colWASTE"
Public Const COL_QTY As String = "colQTY"
Public Const COL_ARCHIVED As String = "colARCHIVED"
End Module
@@ -19,6 +19,7 @@
Public Const S_PARTLIST As String = "DG_PartList"
Public Const S_FEATUREINPARTINRAWPARTLIST As String = "DG_FeatureInPartInRawPartList"
Public Const S_STATISTICS As String = "DG_Statistics"
Public Const S_STATISTICS_PART As String = "DG_Statistics_PART"
Public Const S_OPTIMIZERSTATISTICS As String = "DG_OptimizerStatistics"
Public Const S_RAWPARTSTATISTICS As String = "DG_RawPartStatistics"
Public Const S_BEAMMACHININGS As String = "DG_BeamMachinings"
+6
View File
@@ -97,6 +97,7 @@ Public Module ConstIni
Public Const S_IMPORT As String = "Import"
Public Const K_BTLFLAG As String = "BtlFlag"
Public Const K_WALLBTLFLAG As String = "WallBtlFlag"
Public Const K_BTLAUXDIR As String = "BtlAuxDir"
Public Const K_WALLOPPOSITESIDENESTING As String = "WallOppositeSideNesting"
'Public Const S_MACH As String = "Mach"
@@ -163,6 +164,11 @@ Public Module ConstIni
Public Const K_TYPE As String = "Type"
Public Const K_DEFAULTQUANTITY As String = "DefaultQuantity"
Public Const S_SECTION As String = "Section_Checked"
Public Const S_IMAGE As String = "Image_Checked"
Public Const S_PDFEDITOR As String = "PDFEditor"
Public Const S_BACKUPANDRESTORE As String = "Backup&Restore"
Public Const K_EXTERNALBACKUPACTIVE As String = "ExternalBackupActive"
Public Const K_EXTERNALFILEPATH As String = "ExternalFilePath"
+1
View File
@@ -136,6 +136,7 @@
</Compile>
<Compile Include="NewOpenProjectFileDialog\NewOpenProjectFileDialogVM.vb" />
<Compile Include="Utility\Configuration.vb" />
<Compile Include="ProjectFileVM\ProdItem.vb" />
<Compile Include="Utility\DimensionsIniFile.vb" />
<Compile Include="Utility\Enum.vb" />
<Compile Include="MachGroupPanel\MyMachGroupPanelVM.vb" />
@@ -4,9 +4,6 @@ Imports System.ComponentModel
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Controls.Primitives
Imports System.Windows.Input
Imports System.Windows.Media
Imports EgtUILib
Imports EgtWPFLib5
@@ -370,9 +367,23 @@ Public Class EgtDataGrid
End Class
Public Class EgtDataGridColumn
Inherits VMBase
Private m_dgColumn As DataGridColumn
'Check Box per le singole colonne
Private m_bIsCheched As Boolean
Public Property bIsChecked As Boolean
Get
Return m_bIsCheched
End Get
Set(value As Boolean)
m_bIsCheched = value
NotifyPropertyChanged(NameOf(bIsChecked))
WriteMainPrivateProfileString(S_PDFEDITOR, m_Name, If(m_bIsCheched, 1, 0))
End Set
End Property
Private Property m_ParentDataGridName As String
Public Property ParentDataGridName As String
Get
@@ -574,6 +585,7 @@ Public Class EgtDataGridColumn
m_Visible = bVisible
m_CanUserEditVisible = bCanUserEditVisible
m_SortDirection = nSortDirection
m_bIsCheched = GetMainPrivateProfileInt(S_PDFEDITOR, m_Name, 0) <> 0
End Sub
Friend Sub InitColumn(dgColumn As DataGridColumn)
@@ -779,94 +779,3 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Class
Public Class ProdItem
Inherits VMBase
Public Shared m_delIsModifiedSetUp As Action(Of Boolean)
Protected m_ProdFileVM As ProdFileVM
Public ReadOnly Property ProdFileVM As ProdFileVM
Get
Return m_ProdFileVM
End Get
End Property
Private m_ProjFileList As New List(Of ProjectFileVM)
Public ReadOnly Property ProjFileList As List(Of ProjectFileVM)
Get
Return m_ProjFileList
End Get
End Property
Public ReadOnly Property sProdId As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sProdId, "")
End Get
End Property
Public Overridable Property sName As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "")
End Get
Set(value As String)
If Not IsNothing(m_ProdFileVM) Then
m_ProdFileVM.sName = value
End If
End Set
End Property
Public ReadOnly Property dtCreateDate As Date
Get
Return If(Not IsNothing(m_ProdFileVM), {m_ProdFileVM.dtCreateDate, m_ProjFileList.Min(Function(x) x.dtCreateDate)}.Min(), m_ProjFileList.Min(Function(x) x.dtCreateDate))
End Get
End Property
Public ReadOnly Property sCreateDate As String
Get
Return dtCreateDate.ToString()
End Get
End Property
Public ReadOnly Property sMachine As String
Get
If Not IsNothing(m_ProdFileVM) Then
Return m_ProdFileVM.sMachine
ElseIf Not IsNothing(m_ProjFileList(0)) Then
Return m_ProjFileList(0).sMachine
Else Return ""
End If
End Get
End Property
Public ReadOnly Property bIsArchived As Boolean
Get
If Not IsNothing(m_ProdFileVM) Then
Return m_ProdFileVM.bIsArchived
ElseIf Not IsNothing(m_ProjFileList(0)) Then
Return m_ProjFileList(0).bIsArchived
Else
Return True
End If
End Get
End Property
Public ReadOnly Property Archived_Visibility As Visibility
Get
Return If(bIsArchived, Visibility.Visible, Visibility.Collapsed)
End Get
End Property
Sub New(ProdFileVM As ProdFileVM, ProjFileVM As ProjFileVM)
m_ProdFileVM = ProdFileVM
m_ProjFileList.Add(ProjFileVM)
End Sub
Sub New(ProjFileVM As ProjFileVM)
m_ProjFileList = New List(Of ProjectFileVM)({ProjFileVM})
End Sub
Sub New(ProdFileVM As ProjectFileVM, ProjFileVMList As List(Of ProjectFileVM))
m_ProdFileVM = ProdFileVM
m_ProjFileList = ProjFileVMList
End Sub
End Class
@@ -42,6 +42,8 @@ Public MustInherit Class OpenProjectFileDialogVM
Friend Event m_CloseWindow(bDialogResult As Boolean)
Protected m_GoToProd As Boolean = False
Protected m_ProjectColumns As New ObservableCollection(Of EgtDataGridColumn)
Public Property ProjectColumns As ObservableCollection(Of EgtDataGridColumn)
Get
@@ -438,7 +440,7 @@ Public MustInherit Class OpenProjectFileDialogVM
#Region "METHODS"
Public MustOverride Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
Public Overridable Sub RefreshProjectList(Optional GoToProd As Boolean = False)
Public Overridable Sub RefreshProjectList()
End Sub
Protected Sub LoadColumns(ProjectType As ProjectType)
@@ -14,6 +14,13 @@ Public Class ProdFileM
m_nProjIdList = value
End Sub
Protected m_ProjMList As List(Of ProjFileM)
Public ReadOnly Property ProjMList As List(Of ProjFileM)
Get
Return m_ProjMList
End Get
End Property
Protected m_sName As String
Public Property sName As String
Get
@@ -60,6 +67,24 @@ Public Class ProdFileM
Return NewProjectFileM
End Function
Public Shared Function CreateProdFileM(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType,
sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean, ProjMList As List(Of ProjFileM)) As ProdFileM
Dim NewProjectFileM As New ProdFileM
NewProjectFileM.m_nProdId = nProdId
NewProjectFileM.m_nProjIdList = nProjIdList
NewProjectFileM.m_dtCreateDate = dtCreateProjDate
NewProjectFileM.m_sName = sName
NewProjectFileM.m_nType = nType
NewProjectFileM.m_sMachine = sMachine
NewProjectFileM.m_sLockedBy = sLockedBy
NewProjectFileM.m_dtLock = dtLock
NewProjectFileM.m_bIsActive = bIsActive
NewProjectFileM.m_bIsProduced = bIsProduced
NewProjectFileM.m_bIsArchived = bIsArchived
NewProjectFileM.m_ProjMList = ProjMList
Return NewProjectFileM
End Function
#End Region ' CONSTRUCTORS
End Class
+119
View File
@@ -0,0 +1,119 @@
Imports EgtWPFLib5
Imports System.Windows
Public Class ProdItem
Inherits VMBase
Public Shared m_delUpdateNameInDb As Action(Of Integer, String)
Public Shared m_delIsModifiedSetUp As Action(Of Boolean)
Protected m_ProdFileVM As ProdFileVM
Public ReadOnly Property ProdFileVM As ProdFileVM
Get
Return m_ProdFileVM
End Get
End Property
Private m_ProjFileList As New List(Of ProjectFileVM)
Public ReadOnly Property ProjFileList As List(Of ProjectFileVM)
Get
Return m_ProjFileList
End Get
End Property
Public ReadOnly Property sProdId As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sProdId, "")
End Get
End Property
Public Overridable Property sName As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "")
End Get
Set(value As String)
If Not IsNothing(m_ProdFileVM) Then
m_delUpdateNameInDb(m_ProdFileVM.nProdId, value)
m_ProdFileVM.sName = value
m_delIsModifiedSetUp(False)
End If
End Set
End Property
Public ReadOnly Property dtCreateDate As Date
Get
Return If(Not IsNothing(m_ProdFileVM), {m_ProdFileVM.dtCreateDate, m_ProjFileList.Min(Function(x) x.dtCreateDate)}.Min(), m_ProjFileList.Min(Function(x) x.dtCreateDate))
End Get
End Property
Public ReadOnly Property sCreateDate As String
Get
Return dtCreateDate.ToString()
End Get
End Property
Public ReadOnly Property sMachine As String
Get
If Not IsNothing(m_ProdFileVM) Then
Return m_ProdFileVM.sMachine
ElseIf Not IsNothing(m_ProjFileList(0)) Then
Return m_ProjFileList(0).sMachine
Else Return ""
End If
End Get
End Property
Public ReadOnly Property bIsArchived As Boolean
Get
If Not IsNothing(m_ProdFileVM) Then
Return m_ProdFileVM.bIsArchived
ElseIf Not IsNothing(m_ProjFileList(0)) Then
Return m_ProjFileList(0).bIsArchived
Else
Return True
End If
End Get
End Property
Public ReadOnly Property Archived_Visibility As Visibility
Get
Return If(bIsArchived, Visibility.Visible, Visibility.Collapsed)
End Get
End Property
Sub New(ProdFileVM As ProdFileVM, ProjFileVM As ProjFileVM)
m_ProdFileVM = ProdFileVM
m_ProjFileList.Add(ProjFileVM)
End Sub
Sub New(ProjFileVM As ProjFileVM)
m_ProjFileList = New List(Of ProjectFileVM)({ProjFileVM})
End Sub
Sub New(ProdFileVM As ProjectFileVM, ProjFileVMList As List(Of ProjectFileVM))
m_ProdFileVM = ProdFileVM
m_ProjFileList = ProjFileVMList
End Sub
Public Shared Function CreateProdItem(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType,
sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean, ProjMList As List(Of ProjFileM)) As ProdItem
Dim NewProdFileM = ProdFileM.CreateProdFileM(nProdId, nProjIdList, dtCreateProjDate, sName, nType, sMachine, sLockedBy, dtLock, bIsActive, bIsProduced, bIsArchived)
Dim NewProdFileVM = New ProdFileVM(NewProdFileM)
Dim NewProjFileVM As IEnumerable(Of ProjectFileVM)
NewProjFileVM = ProjMList.Select(Of ProjFileVM)(Function(j) New ProjFileVM(j)).ToList
Dim NewProdItem = New ProdItem(NewProdFileVM, NewProjFileVM.ToList)
Return NewProdItem
End Function
Public Shared Function CreateProdItem(ProjFileM As ProjFileM) As ProdItem
Dim NewProdItem = New ProdItem(New ProjFileVM(ProjFileM))
Return NewProdItem
End Function
End Class
@@ -2,6 +2,7 @@
using NLog;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using static EgtBEAMWALL.Core.ConstBeam;
@@ -208,11 +209,11 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// <summary>
/// Elenco prod
/// </summary>
/// <param name="numRecord">Num max record da recuperare</param>
/// <param name="NumRecord">Num max record da recuperare</param>
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
/// <returns></returns>
public List<Core.ProdFileM> GetLastDesc(int numRecord, bool OnlyActive, bool ShowArchived = false)
public List<Core.ProdFileM> GetLastDesc(int NumRecord, bool OnlyActive, bool ShowArchived = false)
{
List<Core.ProdFileM> result = new List<Core.ProdFileM>();
//List<ProdModel> dbResult = GetLastDbModelDesc(numRecord);
@@ -220,9 +221,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// se numRecord = 0 --> passo tutti
if (numRecord == 0)
if (NumRecord == 0)
{
numRecord = localDbCtx.ProdList.Count();
NumRecord = localDbCtx.ProdList.Count();
}
// retrieve
dbResult = localDbCtx
@@ -235,7 +236,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
(p, e) => p)
.Distinct()
.OrderByDescending(x => x.ProdId)
.Take(numRecord)
.Take(NumRecord)
.ToList();
}
@@ -247,13 +248,13 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// <summary>
/// Elenco prod
/// </summary>
/// <param name="dtStart">Inizio periodo estrazione</param>
/// <param name="dtEnd">Fine periodo estrazione</param>
/// <param name="numRecord">Num max record da recuperare</param>
/// <param name="DtStart">Inizio periodo estrazione</param>
/// <param name="DtEnd">Fine periodo estrazione</param>
/// <param name="NumRecord">Num max record da recuperare</param>
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
/// <returns></returns>
public List<Core.ProdFileM> GetLastDesc(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive, bool ShowArchived = false)
public List<Core.ProdFileM> GetLastDesc(DateTime DtStart, DateTime DtEnd, int NumRecord, bool OnlyActive, bool ShowArchived = false)
{
List<Core.ProdFileM> result = new List<Core.ProdFileM>();
//List<ProdModel> dbResult = GetLastDbModelDesc(numRecord);
@@ -261,14 +262,14 @@ namespace EgtBEAMWALL.DataLayer.Controllers
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// se numRecord = 0 --> passo tutti
if (numRecord == 0)
if (NumRecord == 0)
{
numRecord = localDbCtx.ProdList.Count();
NumRecord = localDbCtx.ProdList.Count();
}
// retrieve
dbResult = localDbCtx
.ProdList
.Where(x => x.DtCreated >= dtStart && x.DtCreated <= dtEnd && (!x.IsArchived || ShowArchived))
.Where(x => x.DtCreated >= DtStart && x.DtCreated <= DtEnd && (!x.IsArchived || ShowArchived))
// condizione join sui PROJ
.Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive),
p => p.ProdDbId,
@@ -276,7 +277,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
(p, e) => p)
.Distinct()
.OrderByDescending(x => x.ProdId)
.Take(numRecord)
.Take(NumRecord)
.ToList();
}
@@ -285,6 +286,183 @@ namespace EgtBEAMWALL.DataLayer.Controllers
return result;
}
/// <summary>
/// Elenco prod
/// </summary>
/// <param name="NumRecord">Num max record da recuperare</param>
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
/// <returns></returns>
public List<Core.ProdItem> GetLastDescFull(int NumRecord, bool OnlyActive, bool ShowArchived = false)
{
List<Core.ProdItem> result = new List<Core.ProdItem>();
// elenco prod completi
List<ProdModel> dbResultProd = new List<ProdModel>();
// elenco proj "orfani"
List<ProjModel> dbResultProj = new List<ProjModel>();
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// se numRecord = 0 --> passo tutti
if (NumRecord == 0)
{
NumRecord = localDbCtx.ProdList.Count();
}
// recupero PROD + proj relativi
dbResultProd = localDbCtx
.ProdList
.Where(x => (!x.IsArchived || ShowArchived))
//.Include(j => j.)
// condizione join sui PROJ
.Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive),
p => p.ProdDbId,
e => e.ProdDbId,
(p, e) => p)
.Distinct()
.Include(j => j.ProjListNav)
.OrderByDescending(x => x.ProdId)
.Take(NumRecord)
.ToList();
// recupero i proj "orfani"
dbResultProj = localDbCtx
.ProjList
.Where(x => (x.IsActive || !OnlyActive) && x.Prod == null)
.OrderByDescending(x => x.ProjId)
.Take(NumRecord)
.ToList();
}
// conversione
result = dbResultProd.Select(x => coreItemConv(x)).ToList();
var resProj = dbResultProj.Select(x => coreItemConv(x)).ToList();
// sommo i risultati
result.AddRange(resProj);
return result;
}
/// <summary>
/// Elenco prod
/// </summary>
/// <param name="DtStart">Inizio periodo estrazione</param>
/// <param name="DtEnd">Fine periodo estrazione</param>
/// <param name="NumRecord">Num max record da recuperare</param>
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
/// <returns></returns>
public List<Core.ProdItem> GetLastDescFull(DateTime DtStart, DateTime DtEnd, int NumRecord, bool OnlyActive, bool ShowArchived = false)
{
List<Core.ProdItem> result = new List<Core.ProdItem>();
// elenco prod completi
List<ProdModel> dbResultProd = new List<ProdModel>();
// elenco proj "orfani"
List<ProjModel> dbResultProj = new List<ProjModel>();
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// se numRecord = 0 --> passo tutti
if (NumRecord == 0)
{
NumRecord = localDbCtx.ProdList.Count();
}
// retrieve
dbResultProd = localDbCtx
.ProdList
.Where(x => x.DtCreated >= DtStart && x.DtCreated <= DtEnd && (!x.IsArchived || ShowArchived))
// condizione join sui PROJ
.Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive),
p => p.ProdDbId,
e => e.ProdDbId,
(p, e) => p)
.Distinct()
.Include(j => j.ProjListNav)
.OrderByDescending(x => x.ProdId)
.Take(NumRecord)
.ToList();
// recupero i proj "orfani"
dbResultProj = localDbCtx
.ProjList
.Where(x => (x.IsActive || !OnlyActive) && x.Prod == null && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd))
.OrderByDescending(x => x.ProjId)
.Take(NumRecord)
.ToList();
}
// conversione
result = dbResultProd.Select(x => coreItemConv(x)).ToList();
var resProj = dbResultProj.Select(x => coreItemConv(x)).ToList();
// sommo i risultati
result.AddRange(resProj);
return result;
}
/// <summary>
/// Elenco prod
/// </summary>
/// <param name="DtStart">Inizio periodo estrazione</param>
/// <param name="DtEnd">Fine periodo estrazione</param>
/// <param name="DtIsCreation">Ture: usa data creazione / False: usa data export</param>
/// <param name="NumRecord">Num max record da recuperare</param>
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
/// <param name="Machine">Nome Macchina (default vuoto = non usato)</param>
/// <param name="BtlFileName">Nome file BTL (default vuoto = non usato)</param>
/// <param name="ListName">Nome List (default vuoto = non usato)</param>
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
/// <returns></returns>
public List<Core.ProdItem> GetLastDescFull(DateTime DtStart, DateTime DtEnd, bool DtIsCreation, int NumRecord, bool OnlyActive, string Machine = "", string BtlFileName = "", string ListName = "", bool ShowArchived = false)
{
List<Core.ProdItem> result = new List<Core.ProdItem>();
List<ProdModel> dbResultProd = new List<ProdModel>();
// elenco proj "orfani"
List<ProjModel> dbResultProj = new List<ProjModel>();
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// se numRecord = 0 --> passo tutti
if (NumRecord == 0)
{
NumRecord = localDbCtx.ProdList.Count();
}
// retrieve
dbResultProd = localDbCtx
.ProdList
.Where(x => (!x.IsArchived || ShowArchived))
// condizione join sui PROJ
.Join(localDbCtx.ProjList.Where(x =>
(x.IsActive || !OnlyActive)
&& (string.IsNullOrEmpty(Machine) || x.Machine.ToLower().Contains(Machine.ToLower()))
&& (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName.ToLower().Contains( BtlFileName.ToLower()))
&& (string.IsNullOrEmpty(ListName) || x.ListName.ToLower().Contains(ListName.ToLower()))
&& ((DtIsCreation && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) || (!DtIsCreation && (x.DtExported >= DtStart && x.DtExported <= DtEnd)))
),
p => p.ProdDbId,
e => e.ProdDbId,
(p, e) => p)
.Distinct()
.Include(j => j.ProjListNav)
.OrderByDescending(x => x.ProdId)
.Take(NumRecord)
.ToList();
// recupero i proj "orfani"
dbResultProj = localDbCtx
.ProjList
.Where(x =>
(x.IsActive || !OnlyActive)
&& x.Prod == null
&& (string.IsNullOrEmpty(Machine) || x.Machine.ToLower().Contains(Machine.ToLower()))
&& (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName.ToLower().Contains(BtlFileName.ToLower()))
&& (string.IsNullOrEmpty(ListName) || x.ListName.ToLower().Contains(ListName.ToLower()))
&& ((DtIsCreation && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) || (!DtIsCreation && (x.DtExported >= DtStart && x.DtExported <= DtEnd))))
.OrderByDescending(x => x.ProjId)
.Take(NumRecord)
.ToList();
}
// conversione
result = dbResultProd.Select(x => coreItemConv(x)).ToList();
var resProj = dbResultProj.Select(x => coreItemConv(x)).ToList();
// sommo i risultati
result.AddRange(resProj);
return result;
}
/// <summary>
/// Fornisce nuovo indice VUOTO da usare (allocando sul DB)
/// </summary>
@@ -910,6 +1088,29 @@ namespace EgtBEAMWALL.DataLayer.Controllers
protected Core.ProdFileM coreConv(ProdModel currProd)
{
Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived);
//Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, currProd.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList());
return answ;
}
/// <summary>
/// Helper conversione modelli verso prodItem
/// </summary>
/// <param name="currProd"></param>
/// <returns></returns>
protected Core.ProdItem coreItemConv(ProdModel currProd)
{
Core.ProdItem answ = Core.ProdItem.CreateProdItem(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, currProd.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList());
return answ;
}
/// <summary>
/// Helper conversione modelli verso prodItem da singolo proj
/// </summary>
/// <param name="currProd"></param>
/// <returns></returns>
protected Core.ProdItem coreItemConv(ProjModel currProj)
{
Core.ProdItem answ = Core.ProdItem.CreateProdItem(Core.ProjFileM.CreateProjFileM(currProj.ProjId, 0, currProj.DtCreated, currProj.DtExported, currProj.ListName, currProj.BTLFileName, currProj.ProjDescription, currProj.IsNew, currProj.Locked, currProj.PType, currProj.Machine, currProj.IsActive, currProj.IsActive));
return answ;
}
@@ -33,6 +33,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
var dbResult = localDbCtx
.ProjList
.Where(x => x.BTLFileName == BTLFileName)
//valutare se usare solo attivi...
//.Where(x => x.BTLFileName == BTLFileName && x.IsActive == true)
.FirstOrDefault();
//se avesse trovato-- > riporto id...
@@ -581,7 +583,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// Update record su DB x elenco BTLParts
/// </summary>
/// <param name="ProjId"></param>
/// <param name="newBTLFileName"></param>
/// <param name="BtlPartList"></param>
/// <returns></returns>
public ProjModel UpdateBtlParts(int ProjId, List<Core.BTLPartM> BtlPartList)
{
@@ -19,6 +19,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
{
#region Public Properties
public ProdModel()
{
ProjListNav = new HashSet<ProjModel>();
}
/// <summary>
/// Chiave univoca DB
/// </summary>
@@ -98,6 +103,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
[Column("IsArchived")]
public bool IsArchived { get; set; } = false;
/// <summary>
/// Collezione oggetti Proj associati (almeno 1 by design)
/// </summary>
public virtual ICollection<ProjModel> ProjListNav { get; set; }
#endregion Public Properties
}
}
@@ -11,13 +11,14 @@ Public Class OpenProjectFileDialogVM
Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
m_ProjectType = ProjectType
m_GoToProd = GoToProd
' carico colonne
LoadColumns(m_ProjectType)
NotifyPropertyChanged(NameOf(FilterTypeList))
m_SelFilterType = m_FilterTypeList(0)
' carico lista progetti
If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then
RefreshProjectList(GoToProd)
RefreshProjectList()
Else
m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList)
NotifyPropertyChanged(NameOf(ProjectList))
@@ -26,7 +27,7 @@ Public Class OpenProjectFileDialogVM
m_ProjectList_View.Filter = AddressOf ProjectFilter
End Function
Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False)
Public Overrides Sub RefreshProjectList()
m_ProjectList.Clear()
' calcolo periodo e righe
Dim dtStart As DateTime
+6 -5
View File
@@ -1,16 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<!--<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.EntityFramework" />-->
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
</provider>
</providers>
</entityFramework>
<connectionStrings>
<add name="DefaultConnection" connectionString="server=localhost;port=3306;User Id=EgtUser;password=viacremasca;Persist Security Info=True;database=EgtBwDb;SslMode=none" providerName="MySql.Data.MySqlClient" />
@@ -49,6 +46,10 @@
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.data>
@@ -189,6 +189,7 @@ Public Class BTLPartManagerVM
End Sub
Public Sub NewRawPart(bLast As Boolean)
If IsNothing(ProjectManagerVM.CurrProd) Then Return
If IsNothing(ProjectManagerVM.CurrProd) Then Return
'Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.SelBTLPart
Dim SelParts As List(Of BTLPartVM) = Map.refProjectVM.BTLStructureVM.SelBTLParts.ToList()
@@ -518,7 +519,7 @@ Public Class BTLPartManagerVM
Return CurrSParam
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
' creo sParam
If Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) Then CurrSParam = New SParam(Map.refProjectVM.BTLStructureVM.SelBTLPart.Section, dRawW, dRawL, nQuantity, False)
If Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLParts(0)) Then CurrSParam = New SParam(Map.refProjectVM.BTLStructureVM.SelBTLParts(0).Section, dRawW, dRawL, nQuantity, False)
Dim sW As String = String.Empty
Dim sL As String = String.Empty
sW = LenToString(CurrSParam.dW, 3)
@@ -611,6 +612,7 @@ Public Class BTLPartManagerVM
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub AddToRawPart()
If IsNothing(ProjectManagerVM.CurrProd) Then Return
If IsNothing(ProjectManagerVM.CurrProd) Then Return
Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.SelBTLParts(0)
Dim SelParts As List(Of BTLPartVM) = Map.refProjectVM.BTLStructureVM.SelBTLParts.ToList()
@@ -907,6 +909,7 @@ Public Class BTLPartManagerVM
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub CopyPart()
If IsNothing(ProjectManagerVM.CurrProj) Then Return
If IsNothing(ProjectManagerVM.CurrProj) Then Return
Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.SelBTLPart
If IsNothing(SelPart) Then Return
@@ -938,6 +941,7 @@ Public Class BTLPartManagerVM
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub AddPart(ByVal param As Object)
If IsNothing(ProjectManagerVM.CurrProj) Then Return
If IsNothing(ProjectManagerVM.CurrProj) Then Return
' apro finestra di definizione nuovo part
Dim AddPartWndVM As New AddPartWndVM()
@@ -947,6 +951,7 @@ Public Class BTLPartManagerVM
Dim nNewPartId As Integer = EgtBeamCreatePart()
' scrivo info proj
EgtSetInfo(nNewPartId, BTL_PRT_PROJ, ProjectManagerVM.CurrProj.nProjId)
EgtSetInfo(nNewPartId, BTL_PRT_PROJ, ProjectManagerVM.CurrProj.nProjId)
EgtBeamSetPartProdNbr(AddPartWndVM.nPDN)
If Not IsNothing(AddPartWndVM.sNAM) Then EgtBeamSetPartName(AddPartWndVM.sNAM)
EgtBeamSetPartCount(AddPartWndVM.nCNT)
@@ -1001,12 +1006,7 @@ Public Class BTLPartManagerVM
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub RemovePartCmd()
'If IsNothing(ProjectManagerVM.CurrProj) Then Return
If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso IsNothing(Map.refProjManagerVM) Then
Return
ElseIf Map.refMainMenuVM.SelPage = Pages.ONLYPRODPAGE AndAlso IsNothing(Map.refOnlyProdManagerVM) Then
Return
End If
If IsNothing(ProjectManagerVM.CurrProj) Then Return
If Map.refProjectVM.BTLStructureVM.SelBTLParts.Count > 0 Then
Dim CurrSelBTLParts As List(Of BTLPartVM) = Map.refProjectVM.BTLStructureVM.SelBTLParts.ToList()
For RemoveIndex = CurrSelBTLParts.Count - 1 To 0 Step -1
@@ -1115,6 +1115,7 @@ Public Class BTLPartManagerVM
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub BackRotation()
If IsNothing(ProjectManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) Then Return
If IsNothing(ProjectManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) Then Return
' salvo sezione impostata
Dim CurrSection As SectionXMaterial = Map.refProjectVM.BTLStructureVM.SelSection
@@ -1156,6 +1157,7 @@ Public Class BTLPartManagerVM
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub ForwardRotation()
If IsNothing(ProjectManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) Then Return
If IsNothing(ProjectManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) Then Return
' salvo sezione impostata
Dim CurrSection As SectionXMaterial = Map.refProjectVM.BTLStructureVM.SelSection
@@ -1,7 +1,8 @@
<DockPanel x:Class="ConfigurationPageV"
<DockPanel x:Class="ConfigurationPageV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtBEAMWALLCORE="clr-namespace:EgtBEAMWALL.Core;assembly=EgtBEAMWALL.Core">
xmlns:EgtBEAMWALLCORE="clr-namespace:EgtBEAMWALL.Core;assembly=EgtBEAMWALL.Core"
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer">
<Grid>
<Grid.ColumnDefinitions>
@@ -48,7 +49,7 @@
<EgtBEAMWALLCORE:QParameter_ConfigurationPageV/>
</TabItem.Content>
</TabItem>
<TabItem >
<TabItem>
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Machine_Msg}"
@@ -65,6 +66,25 @@
<EgtBEAMWALLCORE:Machine_ConfigurationPageV/>
</TabItem.Content>
</TabItem>
<TabItem>
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding PDFEditor_Msg}"
Style="{StaticResource OptionTextBlock}"/>
<Button Command="{Binding SaveCommand}"
ToolTip="{Binding SaveToolTip}"
Visibility="{Binding PDFEditor_Visibility}"
Style="{StaticResource OptionPanel_Button}">
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
</Button>
</StackPanel>
</TabItem.Header>
<TabItem.Content>
<EgtBEAMWALL:PDFEditorV/>
</TabItem.Content>
</TabItem>
</TabControl>
<!--<Button Command="{Binding SaveCommand}"
@@ -3,6 +3,7 @@ Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Imports EgtBEAMWALL.Core
Imports System.Linq.Expressions
Imports MS.Internal
Imports Ionic.Zip
@@ -13,6 +14,7 @@ Public Class ConfigurationPageVM
GENERAL = 0
QPARAMETERS = 1
MACHINE = 2
PDFEDITOR = 3
End Enum
Private m_QParametersModified As Boolean = False
@@ -36,18 +38,27 @@ Public Class ConfigurationPageVM
m_bGeneral_Visibility = Visibility.Visible
m_bParameterQ_Visibility = Visibility.Collapsed
m_bMachine_Visibility = Visibility.Collapsed
m_bPDFEditor_Visibility = Visibility.Collapsed
ElseIf m_SelConfigSubPage = ConfigSubPages.QPARAMETERS Then
m_bParameterQ_Visibility = Visibility.Visible
m_bGeneral_Visibility = Visibility.Collapsed
m_bMachine_Visibility = Visibility.Collapsed
m_bPDFEditor_Visibility = Visibility.Collapsed
ElseIf m_SelConfigSubPage = ConfigSubPages.MACHINE Then
m_bMachine_Visibility = Visibility.Visible
m_bGeneral_Visibility = Visibility.Collapsed
m_bParameterQ_Visibility = Visibility.Collapsed
m_bPDFEditor_Visibility = Visibility.Collapsed
ElseIf m_SelConfigSubPage = ConfigSubPages.PDFEDITOR Then
m_bPDFEditor_Visibility = Visibility.Visible
m_bMachine_Visibility = Visibility.Collapsed
m_bGeneral_Visibility = Visibility.Collapsed
m_bParameterQ_Visibility = Visibility.Collapsed
End If
NotifyPropertyChanged(NameOf(General_Visibility))
NotifyPropertyChanged(NameOf(ParameterQ_Visibility))
NotifyPropertyChanged(NameOf(Machine_Visibility))
NotifyPropertyChanged(NameOf(PDFEditor_Visibility))
End Set
End Property
@@ -262,6 +273,17 @@ Public Class ConfigurationPageVM
End Set
End Property
Private m_bPDFEditor_Visibility As Visibility = Visibility.Collapsed
Public Property PDFEditor_Visibility As Visibility
Get
Return m_bPDFEditor_Visibility
End Get
Set(value As Visibility)
m_bPDFEditor_Visibility = value
NotifyPropertyChanged(NameOf(PDFEditor_Visibility))
End Set
End Property
' Definizione comandi
Private m_cmdSave As ICommand
Private m_cmdChooseExternalBackupFolderPath As ICommand
@@ -269,7 +291,6 @@ Public Class ConfigurationPageVM
Private m_cmdRestore As ICommand
#Region "Messages"
Public ReadOnly Property L_Msg As String
Get
Return EgtMsg(61803)
@@ -288,6 +309,12 @@ Public Class ConfigurationPageVM
End Get
End Property
Public ReadOnly Property PND_Msg As String
Get
Return EgtMsg(6180)
End Get
End Property
Public ReadOnly Property Type_Msg As String
Get
Return EgtMsg(61850)
@@ -317,36 +344,43 @@ Public Class ConfigurationPageVM
Return EgtMsg(61616)
End Get
End Property
Public ReadOnly Property Max_Msg As String
Get
Return EgtMsg(61617)
End Get
End Property
Public ReadOnly Property CurrentLanguage_Msg As String
Get
Return EgtMsg(6501)
End Get
End Property
Public ReadOnly Property LanguageAdvert_Msg As String
Get
Return EgtMsg(6502)
End Get
End Property
Public ReadOnly Property MMUnits_Msg As String
Get
Return EgtMsg(6540)
End Get
End Property
Public ReadOnly Property Nesting_Msg As String
Get
Return EgtMsg(61829)
End Get
End Property
Public ReadOnly Property SectionTime_Msg As String
Get
Return EgtMsg(61806)
End Get
End Property
Public ReadOnly Property PartTime_Msg As String
Get
Return EgtMsg(61807)
@@ -419,6 +453,12 @@ Public Class ConfigurationPageVM
End Get
End Property
Public ReadOnly Property PDFEditor_Msg As String
Get
Return EgtMsg(62538)
End Get
End Property
#End Region ' Messages
#Region "Constructor"
@@ -1,5 +1,4 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -138,12 +137,6 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="BouncyCastle.Crypto, Version=1.9.0.0, Culture=neutral, PublicKeyToken=0e99375e54769942, processorArchitecture=MSIL">
<HintPath>..\packages\Portable.BouncyCastle.1.9.0\lib\net40\BouncyCastle.Crypto.dll</HintPath>
</Reference>
<Reference Include="DotNetZip, Version=1.16.0.0, Culture=neutral, PublicKeyToken=6583c7c814667745, processorArchitecture=MSIL">
<HintPath>..\packages\DotNetZip.1.16.0\lib\net40\DotNetZip.dll</HintPath>
</Reference>
<Reference Include="EgtUILib, Version=2.4.3.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\ExtLibs\EgtUILib.dll</HintPath>
@@ -152,55 +145,7 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\ExtLibs\EgtWPFLib5.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf, Version=3.21.9.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Protobuf.3.21.9\lib\net45\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4, Version=1.3.5.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Compression.LZ4.1.3.5\lib\net462\K4os.Compression.LZ4.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4.Streams, Version=1.3.5.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Compression.LZ4.Streams.1.3.5\lib\net462\K4os.Compression.LZ4.Streams.dll</HintPath>
</Reference>
<Reference Include="K4os.Hash.xxHash, Version=1.0.8.0, Culture=neutral, PublicKeyToken=32cd54395057cec3, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Hash.xxHash.1.0.8\lib\net462\K4os.Hash.xxHash.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="MigraDoc.DocumentObjectModel-wpf, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
<HintPath>..\packages\PDFsharp-MigraDoc-wpf.1.50.5147\lib\net30\MigraDoc.DocumentObjectModel-wpf.dll</HintPath>
</Reference>
<Reference Include="MigraDoc.Rendering-wpf, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
<HintPath>..\packages\PDFsharp-MigraDoc-wpf.1.50.5147\lib\net30\MigraDoc.Rendering-wpf.dll</HintPath>
</Reference>
<Reference Include="MigraDoc.RtfRendering-wpf, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
<HintPath>..\packages\PDFsharp-MigraDoc-wpf.1.50.5147\lib\net30\MigraDoc.RtfRendering-wpf.dll</HintPath>
</Reference>
<Reference Include="MySql.Data, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.21\lib\net452\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="MySql.Data.EntityFramework, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.EntityFramework.8.0.21\lib\net452\MySql.Data.EntityFramework.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.5.0.1\lib\net46\NLog.dll</HintPath>
</Reference>
<Reference Include="PdfSharp-wpf, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
<HintPath>..\packages\PDFsharp-MigraDoc-wpf.1.50.5147\lib\net30\PdfSharp-wpf.dll</HintPath>
</Reference>
<Reference Include="PdfSharp.Charting-wpf, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
<HintPath>..\packages\PDFsharp-MigraDoc-wpf.1.50.5147\lib\net30\PdfSharp.Charting-wpf.dll</HintPath>
</Reference>
<Reference Include="Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106, processorArchitecture=MSIL">
<HintPath>..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
@@ -209,24 +154,9 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Drawing.Design" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Pipelines, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Pipelines.5.0.2\lib\net461\System.IO.Pipelines.dll</HintPath>
</Reference>
<Reference Include="System.Management" />
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Security" />
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Transactions" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
@@ -237,16 +167,10 @@
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="Ubiety.Dns.Core, Version=2.2.1.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.21\lib\net452\Ubiety.Dns.Core.dll</HintPath>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="WindowsFormsIntegration" />
<Reference Include="Zstandard.Net, Version=1.1.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.21\lib\net452\Zstandard.Net.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="Application.xaml">
@@ -275,6 +199,7 @@
<Compile Include="PartInRawPartManager\PartInRawPartManagerWndV.xaml.vb">
<DependentUpon>PartInRawPartManagerWndV.xaml</DependentUpon>
</Compile>
<Compile Include="PdfViewer\PDFViewerVM.vb" />
<Compile Include="RawPartManager\RawPartManagerWndV.xaml.vb">
<DependentUpon>RawPartManagerWndV.xaml</DependentUpon>
</Compile>
@@ -380,6 +305,9 @@
</Compile>
<Compile Include="ProdProjManager\ProdProjManagerVM.vb" />
<Compile Include="ProjectManager\ProjectManagerVM.vb" />
<Compile Include="PdfViewer\PdfViewer.xaml.vb">
<DependentUpon>PdfViewer.xaml</DependentUpon>
</Compile>
<Compile Include="ProjectTypeWnd\ProjectTypeWndV.xaml.vb">
<DependentUpon>ProjectTypeWndV.xaml</DependentUpon>
</Compile>
@@ -411,6 +339,10 @@
<Compile Include="Statistics\OptimizerStatisticsV.xaml.vb">
<DependentUpon>OptimizerStatisticsV.xaml</DependentUpon>
</Compile>
<Compile Include="Statistics\PDFEditorV.xaml.vb">
<DependentUpon>PDFEditorV.xaml</DependentUpon>
</Compile>
<Compile Include="Statistics\PDFEditorVM.vb" />
<Compile Include="Statistics\PDFHelper.vb" />
<Compile Include="Statistics\StatisticsV.xaml.vb">
<DependentUpon>StatisticsV.xaml</DependentUpon>
@@ -436,6 +368,7 @@
<Compile Include="Utility\LuaExec.vb" />
<Compile Include="Utility\PartsObservableCollection.vb" />
<Compile Include="Utility\SectionXMaterialToBeAdded.vb" />
<Compile Include="Utility\Statistic_Messages.vb" />
<Compile Include="Utility\TextBlockUtils.vb" />
<Compile Include="Utility\TreeViewItemBase.vb" />
<Compile Include="WarehouseWnd\WarehouseHelper.vb" />
@@ -544,10 +477,34 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="OnlyProdProject\OnlyProdProjectV.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="OptimizePanel\OnlyProdOptimizePanelV.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="PartInRawPartManager\PartInRawPartManagerV.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="PartInRawPartManager\PartInRawPartManagerWndV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="PartParametersWnd\PartParametersWndV.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="PdfViewer\PdfViewer.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ProdProjManager\ProdProjManagerV.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="RawPartManager\RawPartManagerWndV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -640,26 +597,6 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="OnlyProdProject\OnlyProdProjectV.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="OptimizePanel\OnlyProdOptimizePanelV.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="PartInRawPartManager\PartInRawPartManagerV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="PartParametersWnd\PartParametersWndV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProdProjManager\ProdProjManagerV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProjectTypeWnd\ProjectTypeWndV.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -692,6 +629,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Statistics\PDFEditorV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Statistics\StatisticsV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -914,7 +855,6 @@
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\EgtBEAMWALL.ico" />
@@ -1133,9 +1073,56 @@
<ItemGroup>
<Resource Include="Resources\ProjectManager\AddProj.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\PDFEditor\MoveUp.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\PDFEditor\MoveDown.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\PDFEditor\PrintPDF.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\PDFEditor\Delete.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\OpenProjectFileDialog\Archived.png" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="BouncyCastle">
<Version>1.8.5</Version>
</PackageReference>
<PackageReference Include="DotNetZip">
<Version>1.16.0</Version>
</PackageReference>
<PackageReference Include="EntityFramework">
<Version>6.4.4</Version>
</PackageReference>
<PackageReference Include="Google.Protobuf">
<Version>3.21.9</Version>
</PackageReference>
<PackageReference Include="K4os.Compression.LZ4.Streams">
<Version>1.3.5</Version>
</PackageReference>
<PackageReference Include="Microsoft.Windows.SDK.Contracts">
<Version>10.0.22621.2428</Version>
</PackageReference>
<PackageReference Include="MySql.Data.EntityFramework">
<Version>8.0.21</Version>
</PackageReference>
<PackageReference Include="NLog">
<Version>5.0.1</Version>
</PackageReference>
<PackageReference Include="PDFsharp-MigraDoc-wpf">
<Version>1.50.5147</Version>
</PackageReference>
<PackageReference Include="Portable.BouncyCastle">
<Version>1.9.0</Version>
</PackageReference>
<PackageReference Include="System.IO.Pipelines">
<Version>6.0.0</Version>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtBEAMWALL\EgtBEAMWALL.ViewerOptimizerR32.exe
@@ -1143,12 +1130,4 @@ IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Debug" copy $(TargetPa
IF "$(PlatformName)"=="x64" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtBEAMWALL\EgtBEAMWALL.ViewerOptimizerR64.exe
IF "$(PlatformName)"=="x64" IF "$(ConfigurationName)" == "Debug" copy $(TargetPath) c:\EgtProg\EgtBEAMWALL\EgtBEAMWALL.ViewerOptimizerD64.exe</PostBuildEvent>
</PropertyGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
</Target>
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
</Project>
@@ -208,6 +208,15 @@ Public Class PartVM
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
vtAxes = Vector3d.X_AX
End If
If EgtRotate(nPartId, b3Box.Center, vtAxes, 180, GDB_RT.GLOB) Then
Dim vtAxes As Vector3d
' se travi ruoto attorno all'asse Z
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.BEAM Then
vtAxes = Vector3d.Z_AX
' se pareti ruoto attorno all'asse X
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
vtAxes = Vector3d.X_AX
End If
If EgtRotate(nPartId, b3Box.Center, vtAxes, 180, GDB_RT.GLOB) Then
m_PartM.nFLIP = If(value, 180, 0)
EgtSetInfo(nPartId, MGR_PRT_FLIP, If(value, 180, 0))
@@ -241,6 +250,33 @@ Public Class PartVM
End If
End If
End If
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
' recupero box del pezzo
Dim b3Part As New BBox3d
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, b3Part)
' calcolo distanza tra i box
Dim vtDeltaBox As Vector3d = b3Box.Min - b3Part.Min
' reinserisco il pezzo nel grezzo
EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId)
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
' elimino vecchio grezzo ed eseguo script creazione nuovo
DeleteOldRaw()
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
EgtOutLog("Fallita creazione barra nell'ExecBeam in bFlip")
' elimino vecchio grezzo ed eseguo script creazione nuovo
DeleteOldRaw()
If EgtRotate(nPartId, b3Box.Center, vtAxes, 180, GDB_RT.GLOB) Then
m_PartM.nFLIP = 180
EgtSetInfo(nPartId, MGR_PRT_FLIP, 180)
Else
NotifyPropertyChanged(NameOf(m_PartM.nFLIP))
End If
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
EgtOutLog("Fallita esecuzione ExecBeam. ERRORE")
End If
End If
End If
' lo riseleziono
EgtSelectObj(nPartId)
' resetto validazione del pezzo
@@ -435,6 +471,20 @@ Public Class PartVM
End Select
' reinserisco il pezzo nel grezzo
EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId)
End If
Case MCH_CR.TR
'vtDeltaBox = b3Box.Max - b3Part.Max
dTempPosX = dTempPosX - dL + dW
dTempPosY = dTempPosY - dW + dL
Case MCH_CR.BR
'vtDeltaBox = New Vector3d(b3Box.Max.x - b3Part.Max.x, b3Box.Min.y - b3Part.Min.y, 0)
dTempPosX = dTempPosX - dL + dW
End Select
Case Else
' non cambio nulla
End Select
' reinserisco il pezzo nel grezzo
EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId)
End If
' lo riseleziono
EgtSelectObj(nPartId)
@@ -22,6 +22,7 @@ Public Class NewOpenProjectFileDialogVM
Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
m_ProjectType = ProjectType
ProdItem.m_delUpdateNameInDb = AddressOf DbControllers.m_ProdController.UpdateDescription
NotifyPropertyChanged(NameOf(FilterTypeList))
m_SelFilterType = m_FilterTypeList(0)
@@ -250,33 +251,3 @@ Public Class NewOpenProjectFileDialogVM
#End Region ' METHODS
End Class
Public Class ProdItem
Inherits Core.ProdItem
Public Overrides Property sName As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "")
End Get
Set(value As String)
If Not IsNothing(m_ProdFileVM) Then
DbControllers.m_ProdController.UpdateDescription(m_ProdFileVM.nProdId, value)
m_ProdFileVM.sName = value
m_delIsModifiedSetUp(False)
End If
End Set
End Property
Sub New(ProdFileVM As ProdFileVM, ProjFileVM As ProjFileVM)
MyBase.New(ProdFileVM, ProjFileVM)
End Sub
Sub New(ProjFileVM As ProjFileVM)
MyBase.New(ProjFileVM)
End Sub
Sub New(ProdFileVM As ProjectFileVM, ProjFileVMList As List(Of ProjectFileVM))
MyBase.New(ProdFileVM, ProjFileVMList)
End Sub
End Class
@@ -12,6 +12,7 @@ Public Class OpenProjectFileDialogVM
Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
m_ProjectType = ProjectType
m_GoToProd = GoToProd
' carico colonne
LoadColumns(ProjectType)
NotifyPropertyChanged(NameOf(FilterTypeList))
@@ -19,7 +20,7 @@ Public Class OpenProjectFileDialogVM
' carico lista progetti
If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then
SetFixedProjectList(False)
RefreshProjectList(GoToProd)
RefreshProjectList()
Else
SetFixedProjectList(True)
m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList)
@@ -29,7 +30,7 @@ Public Class OpenProjectFileDialogVM
m_ProjectList_View.Filter = AddressOf ProjectFilter
End Function
Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False)
Public Overrides Sub RefreshProjectList()
m_ProjectList.Clear()
' calcolo periodo e righe
Dim dtStart As DateTime
@@ -66,22 +67,7 @@ Public Class OpenProjectFileDialogVM
Else
DbProjectList = DbControllers.m_ProjController.GetLastByExpDesc(dtStart, dtEnd, nRowQuantity, False)
End If
For Each Project In DbProjectList
' recupero path per verificare esista
If IsNothing(Project.nProjId) OrElse Project.nProjId = 0 Then Continue For
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProjsDir & "\" & Project.nProjId.ToString("0000") & "\" & Project.nProjId.ToString("0000") & ".nge"
If File.Exists(sPath) Then
m_ProjectList.Add(New ProjFileVM(Project))
Else
' CheckMe impostata come cancellazione FISICA dal DB...
DbControllers.m_ProjController.DeleteProj(Project.nProjId, False)
EgtOutLog("Found project on Db without the folder and erased it! Proj number " & Project.nProjId.ToString("0000"))
End If
Next
ElseIf m_ProjectType = ProjectType.PROD Then
Dim DbProjectList As New List(Of ProdFileM)
DbProjectList = DbControllers.m_ProdController.GetLastDesc(dtStart, dtEnd, nRowQuantity, True)
If GoToProd Then
If m_GoToProd Then
For Each Project In DbProjectList
' recupero path per verificare esista
If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For
@@ -89,7 +75,7 @@ Public Class OpenProjectFileDialogVM
If Project.sMachine = ProjectManagerVM.CurrProj.sMachine AndAlso
Project.nType = ProjectManagerVM.CurrProj.nType Then
If File.Exists(sPath) Then
m_ProjectList.Add(New ProdFileVM(Project))
m_ProjectList.Add(New ProjFileVM(Project))
Else
DbControllers.m_ProdController.DeleteProd(Project.nProdId, True)
EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000"))
@@ -99,16 +85,31 @@ Public Class OpenProjectFileDialogVM
Else
For Each Project In DbProjectList
' recupero path per verificare esista
If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProdsDir & "\" & Project.nProdId.ToString("0000") & "\" & Project.nProdId.ToString("0000") & ".nge"
If IsNothing(Project.nProjId) OrElse Project.nProjId = 0 Then Continue For
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProjsDir & "\" & Project.nProjId.ToString("0000") & "\" & Project.nProjId.ToString("0000") & ".nge"
If File.Exists(sPath) Then
m_ProjectList.Add(New ProdFileVM(Project))
m_ProjectList.Add(New ProjFileVM(Project))
Else
DbControllers.m_ProdController.DeleteProd(Project.nProdId, True)
EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000"))
' CheckMe impostata come cancellazione FISICA dal DB...
DbControllers.m_ProjController.DeleteProj(Project.nProjId, False)
EgtOutLog("Found project on Db without the folder and erased it! Proj number " & Project.nProjId.ToString("0000"))
End If
Next
End If
ElseIf m_ProjectType = ProjectType.PROD Then
Dim DbProjectList As New List(Of ProdFileM)
DbProjectList = DbControllers.m_ProdController.GetLastDesc(dtStart, dtEnd, nRowQuantity, True)
For Each Project In DbProjectList
' recupero path per verificare esista
If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProdsDir & "\" & Project.nProdId.ToString("0000") & "\" & Project.nProdId.ToString("0000") & ".nge"
If File.Exists(sPath) Then
m_ProjectList.Add(New ProdFileVM(Project))
Else
DbControllers.m_ProdController.DeleteProd(Project.nProdId, True)
EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000"))
End If
Next
End If
End Sub
@@ -0,0 +1,101 @@
Imports System.Threading.Tasks
Imports EgtWPFLib5
Imports Windows.Storage
Imports System.IO
Imports Windows.Data.Pdf
Imports Windows.Storage.Streams
Public Class PDFViewerVM
Inherits VMBase
#Region "FIELDS & PROPERTIES"
Private m_sPdfPath As String
Public Property PdfPath As String
Get
Return m_sPdfPath
End Get
Set(value As String)
m_sPdfPath = value
If Not String.IsNullOrEmpty(m_sPdfPath) Then
Dim path = System.IO.Path.GetFullPath(m_sPdfPath)
StorageFile.GetFileFromPathAsync(path).AsTask().ContinueWith(Function(t) PdfDocument.LoadFromFileAsync(t.Result).AsTask()).Unwrap().ContinueWith(Function(t2) PdfToImages(t2.Result), TaskScheduler.FromCurrentSynchronizationContext())
End If
NotifyPropertyChanged(NameOf(PdfPath))
End Set
End Property
Private Shared m_Items As List(Of Image)
Public Shared ReadOnly Property Items As List(Of Image)
Get
Return m_Items
End Get
End Property
'Public Shared ReadOnly PdfPathProperty As DependencyProperty = DependencyProperty.Register("PdfPath",
' GetType(String),
' GetType(PDFViewerVM))
'Private Shared Sub OnPdfPathChanged(d As DependencyObject, e As DependencyPropertyChangedEventArgs)
' 'Dim pdfDrawer As PdfViewer = CType(d, PdfViewer)
' If Not String.IsNullOrEmpty(PdfPath) Then
' Dim path = System.IO.Path.GetFullPath(PdfPath)
' StorageFile.GetFileFromPathAsync(path).AsTask().ContinueWith(Function(t) PdfDocument.LoadFromFileAsync(t.Result).AsTask()).Unwrap().ContinueWith(Function(t2) PdfToImages(pdfDrawer, t2.Result), TaskScheduler.FromCurrentSynchronizationContext())
' End If
'End Sub
#End Region ' Field & Properties
Sub New()
End Sub
#Region "METHODS"
''' <summary>
''' Funzione che trasforma le pagine del pdf in immagine
''' </summary>
''' <param name="pdfDoc">Singola pagina del PDf</param>
''' <returns></returns>
Private Shared Async Function PdfToImages(pdfDoc As PdfDocument) As Task
'Dim items As ItemCollection = pdfViewer.PagesContainer.Items
Items.Clear()
If IsNothing(pdfDoc) Then Return
For i As Integer = 0 To pdfDoc.PageCount - 1
Using page As PdfPage = pdfDoc.GetPage(i)
Dim bitmap As BitmapImage = Await PageToBitmapAsync(page)
Dim image As New Image With {
.Source = bitmap,
.HorizontalAlignment = HorizontalAlignment.Center,
.Width = bitmap.Width,
.Height = bitmap.Height
}
Items.Add(image)
End Using
Next
End Function
''' <summary>
''' Funzione che trasforma la singola pagina del PDF in bitmap
''' </summary>
''' <param name="page">Singola pagina del PDF che verrà trasformata in bitmap</param>
''' <returns></returns>
Private Shared Async Function PageToBitmapAsync(page As PdfPage) As Task(Of BitmapImage)
Dim image As New BitmapImage()
Using stream = New InMemoryRandomAccessStream()
Await page.RenderToStreamAsync(stream)
image.BeginInit()
image.CacheOption = BitmapCacheOption.OnLoad
image.StreamSource = stream.AsStream()
image.EndInit()
End Using
Return image
End Function
#End Region ' Methods
End Class
@@ -0,0 +1,9 @@
<UserControl x:Class="PdfViewer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ScrollViewer PanningMode="Both"
Background="DarkGray">
<!--<ItemsControl ItemsSource="{Binding Items}"/>-->
<ItemsControl x:Name="PagesContainer"/>
</ScrollViewer>
</UserControl>
@@ -0,0 +1,143 @@
Imports System.IO
Imports System.Threading.Tasks
Imports Windows.Data.Pdf
Imports Windows.Storage
Imports Windows.Storage.Streams
Partial Public Class PdfViewer
Inherits UserControl
'Public Property PdfPath As String
' Get
' Return CStr(GetValue(PdfPathProperty))
' End Get
' Set(value As String)
' SetValue(PdfPathProperty, value)
' End Set
'End Property
'Private Shared m_Items As New List(Of Image)
'Public Shared ReadOnly Property Items As List(Of Image)
' Get
' Return m_Items
' End Get
'End Property
Public Property PdfPath As String
Get
Return CStr(GetValue(PdfPathProperty))
End Get
Set(value As String)
SetValue(PdfPathProperty, value)
End Set
End Property
'Public Shared ReadOnly PdfPathProperty As DependencyProperty = DependencyProperty.Register("PdfPath",
' GetType(String),
' GetType(PdfViewer),
' New FrameworkPropertyMetadata(String.Empty, New PropertyChangedCallback(AddressOf OnPdfPathChanged)))
Public Shared ReadOnly PdfPathProperty As DependencyProperty = DependencyProperty.Register("PdfPath",
GetType(String),
GetType(PdfViewer),
New PropertyMetadata(Nothing, propertyChangedCallback:=AddressOf OnPdfPathChanged))
Private Shared Sub OnPdfPathChanged(d As DependencyObject, e As DependencyPropertyChangedEventArgs)
Dim pdfDrawer As PdfViewer = CType(d, PdfViewer)
If Not String.IsNullOrEmpty(pdfDrawer.PdfPath) Then
Dim path = System.IO.Path.GetFullPath(pdfDrawer.PdfPath)
StorageFile.GetFileFromPathAsync(path).AsTask().ContinueWith(Function(t) PdfDocument.LoadFromFileAsync(t.Result).AsTask()).Unwrap().ContinueWith(Function(t2) PdfToImages(pdfDrawer, t2.Result), TaskScheduler.FromCurrentSynchronizationContext())
End If
End Sub
'Private Shared Sub OnPdfPathChanged(d As DependencyObject, e As DependencyPropertyChangedEventArgs)
' Dim pdfDrawer As PdfViewer = CType(d, PdfViewer)
' If Not String.IsNullOrEmpty(pdfDrawer.PdfPath) Then
' Dim path = System.IO.Path.GetFullPath(pdfDrawer.PdfPath)
' StorageFile.GetFileFromPathAsync(path).AsTask().ContinueWith(Function(t) PdfDocument.LoadFromFileAsync(t.Result).AsTask()).Unwrap().ContinueWith(Function(t2) PdfToImages(t2.Result), TaskScheduler.FromCurrentSynchronizationContext())
' End If
'End Sub
Sub New()
InitializeComponent()
End Sub
'''' <summary>
'''' Funzione che trasforma le pagine del pdf in immagine
'''' </summary>
'''' <param name="pdfDoc">Singola pagina del PDf</param>
'''' <returns></returns>
'Private Shared Async Function PdfToImages(pdfDoc As PdfDocument) As Task
' 'Dim items As ItemCollection = pdfViewer.PagesContainer.Items
' Items.Clear()
' If IsNothing(pdfDoc) Then Return
' For i As Integer = 0 To pdfDoc.PageCount - 1
' Using page As PdfPage = pdfDoc.GetPage(i)
' Dim bitmap As BitmapImage = Await PageToBitmapAsync(page)
' Dim image As New Image With {
' .Source = bitmap,
' .HorizontalAlignment = HorizontalAlignment.Center,
' .Width = bitmap.Width,
' .Height = bitmap.Height
' }
' Items.Add(image)
' End Using
' Next
'End Function
''' <summary>
''' Funzione che trasforma le pagine del pdf in immagine
''' </summary>
''' <param name="pdfViewer">PDF da trasformare</param>
''' <param name="pdfDoc">Singola pagina del PDf</param>
''' <returns></returns>
Private Shared Async Function PdfToImages(pdfViewer As PdfViewer, pdfDoc As PdfDocument) As Task
Dim items As ItemCollection = pdfViewer.PagesContainer.Items
items.Clear()
If IsNothing(pdfDoc) Then Return
For i As Integer = 0 To pdfDoc.PageCount - 1
Using page As PdfPage = pdfDoc.GetPage(i)
Dim bitmap As BitmapImage = Await PageToBitmapAsync(page)
Dim image As New Image With {
.Source = bitmap,
.Width = bitmap.PixelWidth,
.Height = bitmap.PixelHeight,
.HorizontalAlignment = HorizontalAlignment.Center,
.Margin = New Thickness(5, 20, 5, 20),
.SnapsToDevicePixels = True,
.Stretch = Stretch.UniformToFill
}
items.Add(image)
End Using
Next
End Function
''' <summary>
''' Funzione che trasforma la singola pagina del PDF in bitmap
''' </summary>
''' <param name="page">Singola pagina del PDF che verrà trasformata in bitmap</param>
''' <returns></returns>
Private Shared Async Function PageToBitmapAsync(page As PdfPage) As Task(Of BitmapImage)
Dim image As New BitmapImage()
Using stream = New InMemoryRandomAccessStream()
Await page.RenderToStreamAsync(stream)
image.BeginInit()
image.CreateOptions = BitmapCreateOptions.PreservePixelFormat
image.DecodePixelWidth = page.Size.Width
image.DecodePixelHeight = page.Size.Height
image.CacheOption = BitmapCacheOption.OnLoad
image.StreamSource = stream.AsStream()
image.UriSource = Nothing
image.EndInit()
End Using
'image.Freeze()
Return image
End Function
End Class
Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 B

@@ -68,6 +68,10 @@ Public Class MySceneHostVM
EgtSetCurrentContext(MainScene.GetCtx())
' inizializzo gestore travi e pareti
EgtInitBeamMgr(EIB_FL.TS3_POS + EIB_FL.USEUATTR)
' imposto direttorio BtlAux per geometrie Variant
Dim sBtlAuxDir As String = ""
GetMainPrivateProfileString(S_IMPORT, K_BTLAUXDIR, "", sBtlAuxDir)
EgtSetBtlAuxDir( sBtlAuxDir)
' inizializzo gestore lavorazioni
EgtInitMachMgr(Map.refMainWindowVM.MainWindowM.sMachinesRoot, Map.refMainWindowVM.MainWindowM.sToolMakersDir)
' Seleziono la macchina impostata nel file ini
@@ -0,0 +1,138 @@
<Grid x:Class="PDFEditorV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer">
<Grid.Resources>
<EgtBEAMWALL:ColumnNameConverter x:Key="ColumnNameConverter"/>
</Grid.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<GroupBox Header="PDF Preview"
Style="{StaticResource GroupBox_PDFPreview}">
<StackPanel Style="{StaticResource StackPanel_List}">
<Button ToolTip="PDF Viewer - Preview"
Command="{Binding CreatePreviewVis_Command}"
Style="{StaticResource PDFPanel_Button}">
<Image Source="/Resources/PDFEditor/PrintPDF.png" Stretch="Uniform"/>
</Button>
<Button ToolTip="PDF Viewer - Optimizer"
Command="{Binding CreatePreviewOtt_Command}"
Style="{StaticResource PDFPanel_Button}">
<Image Source="/Resources/PDFEditor/PrintPDF.png" Stretch="Uniform"/>
</Button>
<Button ToolTip="Close PDF Viewer"
Command="{Binding ClosePreview_Command}"
Style="{StaticResource Close_Button}">
<Image Source="/Resources/PDFEditor/Delete.png" Stretch="Uniform"/>
</Button>
</StackPanel>
</GroupBox>
<ScrollViewer Grid.Row="1"
Style="{StaticResource ScrollViewer}">
<ItemsControl ItemsSource="{Binding ExpanderList}"
Style="{StaticResource ItemsControl_ExpanderList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Style="{StaticResource StackPanel}"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Expander Style="{StaticResource Expander}">
<Expander.Header>
<TextBlock Text="{Binding sNameCategory}"
Style="{StaticResource Category_TextBlock}"/>
</Expander.Header>
<ItemsControl ItemsSource="{Binding ExpanderElementList}"
Style="{StaticResource ItemsControl_ExpanderElementList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Style="{StaticResource StackPanel}"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type EgtBEAMWALL:ExpanderElement}">
<StackPanel Style="{StaticResource StackPanel_List}">
<CheckBox IsChecked="{Binding bParameter_IsChecked, UpdateSourceTrigger=PropertyChanged}"
Style="{StaticResource OptionCheckBox}"/>
<TextBlock Text="{Binding sNameParameter}"
Style="{StaticResource OptionTextBlock}"/>
</StackPanel>
</DataTemplate>
<DataTemplate DataType="{x:Type EgtBEAMWALL:ExpanderTable}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<ListBox ItemsSource="{Binding RawPartColumns}"
SelectedItem="{Binding SelColumns}"
Style="{StaticResource ListBox}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Style="{StaticResource StackPanel_List}">
<CheckBox IsChecked="{Binding bIsChecked}"
Style="{StaticResource OptionCheckBox}"/>
<TextBlock Text="{Binding Name, Converter={StaticResource ColumnNameConverter}}"
Style="{StaticResource OptionTextBlock}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<UniformGrid Grid.Row="1"
Rows="2"
Visibility="{Binding vRawPartVisibility}">
<StackPanel Style="{StaticResource StackPanel_List}">
<CheckBox IsChecked="{Binding bSection_IsChecked}"
Style="{StaticResource OptionCheckBox}"/>
<TextBlock Text="{Binding Section_Msg}"
Style="{StaticResource OptionTextBlock}"/>
</StackPanel>
<StackPanel Style="{StaticResource StackPanel_List}">
<CheckBox IsChecked="{Binding bImage_IsChecked}"
Style="{StaticResource OptionCheckBox}"/>
<TextBlock Text="{Binding Image_Msg}"
Style="{StaticResource OptionTextBlock}"/>
</StackPanel>
</UniformGrid>
<StackPanel Grid.Column="1"
Style="{StaticResource StackPanel_Button}">
<Button Command="{Binding MoveUpOrder_Command}"
Style="{StaticResource LeftPanel_Button}">
<Image Source="/Resources/PDFEditor/MoveUp.png" Stretch="Uniform"/>
</Button>
<Button Command="{Binding MoveDownOrder_Command}"
Style="{StaticResource LeftPanel_Button}">
<Image Source="/Resources/PDFEditor/MoveDown.png" Stretch="Uniform"/>
</Button>
</StackPanel>
</Grid>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
</Expander>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
<GroupBox Header="PDF"
Grid.Column="1"
Grid.RowSpan="2"
Style="{StaticResource GroupBox_PDFPreview}">
<!--<WebBrowser EgtBEAMWALL:WebBrowserUtility.BindableSource="{Binding WebAddress}"/>-->
<EgtBEAMWALL:PdfViewer PdfPath="{Binding WebAddress, Mode=TwoWay}" Visibility="{Binding PdfViewer_Visibility}"/>
</GroupBox>
</Grid>
</Grid>
@@ -0,0 +1,12 @@
Public Class PDFEditorV
Sub New()
' La chiamata è richiesta dalla finestra di progettazione.
InitializeComponent()
' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
DataContext = New PDFEditorVM()
End Sub
End Class
@@ -0,0 +1,497 @@
Imports System.Collections.ObjectModel
Imports EgtBEAMWALL.Core
Imports EgtWPFLib5
Imports EgtUILib
Imports System.Globalization
Imports System.IO
Public Class PDFEditorVM
Inherits VMBase
#Region "FIELDS & PROPERTIES"
Private Enum PDFPage As Integer
VIEW = 0 ' PDF Visualizzatore
MACHING = 1 ' PDF Ottimizzatore
End Enum
' Lista contenente le singole categorie
Private m_ExpanderList As New ObservableCollection(Of ExpanderPDF)
Public ReadOnly Property ExpanderList As ObservableCollection(Of ExpanderPDF)
Get
Return m_ExpanderList
End Get
End Property
' PDF visualizzato come preview nella sezione PDF Editor
Private m_WebAddress As String
Public Property WebAddress As String
Get
Return m_WebAddress
End Get
Set(value As String)
m_WebAddress = value
NotifyPropertyChanged(NameOf(WebAddress))
End Set
End Property
Private m_PdfViewer_Visibility As Visibility
Public Property PdfViewer_Visibility As Visibility
Get
Return m_PdfViewer_Visibility
End Get
Set(value As Visibility)
m_PdfViewer_Visibility = value
NotifyPropertyChanged(NameOf(PdfViewer_Visibility))
End Set
End Property
' Definizione comandi
Private m_cmdCreatePDFPreviewVis As ICommand
Private m_cmdCreatePDFPreviewOtt As ICommand
Private m_cmdClosePreview As ICommand
#End Region
#Region "CONSTRUCTORS"
Sub New()
m_ExpanderList.Add(New ExpanderPDF(ListTypes.MACHGROUPTOT)) ' MachGroup Totals
m_ExpanderList.Add(New ExpanderPDF(ListTypes.MACHGROUP)) ' MachGroup List
m_ExpanderList.Add(New ExpanderPDF(ListTypes.PART_LIST)) ' Raw Part
m_ExpanderList.Add(New ExpanderPDF(ListTypes.RAWPART)) ' RawPart List
m_ExpanderList.Add(New ExpanderPDF(ListTypes.PART_TOT)) ' Part Totals
m_ExpanderList.Add(New ExpanderPDF(ListTypes.PART)) ' Part List
m_WebAddress = "" ' Pagina vuota
m_PdfViewer_Visibility = Visibility.Hidden
Map.SetRefPDFEditorVM(Me)
End Sub
#End Region ' Constructors
#Region "COMMANDS"
#Region "CreatePreviewVis"
Public ReadOnly Property CreatePreviewVis_Command As ICommand
Get
If m_cmdCreatePDFPreviewVis Is Nothing Then
m_cmdCreatePDFPreviewVis = New Command(AddressOf CreatePreviewVis)
End If
Return m_cmdCreatePDFPreviewVis
End Get
End Property
''' <summary>
''' Funzione per la visualizzazione della preview del PDF della sezione visualizzatore
''' </summary>
Public Sub CreatePreviewVis()
m_PdfViewer_Visibility = Visibility.Visible
Configuration.CreatePrintPDF(PDFPage.VIEW, True)
WebAddress = Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf"
NotifyPropertyChanged(NameOf(WebAddress))
NotifyPropertyChanged(NameOf(PdfViewer_Visibility))
End Sub
#End Region ' CreatePreviewVis
#Region "CreatePreviewOt"
Public ReadOnly Property CreatePreviewOtt_Command As ICommand
Get
If m_cmdCreatePDFPreviewOtt Is Nothing Then
m_cmdCreatePDFPreviewOtt = New Command(AddressOf CreatePreviewOtt)
End If
Return m_cmdCreatePDFPreviewOtt
End Get
End Property
''' <summary>
''' Funzione per la visualizzazione della preview del PDF della sezione ottimizzatore
''' </summary>
Public Sub CreatePreviewOtt()
m_PdfViewer_Visibility = Visibility.Visible
Configuration.CreatePrintPDF(PDFPage.MACHING, True)
WebAddress = Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf"
NotifyPropertyChanged(NameOf(WebAddress))
NotifyPropertyChanged(NameOf(PdfViewer_Visibility))
End Sub
#End Region ' CreatePreviewOt
#Region "ClosePreview"
Public ReadOnly Property ClosePreview_Command As ICommand
Get
If m_cmdClosePreview Is Nothing Then
m_cmdClosePreview = New Command(AddressOf ClosePreview)
End If
Return m_cmdClosePreview
End Get
End Property
''' <summary>
''' Funzione per la chiusura della preview
''' </summary>
Public Sub ClosePreview()
Try
File.Delete(Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf")
'File.Delete(Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics - Optimizer.pdf")
Catch ex As Exception
EgtOutLog("Errore! Cancellazione dei file pdf fallita")
End Try
m_PdfViewer_Visibility = Visibility.Hidden
WebAddress = ""
NotifyPropertyChanged(NameOf(WebAddress))
NotifyPropertyChanged(NameOf(PdfViewer_Visibility))
End Sub
#End Region ' CreatePreviewVis
#End Region ' Commands
End Class
Public Class ExpanderPDF
Inherits VMBase
#Region "FIELDS & PROPERTIES"
'Nome della categoria MachGroup Totals, MachGroup List, Raw Part e Raw Part List
Private m_sNameCategory As String
Public ReadOnly Property sNameCategory As String
Get
Return m_sNameCategory
End Get
End Property
'Lista degli elementi visualizzati nell'expander es Numero di grezzi o le colonne es colName
Private m_ExpanderElementList As New List(Of ExpanderPDF)
Public ReadOnly Property ExpanderElementList As List(Of ExpanderPDF)
Get
Return m_ExpanderElementList
End Get
End Property
#End Region ' Fields & Properties
#Region "CONTRUCTORS"
Sub New()
End Sub
Sub New(nListType As Integer)
Select Case nListType
Case ListTypes.MACHGROUPTOT ' MachGroup Totals
m_sNameCategory = EgtMsg(61729) ' Titolo Categoria: MachGroup Totals
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61721))) ' Numero di grezzi
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61717))) ' Volume totale
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61719))) ' Tempo totole stimato
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61718))) ' Tempo totale
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61720))) ' Tempo rimanente
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61722))) ' Numero di pezzi da BTL
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61723))) ' Numero di pezzi aggiunti
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61724))) ' Numero di pezzi inseriti nei grezzi
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61725))) ' Numero di pezzi completati
Case ListTypes.MACHGROUP ' MachGroup List
m_sNameCategory = EgtMsg(61730) ' Titolo Categoria: MachGroup List
m_ExpanderElementList.Add(New ExpanderTable(S_OPTIMIZERSTATISTICS)) ' Tabella MachGroupList
Case ListTypes.PART_LIST ' Raw Part
m_sNameCategory = EgtMsg(61731) ' Titolo Categoria: Raw Part
m_ExpanderElementList.Add(New ExpanderTable(S_STATISTICS_PART)) ' Tabella RawPart + Sezione e Immagine
Case ListTypes.RAWPART ' RawPart List
m_sNameCategory = EgtMsg(61732) ' Titolo Categoria: RawPart List
m_ExpanderElementList.Add(New ExpanderTable(S_RAWPARTSTATISTICS)) ' Tabella RawPartList
Case ListTypes.PART_TOT ' Part Totals
m_sNameCategory = EgtMsg(61734) ' Titolo Categoria: Part Totals
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61716))) ' Numero totale di pezzi
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61717))) ' Volume totale
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61718))) ' Tempo totale
m_ExpanderElementList.Add(New ExpanderElement(EgtMsg(61720))) ' Tempo rimanente
Case ListTypes.PART ' Part List
m_sNameCategory = EgtMsg(61733) ' Titolo Categoria: Part List
m_ExpanderElementList.Add(New ExpanderTable(S_STATISTICS)) ' Tabella PartList
End Select
End Sub
#End Region ' Constructors
End Class
Public Class ExpanderElement
Inherits ExpanderPDF
#Region "FIELDS & PROPERTIES"
'Nome dei parametri visualizzati nella sezione del PDF Machgroup Totals es Numero di grezzi
Private m_sNameParameter As String
Public ReadOnly Property sNameParameter As String
Get
Return m_sNameParameter
End Get
End Property
'Check Box dei parametri visualizzati nella sezione del PDF Machgroup Totals
Private m_bParameter_IsChecked As Boolean
Public Property bParameter_IsChecked As Boolean
Get
Return m_bParameter_IsChecked
End Get
Set(value As Boolean)
m_bParameter_IsChecked = value
NotifyPropertyChanged(NameOf(bParameter_IsChecked))
WriteMainPrivateProfileString(S_PDFEDITOR, m_sNameParameter, If(m_bParameter_IsChecked, 1, 0))
End Set
End Property
#End Region 'Fields & Properties
#Region "CONTRUCTORS"
Sub New(NameParameter As String)
m_sNameParameter = NameParameter
m_bParameter_IsChecked = GetMainPrivateProfileInt(S_PDFEDITOR, m_sNameParameter, 0) <> 0
End Sub
#End Region 'Constructors
End Class
Public Class ExpanderTable
Inherits ExpanderPDF
#Region "FIELDS & PROPERTIES"
#Region "RAWPARTCOLUMNS"
'Lista Colonne Tabella MachGroup List, RawPart List, PartList
Private m_RawPartColumns As New ObservableCollection(Of EgtDataGridColumn)
Public ReadOnly Property RawPartColumns As ObservableCollection(Of EgtDataGridColumn)
Get
Return m_RawPartColumns
End Get
End Property
'Elemento delle Liste MachGroup List, RawPart List, PartList selezionato es colName
Private m_SelColumns As EgtDataGridColumn
Public Property SelColumns As EgtDataGridColumn
Get
Return m_SelColumns
End Get
Set(value As EgtDataGridColumn)
m_SelColumns = value
End Set
End Property
#End Region ' RawPartColumns
#Region "SECTION & IMAGE"
' Visualizza Sezione ed Immagine solo se fa parte di DG_Statistics_PART
Private m_vRawPartVisibility As Visibility
Public ReadOnly Property vRawPartVisibility As Visibility
Get
Return m_vRawPartVisibility
End Get
End Property
' Check Box per la visualizzazione nel PDF della sezione
Private m_bSection_IsChecked As Boolean
Public Property bSection_IsChecked As Boolean
Get
Return m_bSection_IsChecked
End Get
Set(value As Boolean)
m_bSection_IsChecked = value
NotifyPropertyChanged(NameOf(bSection_IsChecked))
WriteMainPrivateProfileString(S_PDFEDITOR, S_SECTION, If(m_bSection_IsChecked, 1, 0))
End Set
End Property
' Check Box per la visualizzazione nel PDF dell' immagine
Private m_bImage_IsChecked As Boolean
Public Property bImage_IsChecked As Boolean
Get
Return m_bImage_IsChecked
End Get
Set(value As Boolean)
m_bImage_IsChecked = value
NotifyPropertyChanged(NameOf(bImage_IsChecked))
WriteMainPrivateProfileString(S_PDFEDITOR, S_IMAGE, If(m_bImage_IsChecked, 1, 0))
End Set
End Property
#End Region ' Section & Image
#End Region ' FIELDS & PROPERTIES
#Region "MESSAGES"
Public ReadOnly Property Section_Msg As String
Get
Return EgtMsg(61735).ToUpper()
End Get
End Property
Public ReadOnly Property Image_Msg As String
Get
Return EgtMsg(61736).ToUpper()
End Get
End Property
#End Region ' Messages
' Definizione comandi
Private m_cmdMoveUpOrder As ICommand
Private m_cmdMoveDownOrder As ICommand
#Region "CONTRUCTORS"
Sub New(TypeTable As String)
GetPrivateProfileColumns(TypeTable, m_RawPartColumns)
m_vRawPartVisibility = If(TypeTable = S_STATISTICS_PART, Visibility.Visible, Visibility.Collapsed)
m_bSection_IsChecked = GetMainPrivateProfileInt(S_PDFEDITOR, S_SECTION, 0) <> 0
m_bImage_IsChecked = GetMainPrivateProfileInt(S_PDFEDITOR, S_IMAGE, 0) <> 0
End Sub
#End Region ' Constructors
#Region "COMMANDS"
#Region "MoveUpOrder"
Public ReadOnly Property MoveUpOrder_Command As ICommand
Get
If m_cmdMoveUpOrder Is Nothing Then
m_cmdMoveUpOrder = New Command(AddressOf MoveUpOrder)
End If
Return m_cmdMoveUpOrder
End Get
End Property
''' <summary>
''' Funzione per spostare in alto la colonna
''' </summary>
Public Sub MoveUpOrder()
If IsNothing(m_RawPartColumns) Then Return
Dim nIndex As Integer = m_RawPartColumns.IndexOf(m_SelColumns)
If nIndex < 0 Then Return
If nIndex > 0 Then m_RawPartColumns.Move(nIndex, nIndex - 1)
End Sub
#End Region ' MoveUpOrder
#Region "MoveDownOrder"
Public ReadOnly Property MoveDownOrder_Command As ICommand
Get
If m_cmdMoveDownOrder Is Nothing Then
m_cmdMoveDownOrder = New Command(AddressOf MoveDownOrder)
End If
Return m_cmdMoveDownOrder
End Get
End Property
''' <summary>
''' Funzione per spostare in basso la colonna
''' </summary>
Public Sub MoveDownOrder()
If IsNothing(m_RawPartColumns) Then Return
Dim nIndex As Integer = m_RawPartColumns.IndexOf(m_SelColumns)
If nIndex < 0 Then Return
If nIndex < m_RawPartColumns.Count - 1 Then m_RawPartColumns.Move(nIndex, nIndex + 1)
End Sub
#End Region ' MoveDownOrder
#End Region ' Commands
End Class
' Classe gestione binding Web browser
'Public Class WebBrowserUtility
' Public Shared ReadOnly BindableSourceProperty As DependencyProperty = DependencyProperty.RegisterAttached("BindableSource",
' GetType(String),
' GetType(WebBrowserUtility),
' New UIPropertyMetadata(Nothing, AddressOf BindableSourcePropertyChanged))
' Public Shared Function GetBindableSource(obj As DependencyObject) As String
' Return DirectCast(obj.GetValue(BindableSourceProperty), String)
' End Function
' Public Shared Sub SetBindableSource(obj As DependencyObject, value As String)
' obj.SetValue(BindableSourceProperty, value)
' End Sub
' Public Shared Sub BindableSourcePropertyChanged(o As DependencyObject, e As DependencyPropertyChangedEventArgs)
' Dim browser As WebBrowser = TryCast(o, WebBrowser)
' If Not IsNothing(browser) Then
' Dim uri As String = TryCast(e.NewValue, String)
' If Not IsNothing(uri) Then
' browser.Source = New Uri(uri)
' Else
' browser.Source = Nothing
' End If
' End If
' End Sub
'End Class
Class ColumnNameConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
Dim ColName As String = ""
If TypeOf value Is String Then
ColName = CStr(value)
Select Case value
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
Return Statistic_Messages.NAM_Msg
Case COL_NAME
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_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 COL_INPROD
Return Statistic_Messages.INPROD_Msg
Case Else
Return Nothing
End Select
Else
Return Nothing
End If
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
Throw New NotImplementedException()
End Function
End Class
File diff suppressed because it is too large Load Diff
@@ -89,179 +89,181 @@ Public Class StatisticsVM
Public ReadOnly Property PDN_Msg As String
Get
Return EgtMsg(61809)
Return Statistic_Messages.PDN_Msg
End Get
End Property
Public ReadOnly Property ID_Msg As String
Get
Return EgtMsg(61809)
Return Statistic_Messages.ID_Msg
End Get
End Property
Public ReadOnly Property DO_Msg As String
Get
Return EgtMsg(61810)
Return Statistic_Messages.DO_Msg
End Get
End Property
Public ReadOnly Property W_Msg As String
Get
Return EgtMsg(61605)
Return Statistic_Messages.W_Msg
End Get
End Property
Public ReadOnly Property H_Msg As String
Get
Return EgtMsg(61606)
Return Statistic_Messages.H_Msg
End Get
End Property
Public ReadOnly Property L_Msg As String
Get
Return EgtMsg(61604)
Return Statistic_Messages.L_Msg
End Get
End Property
Public ReadOnly Property NAM_Msg As String
Get
Return EgtMsg(61603)
Return Statistic_Messages.NAM_Msg
End Get
End Property
Public ReadOnly Property MAT_Msg As String
Get
Return EgtMsg(61607)
Return Statistic_Messages.MAT_Msg
End Get
End Property
Public ReadOnly Property CNT_Msg As String
Get
Return EgtMsg(61608)
Return Statistic_Messages.CNT_Msg
End Get
End Property
Public ReadOnly Property ADDED_Msg As String
Get
Return EgtMsg(61813)
Return Statistic_Messages.ADDED_Msg
End Get
End Property
Public ReadOnly Property INPROD_Msg As String
Get
Return EgtMsg(61609)
Return Statistic_Messages.INPROD_Msg
End Get
End Property
Public ReadOnly Property DONE_Msg As String
Get
Return EgtMsg(61814)
Return Statistic_Messages.DONE_Msg
End Get
End Property
Public ReadOnly Property GRP_Msg As String
Get
Return EgtMsg(61612)
Return Statistic_Messages.GRP_Msg
End Get
End Property
Public ReadOnly Property UNIT_VOLUME_Msg As String
Get
Return EgtMsg(61712)
Return Statistic_Messages.UNIT_VOLUME_Msg
End Get
End Property
Public ReadOnly Property TOT_VOLUME_Msg As String
Get
Return EgtMsg(61713)
Return Statistic_Messages.TOT_VOLUME_Msg
End Get
End Property
Public ReadOnly Property UNIT_TIME_Msg As String
Get
Return EgtMsg(61714)
Return Statistic_Messages.UNIT_TIME_Msg
End Get
End Property
Public ReadOnly Property TOT_TIME_Msg As String
Get
Return EgtMsg(61715)
Return Statistic_Messages.TOT_TIME_Msg
End Get
End Property
Public ReadOnly Property BTLTotParts_Msg As String
Get
Return EgtMsg(61716) & ": "
Return Statistic_Messages.BTLTotParts_Msg
End Get
End Property
Public ReadOnly Property BTLTotVolume_Msg As String
Get
Return EgtMsg(61717) & ": "
Return Statistic_Messages.BTLTotVolume_Msg
End Get
End Property
Public ReadOnly Property BTLTotEstimatedTime_Msg As String
Get
Return EgtMsg(61719) & ": "
Return Statistic_Messages.BTLTotEstimatedTime_Msg
End Get
End Property
Public ReadOnly Property BTLTotTime_Msg As String
Get
Return EgtMsg(61718) & ": "
Return Statistic_Messages.BTLTotTime_Msg
End Get
End Property
Public ReadOnly Property BTLRemainingTime_Msg As String
Get
Return EgtMsg(61720) & ": "
Return Statistic_Messages.BTLRemainingTime_Msg
End Get
End Property
Public ReadOnly Property TotMachGroups_Msg As String
Get
Return EgtMsg(61721) & ": "
Return Statistic_Messages.TotMachGroups_Msg
End Get
End Property
Public ReadOnly Property TotCNTParts_Msg As String
Get
Return EgtMsg(61722) & ": "
Return Statistic_Messages.TotCNTParts_Msg
End Get
End Property
Public ReadOnly Property TotADDEDParts_Msg As String
Get
Return EgtMsg(61723) & ": "
Return Statistic_Messages.TotADDEDParts_Msg
End Get
End Property
Public ReadOnly Property TotINPRODParts_Msg As String
Get
Return EgtMsg(61724) & ": "
Return Statistic_Messages.TotINPRODParts_Msg
End Get
End Property
Public ReadOnly Property TotDONEParts_Msg As String
Get
Return EgtMsg(61725) & ": "
Return Statistic_Messages.TotDONEParts_Msg
End Get
End Property
Public ReadOnly Property Used_Msg As String
Get
Return EgtMsg(61817)
Return Statistic_Messages.Used_Msg
End Get
End Property
Public ReadOnly Property Waste_Msg As String
Get
Return EgtMsg(61818)
Return Statistic_Messages.Waste_Msg
End Get
End Property
Public ReadOnly Property QTY_Msg As String
Get
Return EgtMsg(61726)
Return Statistic_Messages.QTY_Msg
End Get
End Property
@@ -320,33 +322,19 @@ Public Class StatisticsVM
End Select
End Sub
#End Region ' METHODS
#Region "COMMANDS"
#Region "PrintPDF"
Public ReadOnly Property PrintPDF_Command As ICommand
Get
If m_cmdPrintPDF Is Nothing Then
m_cmdPrintPDF = New Command(AddressOf PrintPDF)
End If
Return m_cmdPrintPDF
End Get
End Property
Public Sub PrintPDF()
Public Sub CreatePrintPDF(ActivePage As Integer, bPreview As Boolean)
LoadingWndHelper.OpenLoadingWnd(ActiveIds.CREATINGPDF, 1, "Creating PDF", "", 100)
Try
' creo documento MigraDoc
Dim document As Document = PDFHelper.CreateStatReport(Map.refMainMenuVM.SelPage)
Dim document As Document = PDFHelper.CreateStatReport(ActivePage, bPreview)
Dim documentPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\MigraDoc.mdddl"
MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToFile(document, documentPath)
Dim renderer As PdfDocumentRenderer = New PdfDocumentRenderer(True)
renderer.Document = document
Dim renderer As New PdfDocumentRenderer(True) With {
.Document = document
}
renderer.RenderDocument()
' salvo il documento
Dim sFileName As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf"
Dim sFileName As String = ""
'Select Case Map.refMainMenuVM.SelPage
' Case Pages.VIEW Or (Pages.ONLYPRODPAGE AndAlso Map.refInstrumentPanelVM.VisStatistic_IsEnabled)
' sFileName = ProjectManagerVM.CurrProj.sProjDirPath & "\" & "Statistics.pdf"
@@ -355,18 +343,26 @@ Public Class StatisticsVM
' PrevSelect()
'End Select
If Pages.VIEW OrElse (Pages.ONLYPRODPAGE AndAlso Map.refInstrumentPanelVM.bVisOtt_Selected = False) Then
If (ActivePage = Pages.VIEW AndAlso Not bPreview) OrElse (ActivePage = Pages.ONLYPRODPAGE AndAlso Not Map.refInstrumentPanelVM.bVisOtt_Selected AndAlso Not bPreview) Then
sFileName = ProjectManagerVM.CurrProj.sProjDirPath & "\" & "Statistics.pdf"
ElseIf Pages.MACHINING OrElse (Pages.ONLYPRODPAGE AndAlso Map.refInstrumentPanelVM.bVisOtt_Selected) Then
ElseIf ActivePage = Pages.VIEW OrElse Pages.ONLYPRODPAGE AndAlso bPreview Then
sFileName = Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf" ' Se la pagina e' 0 e' bPreview e' True creo PDF Visualization
ElseIf (ActivePage = Pages.MACHINING AndAlso Not bPreview) OrElse (ActivePage = Pages.ONLYPRODPAGE AndAlso Map.refInstrumentPanelVM.bVisOtt_Selected AndAlso Not bPreview) Then
sFileName = ProjectManagerVM.CurrProd.sProdDirPath & "\" & ProjectManagerVM.CurrProd.sProdId & " - " & "Statistics.pdf"
ElseIf ActivePage = Pages.MACHINING OrElse Pages.ONLYPRODPAGE AndAlso bPreview Then ' Se la pagina e' 1 e' bPreview e' True creo PDF Optimizer
sFileName = Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf"
PrevSelect()
End If
' avvio il visualizzatore
renderer.PdfDocument.Save(sFileName)
' cancello file MigraDoc
File.Delete(documentPath)
' avvio il visualizzatore
Process.Start(sFileName)
If bPreview Then
Else
Process.Start(sFileName)
End If
Catch ex As Exception
EgtOutLog("Error genereting pdf: " & ex.ToString())
End Try
@@ -391,6 +387,8 @@ Public Class StatisticsVM
#End Region ' PrintPDF
#Region "COMMANDS"
#Region "Ok"
Public ReadOnly Property Ok_Command As ICommand
@@ -408,6 +406,63 @@ Public Class StatisticsVM
#End Region ' Ok
#Region "PrintPDF"
Public ReadOnly Property PrintPDF_Command As ICommand
Get
If m_cmdPrintPDF Is Nothing Then
m_cmdPrintPDF = New Command(AddressOf PrintPDF)
End If
Return m_cmdPrintPDF
End Get
End Property
Public Sub PrintPDF()
Configuration.CreatePrintPDF(Map.refMainMenuVM.SelPage, False)
'LoadingWndHelper.OpenLoadingWnd(ActiveIds.CREATINGPDF, 1, "Creating PDF", "", 100)
'Try
' ' creo documento MigraDoc
' Dim document As Document = PDFHelper.CreateStatReport(Map.refMainMenuVM.SelPage, False)
' Dim documentPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\MigraDoc.mdddl"
' MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToFile(document, documentPath)
' Dim renderer As PdfDocumentRenderer = New PdfDocumentRenderer(True)
' renderer.Document = document
' renderer.RenderDocument()
' ' salvo il documento
' Dim sFileName As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf"
' Select Case Map.refMainMenuVM.SelPage
' Case Pages.VIEW
' sFileName = Map.refProjManagerVM.CurrProj.sProjDirPath & "\" & "Statistics.pdf"
' Case Pages.MACHINING
' sFileName = Map.refProdManagerVM.CurrProd.sProdDirPath & "\" & Map.refProdManagerVM.CurrProd.sProdId & " - " & "Statistics.pdf"
' ' ripristino selezione precedente
' Dim nCurrMachGroupId As Integer = EgtGetCurrMachGroup()
' If Not IsNothing(Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup) AndAlso nCurrMachGroupId <> Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.Id Then
' EgtSetCurrMachGroup(Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.Id)
' End If
' 'If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
' ' EgtSetView(VT.ISO_SW, False)
' 'Else
' ' EgtSetView(VT.TOP, False)
' 'End If
' Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.ISO_SW, VT.TOP), False)
' EgtZoom(ZM.ALL, True)
' End Select
' renderer.PdfDocument.Save(sFileName)
' ' cancello file MigraDoc
' File.Delete(documentPath)
' ' avvio il visualizzatore
' Process.Start(sFileName)
'Catch ex As Exception
' EgtOutLog("Error genereting pdf: " & ex.ToString())
'End Try
'LoadingWndHelper.CloseLoadingWnd(ActiveIds.CREATINGPDF)
End Sub
#End Region ' PrintPDF
#End Region ' COMMANDS
End Class
@@ -224,4 +224,67 @@ Module Configuration
EgtBeamShowLoadingSide(bLoadingSideShow, bLeftToRight)
End Sub
Public Sub CreatePrintPDF(ActivePage As Integer, bPreview As Boolean)
LoadingWndHelper.OpenLoadingWnd(ActiveIds.CREATINGPDF, 1, "Creating PDF", "", 100)
Try
' creo documento MigraDoc
Dim document As Document = PDFHelper.CreateStatReport(ActivePage, bPreview)
Dim documentPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\MigraDoc.mdddl"
MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToFile(document, documentPath)
Dim renderer As New PdfDocumentRenderer(True) With {
.document = document
}
renderer.RenderDocument()
' salvo il documento
Dim sFileName As String = ""
'Select Case Map.refMainMenuVM.SelPage
' Case Pages.VIEW Or (Pages.ONLYPRODPAGE AndAlso Map.refInstrumentPanelVM.VisStatistic_IsEnabled)
' sFileName = ProjectManagerVM.CurrProj.sProjDirPath & "\" & "Statistics.pdf"
' Case Pages.MACHINING OrElse (Pages.ONLYPRODPAGE AndAlso Map.refInstrumentPanelVM.OtStatistic_IsEnabled)
' sFileName = ProjectManagerVM.CurrProd.sProdDirPath & "\" & ProjectManagerVM.CurrProd.sProdId & " - " & "Statistics.pdf"
' PrevSelect()
'End Select
If (ActivePage = Pages.VIEW AndAlso Not bPreview) OrElse (ActivePage = Pages.ONLYPRODPAGE AndAlso Not Map.refInstrumentPanelVM.bVisOtt_Selected AndAlso Not bPreview) Then
sFileName = ProjectManagerVM.CurrProj.sProjDirPath & "\" & "Statistics.pdf"
ElseIf ActivePage = Pages.VIEW OrElse Pages.ONLYPRODPAGE AndAlso bPreview Then
sFileName = Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf" ' Se la pagina e' 0 e' bPreview e' True creo PDF Visualization
ElseIf (ActivePage = Pages.MACHINING AndAlso Not bPreview) OrElse (ActivePage = Pages.ONLYPRODPAGE AndAlso Map.refInstrumentPanelVM.bVisOtt_Selected AndAlso Not bPreview) Then
sFileName = ProjectManagerVM.CurrProd.sProdDirPath & "\" & ProjectManagerVM.CurrProd.sProdId & " - " & "Statistics.pdf"
ElseIf ActivePage = Pages.MACHINING OrElse Pages.ONLYPRODPAGE AndAlso bPreview Then ' Se la pagina e' 1 e' bPreview e' True creo PDF Optimizer
sFileName = Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf"
PrevSelect()
End If
' avvio il visualizzatore
renderer.PdfDocument.Save(sFileName)
' cancello file MigraDoc
System.IO.File.Delete(documentPath)
If bPreview Then
Else
Process.Start(sFileName)
End If
Catch ex As Exception
EgtOutLog("Error genereting pdf: " & ex.ToString())
End Try
LoadingWndHelper.CloseLoadingWnd(ActiveIds.CREATINGPDF)
End Sub
Private Sub PrevSelect()
' ripristino selezione precedente
Dim nCurrMachGroupId As Integer = EgtGetCurrMachGroup()
If Not IsNothing(Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup) AndAlso nCurrMachGroupId <> Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.Id Then
EgtSetCurrMachGroup(Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.Id)
End If
'If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
' EgtSetView(VT.ISO_SW, False)
'Else
' EgtSetView(VT.TOP, False)
'End If
Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.ISO_SW, VT.TOP), False)
EgtZoom(ZM.ALL, True)
End Sub
End Module
@@ -68,8 +68,6 @@ Public Module DbControllers
DataLayer.DbConfig.CheckMigrateDb()
DataLayer.DbConfig.CheckUser(sUser, sPwd, m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK))
DataLayer.DbConfig.CheckViews(sUser, sPwd)
' riattivare il dump per il backup
'DataLayer.DbConfig.DumpDB("C:\Program Files\MariaDB 10.5\bin\mysqldump", "c:\Temp\Pippo.sql")
If m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
' imposto cartella condivisa
GetMainPrivateProfileString(S_GENERAL, K_SHAREDFOLDER, Map.refMainWindowVM.MainWindowM.sDataDir, sSharedFolder)
@@ -199,6 +199,26 @@
<Style x:Key="LeftPanel_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Height" Value="30"/>
<Setter Property="Width" Value="30"/>
<Setter Property="Margin" Value="2.5,2.5,2.5,2.5"/>
</Style>
<Style x:Key="Close_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Height" Value="40"/>
<Setter Property="Width" Value="50"/>
<Setter Property="Margin" Value="2.5,2.5,2.5,2.5"/>
</Style>
<Style x:Key="PDFPanel_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Height" Value="40"/>
<Setter Property="Width" Value="120"/>
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
<Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
<Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
</Style>
<!-- ______________________________________________________________________________________________________________________________________________ -->
@@ -370,6 +390,12 @@
<Setter Property="Margin" Value="10,0,10,0"/>
</Style>
<Style x:Key="Category_TextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource {x:Type TextBlock}}">
<Setter Property="Foreground" Value="DarkBlue"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontWeight" Value="Bold"/>
</Style>
<Style x:Key="Filter_TextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource {x:Type TextBlock}}">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="2.5,0,2.5,0"/>
@@ -725,6 +751,12 @@
</Setter>
</Style>
<Style x:Key="GroupBox_PDFPreview" TargetType="{x:Type GroupBox}">
<Setter Property="Margin" Value="2.5"/>
<Setter Property="Width" Value="Auto"/>
</Style>
<!-- ______________________________________________________________________________________________________________________________________________ -->
<!-- TabControl that have only Headers and no Pages -->
@@ -836,6 +868,14 @@
<!-- ______________________________________________________________________________________________________________________________________________ -->
<!-- ScrollViewer -->
<Style x:Key="ScrollViewer" TargetType="{x:Type ScrollViewer}" BasedOn="{StaticResource {x:Type ScrollViewer}}">
<Setter Property="CanContentScroll" Value="True"/>
<Setter Property="VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="Margin" Value="2.5,2.5,2.5,2.5"/>
<Setter Property="HorizontalScrollBarVisibility" Value="Hidden"/>
</Style>
<!-- DatePicker -->
<Style x:Key="Filter_DatePicker" TargetType="{x:Type DatePicker}">
@@ -845,4 +885,63 @@
<!-- ______________________________________________________________________________________________________________________________________________ -->
<!-- ItemsControl -->
<Style x:Key="ItemsControl_ExpanderList" TargetType="{x:Type ItemsControl}" BasedOn="{StaticResource {x:Type ItemsControl}}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Padding" Value="0"/>
</Style>
<Style x:Key="ItemsControl_ExpanderElementList" TargetType="{x:Type ItemsControl}" BasedOn="{StaticResource {x:Type ItemsControl}}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="FontSize" Value="14"/>
</Style>
<!-- ______________________________________________________________________________________________________________________________________________ -->
<!-- StackPanel -->
<Style x:Key="StackPanel" TargetType="{x:Type StackPanel}">
<Setter Property="Orientation" Value="Vertical"/>
<Setter Property="Margin" Value="0"/>
</Style>
<Style x:Key="StackPanel_List" TargetType="{x:Type StackPanel}">
<Setter Property="Orientation" Value="Horizontal"/>
<Setter Property="Margin" Value="5,5,5,0"/>
</Style>
<Style x:Key="StackPanel_Button" TargetType="{x:Type StackPanel}">
<Setter Property="Orientation" Value="Vertical"/>
<Setter Property="Margin" Value="2.5,0,0,0"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
<!-- ______________________________________________________________________________________________________________________________________________ -->
<!-- Expander -->
<Style x:Key="Expander" TargetType="{x:Type Expander}">
<Setter Property="IsExpanded" Value="True"/>
<Setter Property="VerticalContentAlignment" Value="Top"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="Margin" Value="2.5"/>
</Style>
<!-- ______________________________________________________________________________________________________________________________________________ -->
<!-- ListBox -->
<Style x:Key="ListBox" TargetType="{x:Type ListBox}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="VerticalContentAlignment" Value="Top"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
</Style>
</ResourceDictionary>
+13 -2
View File
@@ -34,6 +34,7 @@ Module Map
Private m_refFeatureManagerVM As FeatureManagerVM
Private m_refAddSectionXMaterialWndVM As AddSectionXMaterialWndVM
Private m_refStatisticsTimePanelVM As StatisticsTimePanelVM
Private m_refPDFEditorVM As PDFEditorVM
Private m_refOnlyProdManagerVM As OnlyProdManagerVM
Private m_refBTLPartManagerVM As BTLPartManagerVM
Private m_refRawPartManagerVM As RawPartManagerVM
@@ -249,6 +250,12 @@ Module Map
End Get
End Property
Public ReadOnly Property refPDFEditorVM As PDFEditorVM
Get
Return m_refPDFEditorVM
End Get
End Property
Public ReadOnly Property refOnlyProdManagerVM As OnlyProdManagerVM
Get
Return m_refOnlyProdManagerVM
@@ -291,7 +298,6 @@ Module Map
End Get
End Property
Public ReadOnly Property refSpecialPanelVM As SpecialPanelVM
Get
Return m_refSpecialPanelVM
@@ -510,6 +516,11 @@ Module Map
Return Not IsNothing(m_refStatisticsTimePanelVM)
End Function
Friend Function SetRefPDFEditorVM(PDFEditorVM As PDFEditorVM) As Boolean
m_refPDFEditorVM = PDFEditorVM
Return Not IsNothing(m_refPDFEditorVM)
End Function
Friend Function SetRefOnlyProdManagerVM(OnlyProdManagerVM As OnlyProdManagerVM) As Boolean
m_refOnlyProdManagerVM = OnlyProdManagerVM
Return Not IsNothing(m_refOnlyProdManagerVM)
@@ -545,7 +556,6 @@ Module Map
Return Not IsNothing(m_refProjWndVM)
End Function
Friend Function SetRefSpecialPanelVM(SpecialPanelVM As SpecialPanelVM) As Boolean
m_refSpecialPanelVM = SpecialPanelVM
Return Not IsNothing(m_refSpecialPanelVM)
@@ -625,6 +635,7 @@ Module Map
Not IsNothing(m_refStatisticsVM) AndAlso Not IsNothing(m_refPParameterListVM) AndAlso
Not IsNothing(m_refQParameterListVM) AndAlso Not IsNothing(m_refFeatureManagerVM) AndAlso
Not IsNothing(m_refAddSectionXMaterialWndVM) AndAlso Not IsNothing(m_refStatisticsTimePanelVM) AndAlso
Not IsNothing(m_refPDFEditorVM) AndAlso Not IsNothing(m_refSpecialPanelVM) AndAlso
Not IsNothing(m_refOnlyProdManagerVM) AndAlso Not IsNothing(m_refBTLPartManagerVM) AndAlso
Not IsNothing(m_refRawPartManagerVM) AndAlso Not IsNothing(m_refPartInRawPartManagerVM) AndAlso
Not IsNothing(m_refFeatureListManagerVM) AndAlso Not IsNothing(m_refProdProjManagerVM) AndAlso
@@ -0,0 +1,183 @@
Imports EgtUILib
Module Statistic_Messages
Public ReadOnly Property PDN_Msg As String
Get
Return EgtMsg(61809)
End Get
End Property
Public ReadOnly Property ID_Msg As String
Get
Return EgtMsg(61809)
End Get
End Property
Public ReadOnly Property DO_Msg As String
Get
Return EgtMsg(61810)
End Get
End Property
Public ReadOnly Property W_Msg As String
Get
Return EgtMsg(61605)
End Get
End Property
Public ReadOnly Property H_Msg As String
Get
Return EgtMsg(61606)
End Get
End Property
Public ReadOnly Property L_Msg As String
Get
Return EgtMsg(61604)
End Get
End Property
Public ReadOnly Property NAM_Msg As String
Get
Return EgtMsg(61603)
End Get
End Property
Public ReadOnly Property MAT_Msg As String
Get
Return EgtMsg(61607)
End Get
End Property
Public ReadOnly Property CNT_Msg As String
Get
Return EgtMsg(61608)
End Get
End Property
Public ReadOnly Property ADDED_Msg As String
Get
Return EgtMsg(61813)
End Get
End Property
Public ReadOnly Property INPROD_Msg As String
Get
Return EgtMsg(61609)
End Get
End Property
Public ReadOnly Property DONE_Msg As String
Get
Return EgtMsg(61814)
End Get
End Property
Public ReadOnly Property GRP_Msg As String
Get
Return EgtMsg(61612)
End Get
End Property
Public ReadOnly Property UNIT_VOLUME_Msg As String
Get
Return EgtMsg(61712)
End Get
End Property
Public ReadOnly Property TOT_VOLUME_Msg As String
Get
Return EgtMsg(61713)
End Get
End Property
Public ReadOnly Property UNIT_TIME_Msg As String
Get
Return EgtMsg(61714)
End Get
End Property
Public ReadOnly Property TOT_TIME_Msg As String
Get
Return EgtMsg(61715)
End Get
End Property
Public ReadOnly Property BTLTotParts_Msg As String
Get
Return EgtMsg(61716) & ": "
End Get
End Property
Public ReadOnly Property BTLTotVolume_Msg As String
Get
Return EgtMsg(61717) & ": "
End Get
End Property
Public ReadOnly Property BTLTotEstimatedTime_Msg As String
Get
Return EgtMsg(61719) & ": "
End Get
End Property
Public ReadOnly Property BTLTotTime_Msg As String
Get
Return EgtMsg(61718) & ": "
End Get
End Property
Public ReadOnly Property BTLRemainingTime_Msg As String
Get
Return EgtMsg(61720) & ": "
End Get
End Property
Public ReadOnly Property TotMachGroups_Msg As String
Get
Return EgtMsg(61721) & ": "
End Get
End Property
Public ReadOnly Property TotCNTParts_Msg As String
Get
Return EgtMsg(61722) & ": "
End Get
End Property
Public ReadOnly Property TotADDEDParts_Msg As String
Get
Return EgtMsg(61723) & ": "
End Get
End Property
Public ReadOnly Property TotINPRODParts_Msg As String
Get
Return EgtMsg(61724) & ": "
End Get
End Property
Public ReadOnly Property TotDONEParts_Msg As String
Get
Return EgtMsg(61725) & ": "
End Get
End Property
Public ReadOnly Property Used_Msg As String
Get
Return EgtMsg(61817)
End Get
End Property
Public ReadOnly Property Waste_Msg As String
Get
Return EgtMsg(61818)
End Get
End Property
Public ReadOnly Property QTY_Msg As String
Get
Return EgtMsg(61726)
End Get
End Property
End Module
@@ -0,0 +1,182 @@
<!DOCTYPE html>
<!-- saved from url=(0014)about:internet -->
<html xmlns:msxsl="urn:schemas-microsoft-com:xslt"><head><meta content="en-us" http-equiv="Content-Language" /><meta content="text/html; charset=utf-16" http-equiv="Content-Type" /><title _locID="NuGetUpgradeReportTitle">
NuGetMigrationLog
</title><style>
/* Body style, for the entire document */
body
{
background: #F3F3F4;
color: #1E1E1F;
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
font-size: 12pt;
padding: 0;
margin: 0;
}
/* Header1 style, used for the main title */
h1
{
padding: 10px 0px 10px 10px;
font-size: 21pt;
background-color: #E2E2E2;
border-bottom: 1px #C1C1C2 solid;
color: #201F20;
margin: 0;
font-weight: normal;
}
/* Header2 style, used for "Overview" and other sections */
h2
{
font-size: 18pt;
font-weight: normal;
padding: 15px 0 5px 0;
margin: 0;
}
/* Header3 style, used for sub-sections, such as project name */
h3
{
font-weight: normal;
font-size: 15pt;
margin: 0;
padding: 15px 0 5px 0;
background-color: transparent;
}
.info-text
{
margin: 0px 0 0.75em 0;
}
/* Color all hyperlinks one color */
a
{
color: #1382CE;
}
/* Table styles */
table
{
border-spacing: 0 0;
border-collapse: collapse;
font-size: 11pt;
}
table th
{
background: #E7E7E8;
text-align: left;
text-decoration: none;
font-weight: normal;
padding: 3px 6px 3px 6px;
}
table td
{
vertical-align: top;
padding: 3px 6px 5px 5px;
margin: 0px;
border: 1px solid #E7E7E8;
background: #F7F7F8;
}
/* Local link is a style for hyperlinks that link to file:/// content, there are lots so color them as 'normal' text until the user mouse overs */
.localLink
{
color: #1E1E1F;
background: #EEEEED;
text-decoration: none;
}
.localLink:hover
{
color: #1382CE;
background: #FFFF99;
text-decoration: none;
}
.issueCell
{
width: 100%;
}
.packageIssue
{
margin-left: 25px;
}
/* Padding around the content after the h1 */
#content
{
padding: 0px 20px 20px 20px;
}
.issues table
{
width: 97%;
}
/* All Icons */
.IconSuccessEncoded, .IconInfoEncoded, .IconWarningEncoded, .IconErrorEncoded
{
min-width:18px;
min-height:18px;
background-repeat:no-repeat;
background-position:center;
}
.IconSuccessEncoded
{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABcElEQVR4Xq2TsUsCURzHv15g8ZJcBWlyiYYgCIWcb9DFRRwMW5TA2c0/QEFwFkxxUQdxVlBwCYWOi6IhWgQhBLHJUCkhLr/BW8S7gvrAg+N+v8/v+x68Z8MGy+XSCyABQAXgBgHGALoASkIIDWSLeLBetdHryMjd5IxQPWT4rn1c/P7+xxp72Cs9m5SZ0Bq2vPnbPFafK2zDvmNHypdC0BPkLlQhxJsCAhQoZwdZU5mwxh720qGo8MzTxTTKZDPCx2HoVzp6lz0Q9tKhyx0kGs8Ny+TkWRKk8lCROwEduhyg9l/6lunOPSfmH3NUH6uQ0KHLAe7JYvJjevm+DAMGJHToKtigE+vwvIidxLamb8IBY9e+C5LiXREkfho3TSd06HJA13/oh6T51MTsfQbHrsMynQ5dDihFjiK8JJAU9AKIWTp76dCVN7HWHrajmUEGvyF9nkbAE6gLIS7kTUyuf2gscLoJrElZo/Mvj+nPz/kLTmfnEwP3tB0AAAAASUVORK5CYII=);
}
.IconInfoEncoded
{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR4Xs2TsUoDQRRF7wwoziokjZUKadInhdhukR9YP8DMX1hYW+QvdsXa/QHBbcXC7W0CamWTQnclFutceIQJwwaWNLlwm5k5d94M76mmaeCrrmsLYOocY12FcxZFUeozCqKqqgYA8uevv1H6VuPxcwlfk5N92KHBxfFeCSAxxswlYAW/Xr989x/mv9gkhtyMDhcAxgzRsp7flj8B/HF1RsMXq+NZMkopaHe7lbKxQUEIGbKsYNoGn969060hZBkQex/W8oRQwsQaW2o3Ago2SVcJUzAgY3N0lTCZZm+zPS8HB51gMmS1DEYyOz9acKO1D8JWTlafKIMxdhvlfdyT94Vv5h7P8Ky7nQzACmhvKq3zk3PjW9asz9D/1oigecsioooAAAAASUVORK5CYII=);
}
.IconWarningEncoded
{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAx0lEQVR4XpWSMQ7CMAxFf4xAyBMLCxMrO8dhaBcuwdCJS3RJBw7SA/QGTCxdWJgiQYWKXJWKIXHIlyw5lqr34tQgEOdcBsCOx5yZK3hCCKdYXneQkh4pEfqzLfu+wVDSyyzFoJjfz9NB+pAF+eizx2Vruts0k15mPgvS6GYvpVtQhB61IB/dk6AF6fS4Ben0uIX5odtFe8Q/eW1KvFeH4e8khT6+gm5B+t3juyDt7n0jpe+CANTd+oTUjN/U3yVaABnSUjFz/gFq44JaVSCXeQAAAABJRU5ErkJggg==);
}
.IconErrorEncoded
{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABQElEQVR4XqWTvUoEQRCE6wYPZUA80AfwAQz23uCMjA7MDRQEIzPBVEyNTQUFIw00vcQTTMzuAh/AxEQQT8HF/3G/oGGnEUGuoNnd6qoZuqltyKEsyzVJq5I6rnUp6SjGeGhESikzzlc1eL7opfuVbrqbU1Zw9NCgtQMaZpY0eNnaaL2fHusvTK5vKu7sjSS1Y4y3QUA6K3e3Mau5UFDyMP7tYF9o8cAHZv68vipoIJg971PZIZ5HiwdvYGGvFVFHmGmZ2MxwmQYPXubPl9Up0tfoMQGetXd6mRbvhBw+boZ6WF7Mbv1+GsHRk0fQmPAH1GfmZirbCfDJ61tw3Px8/8pZsPAG4jlVhcPgZ7adwNWBB68lkRQWFiTgFlbnLY3DGGM7izIJIyT/jjIvEJw6fdJTc6krDzh6aMwMP9bvDH4ADSsa9uSWVJkAAAAASUVORK5CYII=);
}
</style></head><body><h1>
NuGet Migration Report - EgtBEAMWALL.ViewerOptimizer</h1><div id="content"><h2 _locID="OverviewTitle">Overview</h2><div class="info-text">Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.</div><div class="info-text">
If you run into any problems, have feedback, questions, or concerns, please
<a href="https://github.com/NuGet/Home/issues/">file an issue on the NuGet GitHub repository.</a></div><div class="info-text">
Changed files and this report have been backed up here:
<a href="C:\EgtDev\egtbeamwall\MigrationBackup\814cbbc9\EgtBEAMWALL.ViewerOptimizer">C:\EgtDev\egtbeamwall\MigrationBackup\814cbbc9\EgtBEAMWALL.ViewerOptimizer</a></div><div class="info-text"><a href="https://aka.ms/nuget-pc2pr-migrator-rollback">Help me rollback to packages.config</a></div><h2 _locID="PackagesTitle">Packages processed</h2><h3 _locID="IncludePackagesTitle">Top-level dependencies:</h3><div class="issues"><table><tr><th class="issueCell">Package Id</th><th>Version</th></tr><tr><td class="issueCell"><span>BouncyCastle</span></td><td><span>
v1.8.5</span></td></tr><tr><td class="issueCell"><span>DotNetZip</span></td><td><span>
v1.16.0</span></td></tr><tr><td class="issueCell"><span>EntityFramework</span></td><td><span>
v6.4.4</span></td></tr><tr><td class="issueCell"><span>Google.Protobuf</span></td><td><span>
v3.21.9</span></td></tr><tr><td class="issueCell"><span>K4os.Compression.LZ4.Streams</span></td><td><span>
v1.3.5</span></td></tr><tr><td class="issueCell"><span>Microsoft.Windows.SDK.Contracts</span></td><td><span>
v10.0.22621.2428</span></td></tr><tr><td class="issueCell"><span>MySql.Data.EntityFramework</span></td><td><span>
v8.0.21</span></td></tr><tr><td class="issueCell"><span>NLog</span></td><td><span>
v5.0.1</span></td></tr><tr><td class="issueCell"><span>PDFsharp-MigraDoc-wpf</span></td><td><span>
v1.50.5147</span></td></tr><tr><td class="issueCell"><span>Portable.BouncyCastle</span></td><td><span>
v1.9.0</span></td></tr><tr><td class="issueCell"><span>System.IO.Pipelines</span></td><td><span>
v6.0.0</span></td></tr></table></div><p /><h3 _locID="IncludePackagesTitle">Transitive dependencies:</h3><div class="issues"><table><tr><th class="issueCell">Package Id</th><th>Version</th></tr><tr><td class="issueCell"><span>K4os.Compression.LZ4</span></td><td><span>
v1.3.5</span></td></tr><tr><td class="issueCell"><span>K4os.Hash.xxHash</span></td><td><span>
v1.0.8</span></td></tr><tr><td class="issueCell"><span>MySql.Data</span></td><td><span>
v8.0.21</span></td></tr><tr><td class="issueCell"><span>SSH.NET</span></td><td><span>
v2016.1.0</span></td></tr><tr><td class="issueCell"><span>System.Buffers</span></td><td><span>
v4.5.1</span></td></tr><tr><td class="issueCell"><span>System.Memory</span></td><td><span>
v4.5.5</span></td></tr><tr><td class="issueCell"><span>System.Numerics.Vectors</span></td><td><span>
v4.5.0</span></td></tr><tr><td class="issueCell"><span>System.Runtime.CompilerServices.Unsafe</span></td><td><span>
v6.0.0</span></td></tr><tr><td class="issueCell"><span>System.Runtime.InteropServices.WindowsRuntime</span></td><td><span>
v4.3.0</span></td></tr><tr><td class="issueCell"><span>System.Runtime.WindowsRuntime</span></td><td><span>
v4.6.0</span></td></tr><tr><td class="issueCell"><span>System.Runtime.WindowsRuntime.UI.Xaml</span></td><td><span>
v4.6.0</span></td></tr><tr><td class="issueCell"><span>System.Threading.Tasks.Extensions</span></td><td><span>
v4.5.4</span></td></tr></table></div><h2 _locID="IssuesTitle">Package compatibility issues</h2><div class="issues"><table><tr><th /><th class="issueCell" _locID="DescriptionTableHeader">Description</th></tr><tr><td class="IconInfoEncoded" /><td class="issueCell">
No issues were found.
</td></tr></table></div></div></body></html>
@@ -7,6 +7,7 @@
<package id="K4os.Compression.LZ4" version="1.3.5" targetFramework="net472" />
<package id="K4os.Compression.LZ4.Streams" version="1.3.5" targetFramework="net472" />
<package id="K4os.Hash.xxHash" version="1.0.8" targetFramework="net472" />
<package id="Microsoft.Windows.SDK.Contracts" version="10.0.22621.2428" targetFramework="net472" />
<package id="MySql.Data" version="8.0.21" targetFramework="net472" />
<package id="MySql.Data.EntityFramework" version="8.0.21" targetFramework="net472" />
<package id="NLog" version="5.0.1" targetFramework="net472" />
@@ -14,9 +15,12 @@
<package id="Portable.BouncyCastle" version="1.9.0" targetFramework="net472" />
<package id="SSH.NET" version="2016.1.0" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.IO.Pipelines" version="5.0.2" targetFramework="net472" />
<package id="System.IO.Pipelines" version="6.0.0" targetFramework="net472" />
<package id="System.Memory" version="4.5.5" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net472" />
<package id="System.Runtime.InteropServices.WindowsRuntime" version="4.3.0" targetFramework="net472" />
<package id="System.Runtime.WindowsRuntime" version="4.6.0" targetFramework="net472" />
<package id="System.Runtime.WindowsRuntime.UI.Xaml" version="4.6.0" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />
</packages>