Files
SISBusiness/SISBusiness.Module.Win/BusinessObjects/Imports/SpreadImport/SpreadImportVC.vb
T
2017-03-26 20:00:03 +02:00

148 lines
7.1 KiB
VB.net

Imports Microsoft.VisualBasic
Imports System
Imports System.Linq
Imports System.Text
Imports DevExpress.ExpressApp
Imports DevExpress.Data.Filtering
Imports System.Collections.Generic
Imports DevExpress.Persistent.Base
Imports DevExpress.ExpressApp.Utils
Imports DevExpress.ExpressApp.Layout
Imports DevExpress.ExpressApp.Actions
Imports DevExpress.ExpressApp.Editors
Imports DevExpress.ExpressApp.Templates
Imports DevExpress.Persistent.Validation
Imports DevExpress.ExpressApp.SystemModule
Imports DevExpress.ExpressApp.Model.NodeGenerators
Imports DevExpress.XtraSpreadsheet
Imports DevExpress.Persistent.BaseImpl
' For more typical usage scenarios, be sure to check out http://documentation.devexpress.com/#Xaf/clsDevExpressExpressAppViewControllertopic.
Partial Public Class SpreadImportVC
Inherits ViewController
Private _SpreadsheetControl As SpreadsheetControl
Public Sub New()
InitializeComponent()
RegisterActions(components)
' Target required Views (via the TargetXXX properties) and create their Actions.
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
' Perform various tasks depending on the target View.
If View.Id = "SpreadImport_DetailView" Then
Dim _DetailView As DetailView = TryCast(View, DetailView)
Dim _SpreadXML_ViewItem As ViewItem = _DetailView.FindItem("SpreadXML")
If _SpreadXML_ViewItem IsNot Nothing Then
AddHandler _SpreadXML_ViewItem.ControlCreated, AddressOf _SpreadXML_ViewItem_ControlCreated
End If
AddHandler Frame.GetController(Of ModificationsController).SaveAction.Executing, AddressOf SpreadImport_DetailView_SaveAction_Executing
AddHandler Frame.GetController(Of ModificationsController).SaveAndCloseAction.Executing, AddressOf SpreadImport_DetailView_SaveAction_Executing
Frame.GetController(Of NewObjectViewController).Active.SetItemValue("", False)
Frame.GetController(Of ModificationsController).SaveAndNewAction.Active.SetItemValue("", False)
End If
End Sub
Protected Overrides Sub OnViewControlsCreated()
MyBase.OnViewControlsCreated()
' Access and customize the target View control.
End Sub
Protected Overrides Sub OnDeactivated()
' Unsubscribe from previously subscribed events and release other references and resources.
MyBase.OnDeactivated()
End Sub
Private Sub _SpreadXML_ViewItem_ControlCreated(sender As Object, e As EventArgs)
Dim _SpreadImport As SpreadImport = TryCast(View.SelectedObjects(0), SpreadImport)
Dim _ItemControl As Object = TryCast(sender, ViewItem).Control
Dim _SpreadSimpleUserControl As SpreadSimpleUserControl = TryCast(_ItemControl, SpreadSimpleUserControl)
If _SpreadSimpleUserControl IsNot Nothing Then
_SpreadsheetControl = TryCast(_ItemControl, SpreadSimpleUserControl).SpreadsheetControl1
If _SpreadImport IsNot Nothing Then
If _SpreadImport.SpreadFile IsNot Nothing Then
Dim _FilePath As String = System.IO.Path.Combine(System.IO.Path.GetTempPath(), _SpreadImport.SpreadFile.FileName)
Dim _Stream As System.IO.Stream = New System.IO.FileStream(_FilePath, System.IO.FileMode.Create)
_SpreadImport.SpreadFile.SaveToStream(_Stream)
_Stream.Close()
Dim _StreamFile = New System.IO.FileStream(_FilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read)
Dim _StreamReader As New System.IO.StreamReader(_StreamFile)
Dim workbook As DevExpress.Spreadsheet.IWorkbook = _SpreadsheetControl.Document
_StreamFile.Seek(0, System.IO.SeekOrigin.Begin)
workbook.LoadDocument(_StreamFile, DevExpress.Spreadsheet.DocumentFormat.OpenXml)
_StreamFile.Close()
End If
End If
End If
End Sub
Private Sub SpreadImport_DetailView_SaveAction_Executing(sender As Object, e As ComponentModel.CancelEventArgs)
Dim _SpreadImport As SpreadImport = TryCast(View.SelectedObjects(0), SpreadImport)
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _DetailView As DetailView = TryCast(View, DetailView)
Dim _SpreadXML_ViewItem As ViewItem = _DetailView.FindItem("SpreadXML")
Dim _ItemControl As Object
Dim _SpreadSimpleUserControl As SpreadSimpleUserControl
If _SpreadXML_ViewItem IsNot Nothing Then
_ItemControl = _SpreadXML_ViewItem.Control
_SpreadSimpleUserControl = TryCast(_ItemControl, SpreadSimpleUserControl)
_SpreadsheetControl = TryCast(_ItemControl, SpreadSimpleUserControl).SpreadsheetControl1
End If
If _SpreadsheetControl IsNot Nothing Then
Dim _FilePath As String = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "IMPORT.XML")
Dim _Stream As System.IO.Stream = New System.IO.FileStream(_FilePath, System.IO.FileMode.Create)
_SpreadsheetControl.Document.SaveDocument(_Stream, DevExpress.Spreadsheet.DocumentFormat.OpenXml)
_Stream.Close()
Dim _StreamFile = New System.IO.FileStream(_FilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read)
Dim _StreamReader As New System.IO.StreamReader(_StreamFile)
_StreamFile.Seek(0, System.IO.SeekOrigin.Begin)
Dim _FileData As FileData
_FileData = _ocur.CreateObject(Of FileData)()
_FileData.LoadFromStream("IMPORT.XML", _StreamFile)
_SpreadImport.SpreadFile = _FileData
End If
End Sub
Private Sub aSpreadImport_LoadDocument_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aSpreadImport_LoadDocument.Execute
Dim openFileDialog1 As New Windows.Forms.OpenFileDialog()
openFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
openFileDialog1.Filter = "XML files (*.xml)|*.xml|All files (*.*)|*.*"
openFileDialog1.FilterIndex = 1
openFileDialog1.RestoreDirectory = True
If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
_SpreadsheetControl.LoadDocument(openFileDialog1.FileName, DevExpress.Spreadsheet.DocumentFormat.OpenXml)
End If
End Sub
Private Sub aSpreadImport_SaveDocument_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aSpreadImport_SaveDocument.Execute
Dim openFileDialog1 As New Windows.Forms.SaveFileDialog()
openFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
openFileDialog1.Filter = "XML files (*.xml)|*.xml|All files (*.*)|*.*"
openFileDialog1.FilterIndex = 1
openFileDialog1.RestoreDirectory = True
If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
_SpreadsheetControl.SaveDocument(openFileDialog1.FileName, DevExpress.Spreadsheet.DocumentFormat.OpenXml)
End If
End Sub
End Class