234 lines
13 KiB
VB.net
234 lines
13 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 System.IO
|
|
Imports DevExpress.Persistent.BaseImpl
|
|
Imports DevExpress.Xpo
|
|
Imports DevExpress.ExpressApp.Editors
|
|
|
|
Public Class WorksheetVC
|
|
Inherits DevExpress.ExpressApp.ViewController
|
|
Private _FpSpread As FpSpread
|
|
Public Sub New()
|
|
MyBase.New()
|
|
|
|
'This call is required by the Component Designer.
|
|
InitializeComponent()
|
|
RegisterActions(components)
|
|
|
|
End Sub
|
|
Protected Overrides Sub OnActivated()
|
|
MyBase.OnActivated()
|
|
If View.Id = "WorkSheet_Header_DetailView" Then
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAction.Executing, AddressOf SaveAction_Executing
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Executing, AddressOf SaveAction_Executing
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAndNewAction.Executing, AddressOf SaveAction_Executing
|
|
Dim _WorkSheet_Header As WorkSheet_Header = TryCast(View.SelectedObjects(0), WorkSheet_Header)
|
|
AddHandler _WorkSheet_Header.Changed, AddressOf SetWorksheetTemplateXLS_Changed
|
|
|
|
End If
|
|
If View.Id = "WorkSheetType_DetailView" Then
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAction.Executing, AddressOf SaveAction_Executing
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Executing, AddressOf SaveAction_Executing
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAndNewAction.Executing, AddressOf SaveAction_Executing
|
|
End If
|
|
End Sub
|
|
Protected Overrides Sub OnDeactivated()
|
|
MyBase.OnDeactivated()
|
|
If View.Id = "WorkSheet_Header_DetailView" Then
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAction.Executing, AddressOf SaveAction_Executing
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Executing, AddressOf SaveAction_Executing
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAndNewAction.Executing, AddressOf SaveAction_Executing
|
|
Dim _WorkSheet_Header As WorkSheet_Header = TryCast(View.SelectedObjects(0), WorkSheet_Header)
|
|
RemoveHandler _WorkSheet_Header.Changed, AddressOf SetWorksheetTemplateXLS_Changed
|
|
End If
|
|
If View.Id = "WorkSheetType_DetailView" Then
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAction.Executing, AddressOf SaveAction_Executing
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Executing, AddressOf SaveAction_Executing
|
|
RemoveHandler Frame.GetController(Of ModificationsController)().SaveAndNewAction.Executing, AddressOf SaveAction_Executing
|
|
End If
|
|
End Sub
|
|
Private Sub ExcelControlViewItem_ControlCreated(ByVal sender As Object, ByVal e As EventArgs)
|
|
Dim itemControl As Object = (CType(sender, ViewItem)).Control
|
|
|
|
_FpSpread = TryCast(itemControl, ExcelUserControl).FpSpreadControl
|
|
|
|
If View.Id = "WorkSheet_Header_DetailView" Then
|
|
Dim _FileName As String = Path.GetTempPath & "OutSpread.xml"
|
|
Dim _StreamFile As New FileStream(_FileName, FileMode.Create)
|
|
Dim _WorkSheet_Header As WorkSheet_Header = TryCast(View.SelectedObjects(0), WorkSheet_Header)
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
If _ocur.Session.IsNewObject(_WorkSheet_Header) = False Then
|
|
If _WorkSheet_Header IsNot Nothing Then
|
|
If _WorkSheet_Header.ExcelFile IsNot Nothing Then
|
|
_WorkSheet_Header.ExcelFile.SaveToStream(_StreamFile)
|
|
_StreamFile.Close()
|
|
_FpSpread.Open(_FileName)
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
If View.Id = "WorkSheetType_DetailView" Then
|
|
Dim _FileName As String = Path.GetTempPath & "OutSpread.xml"
|
|
Dim _StreamFile As New FileStream(_FileName, FileMode.Create)
|
|
Dim _WorkSheetType As WorkSheetType = TryCast(View.SelectedObjects(0), WorkSheetType)
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
If _ocur.Session.IsNewObject(_WorkSheetType) = False Then
|
|
If _WorkSheetType IsNot Nothing Then
|
|
If _WorkSheetType.ExcelFile IsNot Nothing Then
|
|
_WorkSheetType.ExcelFile.SaveToStream(_StreamFile)
|
|
_StreamFile.Close()
|
|
_FpSpread.Open(_FileName)
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
Protected Overrides Sub OnViewControlsCreated()
|
|
MyBase.OnViewControlsCreated()
|
|
If View.Id = "WorkSheet_Header_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
|
|
If View.Id = "WorkSheetType_DetailView" Then
|
|
Dim _DetailView As DetailView = TryCast(View, DetailView)
|
|
Dim _ExcelControlViewItem As ViewItem
|
|
If _DetailView IsNot Nothing 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 Sub
|
|
Sub SaveAction_Executing(sender As Object, e As System.ComponentModel.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 = "WorkSheet_Header_DetailView" Then
|
|
Dim _WorkSheet_Header As WorkSheet_Header = TryCast(View.SelectedObjects(0), WorkSheet_Header)
|
|
If _WorkSheet_Header IsNot Nothing Then
|
|
If _FpSpread IsNot Nothing Then
|
|
If _WorkSheet_Header.DocumentNumber <> "" And _WorkSheet_Header.DocumentNumber IsNot Nothing Then
|
|
If _WorkSheet_Header.WorkSheetType.WorkSheetTypeExcelParam.Count > 0 Then
|
|
SetDatatoFpSpread(_WorkSheet_Header.WorkSheetType.WorkSheetTypeExcelParam)
|
|
End If
|
|
_FpSpread.Save(_StreamFile, False)
|
|
_StreamFile.Close()
|
|
Dim _StreamFile2 As New FileStream(_FileName, FileMode.Open)
|
|
_WorkSheet_Header.ExcelFile = New FileData(_ocur.Session)
|
|
_WorkSheet_Header.ExcelFile.LoadFromStream("Excel worksheet", _StreamFile2)
|
|
_WorkSheet_Header.Save()
|
|
_StreamFile2.Close()
|
|
End If
|
|
Else
|
|
If _FpSpread IsNot Nothing Then
|
|
_WorkSheet_Header.WorkSheetType.ExcelFile.SaveToStream(_StreamFile)
|
|
_StreamFile.Close()
|
|
_FpSpread.Open(_FileName)
|
|
If _WorkSheet_Header.WorkSheetType.WorkSheetTypeExcelParam.Count > 0 Then
|
|
SetDatatoFpSpread(_WorkSheet_Header.WorkSheetType.WorkSheetTypeExcelParam)
|
|
End If
|
|
Dim _StreamFile2 As New FileStream(_FileName, FileMode.Open)
|
|
_WorkSheet_Header.ExcelFile = New FileData(_ocur.Session)
|
|
_WorkSheet_Header.ExcelFile.LoadFromStream("Excel worksheet", _StreamFile2)
|
|
_WorkSheet_Header.Save()
|
|
_StreamFile2.Close()
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
If View.Id = "WorkSheetType_DetailView" Then
|
|
Dim _WorkSheetType As WorkSheetType = TryCast(View.SelectedObjects(0), WorkSheetType)
|
|
If _WorkSheetType IsNot Nothing Then
|
|
If _FpSpread IsNot Nothing Then
|
|
_FpSpread.Save(_StreamFile, False)
|
|
_StreamFile.Close()
|
|
Dim _StreamFile2 As New FileStream(_FileName, FileMode.Open)
|
|
_WorkSheetType.ExcelFile = New FileData(_ocur.Session)
|
|
_WorkSheetType.ExcelFile.LoadFromStream("Excel worksheet", _StreamFile2)
|
|
_WorkSheetType.Save()
|
|
_StreamFile2.Close()
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
Private Sub SetWorksheetTemplateXLS_Changed(sender As Object, e As ObjectChangeEventArgs)
|
|
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
Dim _WorkSheet_Header As WorkSheet_Header = TryCast(View.SelectedObjects(0), WorkSheet_Header)
|
|
|
|
If _WorkSheet_Header.CustomersFrom IsNot Nothing And _WorkSheet_Header.WorkSheetType IsNot Nothing And _WorkSheet_Header.ExcelFile Is Nothing Then
|
|
|
|
_WorkSheet_Header.ExcelFile = _WorkSheet_Header.WorkSheetType.ExcelFile
|
|
If _WorkSheet_Header.ExcelFile IsNot Nothing Then
|
|
|
|
Dim _FileName As String = Path.GetTempPath & "Temp.xls"
|
|
Dim _StreamFile As FileStream = Nothing
|
|
_StreamFile = File.Create(_FileName)
|
|
|
|
_WorkSheet_Header.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 Sub
|
|
|
|
Private Sub SetDatatoFpSpread(xPCollection As DevExpress.Xpo.XPCollection(Of WorkSheetTypeExcelParam))
|
|
Dim _WorkSheet_Header As WorkSheet_Header = TryCast(View.SelectedObjects(0), WorkSheet_Header)
|
|
Dim _Type As System.Type = GetType(WorkSheet_Header)
|
|
Dim _PropertyInfo As System.Reflection.PropertyInfo() = _Type.GetProperties
|
|
If _FpSpread Is Nothing Then Exit Sub
|
|
For Each _WorkSheetTypeExcelParam As WorkSheetTypeExcelParam In xPCollection
|
|
For Each _PropertyInfo_ACT As System.Reflection.PropertyInfo In _PropertyInfo
|
|
If _WorkSheetTypeExcelParam.PropertiesInfo = _PropertyInfo_ACT.Name Then
|
|
Select Case _PropertyInfo_ACT.Name
|
|
Case "DocumentNumber"
|
|
_FpSpread.ActiveSheet.Cells(_WorkSheetTypeExcelParam.XLSCellAdress).Locked = True
|
|
_FpSpread.ActiveSheet.Cells(_WorkSheetTypeExcelParam.XLSCellAdress).TabStop = False
|
|
If _WorkSheet_Header.DocumentNumber IsNot Nothing Or _WorkSheet_Header.DocumentNumber <> "" Then
|
|
_FpSpread.ActiveSheet.Cells(_WorkSheetTypeExcelParam.XLSCellAdress).Text = _WorkSheet_Header.DocumentNumber.ToString
|
|
Else
|
|
_FpSpread.ActiveSheet.Cells(_WorkSheetTypeExcelParam.XLSCellAdress).Text = ""
|
|
End If
|
|
Exit For
|
|
Case "Customers"
|
|
_FpSpread.ActiveSheet.Cells(_WorkSheetTypeExcelParam.XLSCellAdress).Locked = True
|
|
_FpSpread.ActiveSheet.Cells(_WorkSheetTypeExcelParam.XLSCellAdress).TabStop = False
|
|
_FpSpread.ActiveSheet.Cells(_WorkSheetTypeExcelParam.XLSCellAdress).Text = _WorkSheet_Header.Customers.FullName.ToString
|
|
Exit For
|
|
Case "DateExecution"
|
|
_FpSpread.ActiveSheet.Cells(_WorkSheetTypeExcelParam.XLSCellAdress).Locked = True
|
|
_FpSpread.ActiveSheet.Cells(_WorkSheetTypeExcelParam.XLSCellAdress).TabStop = False
|
|
_FpSpread.ActiveSheet.Cells(_WorkSheetTypeExcelParam.XLSCellAdress).Text = _WorkSheet_Header.DateExecution.ToString
|
|
Exit For
|
|
End Select
|
|
End If
|
|
Next
|
|
Next
|
|
End Sub
|
|
|
|
|
|
End Class
|