382 lines
19 KiB
VB.net
382 lines
19 KiB
VB.net
Imports System
|
|
Imports System.ComponentModel
|
|
Imports System.Collections.Generic
|
|
Imports System.Diagnostics
|
|
Imports System.Text
|
|
|
|
Imports DevExpress.ExpressApp
|
|
Imports DevExpress.ExpressApp.Actions
|
|
Imports DevExpress.Persistent.Base
|
|
Imports FarPoint.Win.Spread
|
|
Imports DevExpress.ExpressApp.SystemModule
|
|
Imports DevExpress.ExpressApp.CloneObject
|
|
Imports System.IO
|
|
Imports DevExpress.ExpressApp.Editors
|
|
Imports DevExpress.Persistent.BaseImpl
|
|
Imports DevExpress.Xpo
|
|
Imports DevExpress.Data.Filtering
|
|
|
|
Public Class InventoryVC
|
|
Inherits Nuvolar.Module.InventoryVC
|
|
|
|
Private _FpSpread As FpSpread
|
|
Dim _WaitFormClass As New WaitFormClass
|
|
|
|
Public Sub New()
|
|
MyBase.New()
|
|
InitializeComponent()
|
|
RegisterActions(components)
|
|
End Sub
|
|
|
|
Protected Overrides Sub OnActivated()
|
|
MyBase.OnActivated()
|
|
AddHandler DoWork, AddressOf _WaitFormClass.DoWork
|
|
AddHandler InitWork, AddressOf _WaitFormClass.Initwork
|
|
AddHandler FinalWork, AddressOf _WaitFormClass.Finalwork
|
|
|
|
If View.Id = "InventoryHeader_DetailView" Then
|
|
Frame.GetController(Of NewObjectViewController).Active.SetItemValue("", False)
|
|
Frame.GetController(Of CloneObjectViewController).Active.SetItemValue("", False)
|
|
Frame.GetController(Of DeleteObjectsViewController).Active.SetItemValue("", False)
|
|
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAndNewAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
|
|
Dim _InventoryHeader As InventoryHeader = TryCast(View.SelectedObjects(0), InventoryHeader)
|
|
AddHandler _InventoryHeader.Changed, AddressOf InventoryHeader_DetailView_SetWorksheetTemplateXLS_Changed
|
|
|
|
End If
|
|
If View.Id = "InventoryParameters_DetailView" Then
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAndNewAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
|
|
|
|
End If
|
|
End Sub
|
|
Protected Overrides Sub OnDeactivated()
|
|
MyBase.OnDeactivated()
|
|
RemoveHandler DoWork, AddressOf _WaitFormClass.DoWork
|
|
RemoveHandler InitWork, AddressOf _WaitFormClass.Initwork
|
|
RemoveHandler FinalWork, AddressOf _WaitFormClass.Finalwork
|
|
|
|
If View.Id = "InventoryHeader_DetailView" Then
|
|
Frame.GetController(Of NewObjectViewController).Active.SetItemValue("", True)
|
|
Frame.GetController(Of CloneObjectViewController).Active.SetItemValue("", True)
|
|
Frame.GetController(Of DeleteObjectsViewController).Active.SetItemValue("", True)
|
|
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAndNewAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
End If
|
|
If View.Id = "InventoryParameters_DetailView" Then
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAndNewAction.Executing, AddressOf InventoryHeader_DetailView_SaveAction_Executing
|
|
End If
|
|
End Sub
|
|
Protected Overrides Sub OnViewControlsCreated()
|
|
MyBase.OnViewControlsCreated()
|
|
If View.Id = "InventoryHeader_DetailView" Or View.Id = "InventoryParameters_DetailView" Then
|
|
Dim _DetailView As DetailView = TryCast(View, DetailView)
|
|
Dim _ExcelControlViewItem As ViewItem
|
|
If _DetailView IsNot Nothing Then
|
|
If _DetailView.GetItems(Of ExcelPropertyEditor).Count > 0 Then
|
|
_ExcelControlViewItem = _DetailView.GetItems(Of ExcelPropertyEditor)(0)
|
|
If _ExcelControlViewItem IsNot Nothing Then
|
|
AddHandler _ExcelControlViewItem.ControlCreated, AddressOf ExcelControlViewItem_ControlCreated
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
Private Sub InventoryHeader_DetailView_SaveAction_Executing(sender As Object, e As CancelEventArgs)
|
|
Dim _FileName As String = Path.GetTempPath & "InSpread.xml"
|
|
Dim _StreamFile As New FileStream(_FileName, FileMode.Create)
|
|
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
If View.Id = "InventoryHeader_DetailView" Then
|
|
Dim _InventoryHeader As InventoryHeader = TryCast(View.SelectedObjects(0), InventoryHeader)
|
|
If _InventoryHeader IsNot Nothing Then
|
|
If _FpSpread IsNot Nothing Then
|
|
If Not String.IsNullOrEmpty(_InventoryHeader.DocumentNumber) Then
|
|
_FpSpread.Save(_StreamFile, False)
|
|
_StreamFile.Close()
|
|
Dim _StreamFile2 As New FileStream(_FileName, FileMode.Open)
|
|
_InventoryHeader.ExcelFile = New FileData(_ocur.Session)
|
|
_InventoryHeader.ExcelFile.LoadFromStream("Excel worksheet.xls", _StreamFile2)
|
|
_InventoryHeader.Save()
|
|
_StreamFile2.Close()
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
If View.Id = "InventoryParameters_DetailView" Then
|
|
Dim _InventoryParameters As InventoryParameters = TryCast(View.SelectedObjects(0), InventoryParameters)
|
|
If _InventoryParameters IsNot Nothing Then
|
|
If _FpSpread IsNot Nothing Then
|
|
_FpSpread.Save(_StreamFile, False)
|
|
_StreamFile.Close()
|
|
Dim _StreamFile2 As New FileStream(_FileName, FileMode.Open)
|
|
_InventoryParameters.ExcelFile = New FileData(_ocur.Session)
|
|
_InventoryParameters.ExcelFile.LoadFromStream("Excel worksheet.xls", _StreamFile2)
|
|
_InventoryParameters.Save()
|
|
_StreamFile2.Close()
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
Private Sub ExcelControlViewItem_ControlCreated(sender As Object, e As EventArgs)
|
|
Dim itemControl As Object = (CType(sender, ViewItem)).Control
|
|
|
|
_FpSpread = TryCast(itemControl, ExcelUserControl).FpSpreadControl
|
|
|
|
Dim _FileName As String = Path.GetTempPath & "OutSpread.xml"
|
|
Dim _StreamFile As New FileStream(_FileName, FileMode.Create)
|
|
If View.Id = "InventoryHeader_DetailView" Then
|
|
Dim _InventoryHeader As InventoryHeader = TryCast(View.SelectedObjects(0), InventoryHeader)
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
If Not _ocur.Session.IsNewObject(_InventoryHeader) Then
|
|
If _InventoryHeader IsNot Nothing Then
|
|
If _InventoryHeader.ExcelFile IsNot Nothing Then
|
|
_InventoryHeader.ExcelFile.SaveToStream(_StreamFile)
|
|
_StreamFile.Close()
|
|
_FpSpread.Open(_FileName)
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
If View.Id = "InventoryParameters_DetailView" Then
|
|
Dim _InventoryParameters As InventoryParameters = TryCast(View.SelectedObjects(0), InventoryParameters)
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
If Not _ocur.Session.IsNewObject(_InventoryParameters) Then
|
|
If _InventoryParameters IsNot Nothing Then
|
|
If _InventoryParameters.ExcelFile IsNot Nothing Then
|
|
_InventoryParameters.ExcelFile.SaveToStream(_StreamFile)
|
|
_StreamFile.Close()
|
|
_FpSpread.Open(_FileName)
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
Private Sub InventoryHeader_DetailView_SetWorksheetTemplateXLS_Changed(sender As Object, e As DevExpress.Xpo.ObjectChangeEventArgs)
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
Dim _InventoryHeader As InventoryHeader = TryCast(View.SelectedObjects(0), InventoryHeader)
|
|
|
|
If _InventoryHeader.ExcelFile Is Nothing Then
|
|
If _InventoryHeader.InventoryParameters.ExcelFile IsNot Nothing Then
|
|
|
|
_InventoryHeader.ExcelFile = _InventoryHeader.InventoryParameters.ExcelFile
|
|
If _InventoryHeader.ExcelFile IsNot Nothing Then
|
|
|
|
Dim _FileName As String = Path.GetTempPath & "Temp.xls"
|
|
Dim _StreamFile As FileStream = Nothing
|
|
_StreamFile = File.Create(_FileName)
|
|
|
|
_InventoryHeader.ExcelFile.SaveToStream(_StreamFile)
|
|
If TryCast(View, DetailView).GetItems(Of ExcelPropertyEditor)(0).ExcelUserControl IsNot Nothing Then
|
|
_FpSpread = TryCast(View, DetailView).GetItems(Of ExcelPropertyEditor)(0).ExcelUserControl.FpSpreadControl
|
|
_StreamFile.Close()
|
|
_FpSpread.OpenExcel(_FileName)
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
Private Sub aInventoryParameters_CreateProductsListInSpread_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aInventoryParameters_CreateProductsListInSpread.Execute
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
Dim _Products_Collection As New XPCollection(Of Products)(_ocur.Session, CriteriaOperator.Parse("DangerClass<>0"))
|
|
_Products_Collection.Sorting.Add(New SortProperty("ShortName", DB.SortingDirection.Ascending))
|
|
|
|
If _FpSpread IsNot Nothing Then
|
|
_FpSpread.Reset()
|
|
|
|
_FpSpread.ActiveSheet.ColumnCount = 11
|
|
_FpSpread.ActiveSheet.RowCount = 4 + _Products_Collection.Count
|
|
_FpSpread.AllowDragFill = True
|
|
_FpSpread.AllowColumnMove = True
|
|
_FpSpread.AllowRowMove = True
|
|
|
|
LoadXLSHeader()
|
|
|
|
_FpSpread.ActiveSheet.Columns(1).AllowAutoFilter = True
|
|
'_FpSpread.ActiveSheet.GroupBarInfo.Visible = True
|
|
'_FpSpread.ActiveSheet.AllowGroup = True
|
|
|
|
Dim _RowIndex As Integer = 4 '5. sor
|
|
For Each _Products As Products In _Products_Collection
|
|
_FpSpread.ActiveSheet.Cells(_RowIndex, 0).Text = _Products.Oid.ToString
|
|
_FpSpread.ActiveSheet.Cells(_RowIndex, 1).Text = _Products.ShortName.Replace(vbNewLine, " ")
|
|
|
|
_RowIndex += 1
|
|
Next
|
|
|
|
_FpSpread.Refresh()
|
|
End If
|
|
End Sub
|
|
Private Sub LoadXLSHeader()
|
|
_FpSpread.ActiveSheet.AddSpanCell(0, 0, 1, 11)
|
|
With _FpSpread.ActiveSheet.Cells(0, 0)
|
|
.Text = "A/2 adatlap: ÜZEMADATOK-VESZÉLYES ANYAGOK"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Center
|
|
End With
|
|
|
|
_FpSpread.ActiveSheet.AddSpanCell(1, 0, 2, 1)
|
|
With _FpSpread.ActiveSheet.Cells(1, 0)
|
|
.Text = "Termék OID"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
.Row.Height = 40
|
|
End With
|
|
|
|
_FpSpread.ActiveSheet.AddSpanCell(1, 1, 2, 1)
|
|
With _FpSpread.ActiveSheet.Cells(1, 1)
|
|
.Text = "A nem nevesített veszélyes anyag megnevezése (az 1. melléklet 2. táblázat alapján)"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
|
|
_FpSpread.ActiveSheet.AddSpanCell(1, 2, 1, 4)
|
|
With _FpSpread.ActiveSheet.Cells(1, 2)
|
|
.Text = "Nemzetközileg elfogadott egyértelmû azonosítása (CAS-szám, szükség szerint IUPAC név, kereskedelmi megnevezés, empirikus formula)"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
|
|
_FpSpread.ActiveSheet.AddSpanCell(1, 6, 1, 3)
|
|
With _FpSpread.ActiveSheet.Cells(1, 6)
|
|
.Text = "A veszélyes anyag 1. melléklet 2. táblázat 1. oszlopa szerinti veszélyességi osztályba sorolása az R mondatok és az ADR szerinti osztályozás feltüntetésével"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
|
|
_FpSpread.ActiveSheet.AddSpanCell(1, 9, 2, 1)
|
|
With _FpSpread.ActiveSheet.Cells(1, 9)
|
|
.Text = "Jelen lévõ maximális mennyisége (tonna)"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
|
|
_FpSpread.ActiveSheet.AddSpanCell(1, 10, 2, 1)
|
|
With _FpSpread.ActiveSheet.Cells(1, 10)
|
|
.Text = "A besorolásnál figyelembe vett küszöbmennyiség (tonna)"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
|
|
With _FpSpread.ActiveSheet.Cells(2, 2)
|
|
.Text = "CAS szám"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
.Row.Height = 40
|
|
End With
|
|
With _FpSpread.ActiveSheet.Cells(2, 3)
|
|
.Text = "IUPAC név"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
With _FpSpread.ActiveSheet.Cells(2, 4)
|
|
.Text = "kereskedelmi megnevezés"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
With _FpSpread.ActiveSheet.Cells(2, 5)
|
|
.Text = "empirikus formula"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
With _FpSpread.ActiveSheet.Cells(2, 6)
|
|
.Text = "R mondatok"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
With _FpSpread.ActiveSheet.Cells(2, 7)
|
|
.Text = "ADR osztály"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
With _FpSpread.ActiveSheet.Cells(2, 8)
|
|
.Text = "Az 1. melléklet 2. táblázat 1. oszlopa szerinti osztályba sorolás"
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Justify
|
|
End With
|
|
|
|
For ik = 0 To 5
|
|
With _FpSpread.ActiveSheet.Cells(3, ik)
|
|
.Text = ik.ToString + "."
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Center
|
|
End With
|
|
Next
|
|
|
|
For ik = 9 To 10
|
|
With _FpSpread.ActiveSheet.Cells(3, ik)
|
|
.Text = (ik - 2).ToString + "."
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Center
|
|
End With
|
|
Next
|
|
|
|
_FpSpread.ActiveSheet.AddSpanCell(3, 6, 1, 3)
|
|
With _FpSpread.ActiveSheet.Cells(3, 6)
|
|
.Text = "6."
|
|
.HorizontalAlignment = CellHorizontalAlignment.Center
|
|
.VerticalAlignment = CellVerticalAlignment.Center
|
|
End With
|
|
|
|
End Sub
|
|
Private Sub aInventoryHeader_LoadSpreadFromParameters_Execute_1(sender As Object, e As SimpleActionExecuteEventArgs) Handles aInventoryHeader_LoadSpreadFromParameters.Execute
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
Dim _InventoryHeader As InventoryHeader = TryCast(View.SelectedObjects(0), InventoryHeader)
|
|
|
|
If _InventoryHeader IsNot Nothing Then
|
|
If _InventoryHeader.InventoryParameters IsNot Nothing Then
|
|
If _InventoryHeader.InventoryParameters.ExcelFile IsNot Nothing Then
|
|
_InventoryHeader.ExcelFile = _InventoryHeader.InventoryParameters.ExcelFile
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
_ocur.CommitChanges()
|
|
|
|
Dim _FileName As String = Path.GetTempPath & "InSpread.xls"
|
|
Dim _StreamFile As New FileStream(_FileName, FileMode.Create)
|
|
_InventoryHeader.ExcelFile.SaveToStream(_StreamFile)
|
|
_StreamFile.Close()
|
|
|
|
_FpSpread.Open(_FileName)
|
|
_FpSpread.Refresh()
|
|
|
|
End Sub
|
|
Private Sub aInventoryHeader_UpdateInventorySpread_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aInventoryHeader_UpdateInventorySpread.Execute
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
Dim _InventoryHeader As InventoryHeader = TryCast(View.SelectedObjects(0), InventoryHeader)
|
|
|
|
If _FpSpread IsNot Nothing Then
|
|
_WaitFormClass.Initwork(1, 1, _FpSpread.ActiveSheet.RowCount - 1)
|
|
For ik = 4 To _FpSpread.ActiveSheet.RowCount - 1
|
|
_WaitFormClass.DoWork()
|
|
Dim _InventorySC As InventorySC = _ocur.FindObject(Of InventorySC)(CriteriaOperator.Parse("InventoryHeader=? AND Products.Oid=?", _InventoryHeader, _FpSpread.ActiveSheet.Cells(ik, 0).Text))
|
|
If _InventorySC IsNot Nothing Then
|
|
Select Case UCase(_InventorySC.Products.Units.ShortName)
|
|
Case "KG"
|
|
_FpSpread.ActiveSheet.Cells(ik, 9).Value = Format(_InventorySC.QTT / 1000, "#,##0.0000")
|
|
Case "T"
|
|
_FpSpread.ActiveSheet.Cells(ik, 9).Value = Format(_InventorySC.QTT, "#,##0.0000")
|
|
Case "L", "I"
|
|
_FpSpread.ActiveSheet.Cells(ik, 9).Value = Format(_InventorySC.QTT / 1000, "#,##0.0000")
|
|
Case Else
|
|
_FpSpread.ActiveSheet.Cells(ik, 9).Value = Format(0, "#,##0.0000")
|
|
End Select
|
|
End If
|
|
Next
|
|
_FpSpread.Refresh()
|
|
_Waitformclass.FinalWork()
|
|
End If
|
|
End Sub
|
|
End Class
|