85 lines
3.2 KiB
VB.net
85 lines
3.2 KiB
VB.net
Imports DevExpress.XtraSpreadsheet.Services
|
|
Imports DevExpress.XtraSpreadsheet
|
|
Imports DevExpress.XtraSpreadsheet.Commands
|
|
Imports DevExpress.ExpressApp
|
|
|
|
Public Class CustomCommandFactoryServise
|
|
Inherits SpreadsheetCommandFactoryServiceWrapper
|
|
Private Property Control() As SpreadsheetControl
|
|
Get
|
|
Return m_Control
|
|
End Get
|
|
Set(value As SpreadsheetControl)
|
|
m_Control = value
|
|
End Set
|
|
End Property
|
|
Private Property View As DevExpress.ExpressApp.View
|
|
Get
|
|
Return m_View
|
|
End Get
|
|
Set(value As DevExpress.ExpressApp.View)
|
|
m_View = value
|
|
End Set
|
|
End Property
|
|
Private m_Control As SpreadsheetControl
|
|
Private m_View As DevExpress.ExpressApp.View
|
|
Public Sub New(service As ISpreadsheetCommandFactoryService, _control As SpreadsheetControl, _view As DevExpress.ExpressApp.View)
|
|
MyBase.New(service)
|
|
Control = _control
|
|
View = _view
|
|
End Sub
|
|
|
|
Public Overrides Function CreateCommand(id As SpreadsheetCommandId) As SpreadsheetCommand
|
|
Dim command As SpreadsheetCommand = MyBase.CreateCommand(id)
|
|
If id = SpreadsheetCommandId.FileSave Then
|
|
Return New SaveCommand(Control, View)
|
|
End If
|
|
Return command
|
|
End Function
|
|
End Class
|
|
|
|
Public Class SaveCommand
|
|
Inherits SaveDocumentCommand
|
|
Private m_View As DevExpress.ExpressApp.View
|
|
Private m_Control As SpreadsheetControl
|
|
Private Property SpreadControl() As SpreadsheetControl
|
|
Get
|
|
Return m_Control
|
|
End Get
|
|
Set(value As SpreadsheetControl)
|
|
m_Control = value
|
|
End Set
|
|
End Property
|
|
Private Property View As DevExpress.ExpressApp.View
|
|
Get
|
|
Return m_View
|
|
End Get
|
|
Set(value As DevExpress.ExpressApp.View)
|
|
m_View = value
|
|
End Set
|
|
End Property
|
|
Public Sub New(control As ISpreadsheetControl, _view As DevExpress.ExpressApp.View)
|
|
MyBase.New(control)
|
|
SpreadControl = control
|
|
View = _view
|
|
End Sub
|
|
Public Overrides Sub Execute()
|
|
Dim _OpenSpreadDocument_Popup = TryCast(View.SelectedObjects(0), OpenSpreadDocument_Popup)
|
|
Dim _BusinessDirectory As BusinessDirectory = _OpenSpreadDocument_Popup.BusinessDirectory
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
|
|
Dim _FilePath As String = System.IO.Path.Combine(System.IO.Path.GetTempPath(), _OpenSpreadDocument_Popup.BusinessDirectory.FileData.FileName)
|
|
Dim _Stream As System.IO.Stream = New System.IO.FileStream(_FilePath, System.IO.FileMode.Create)
|
|
SpreadControl.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)
|
|
|
|
_OpenSpreadDocument_Popup.BusinessDirectory.FileData.LoadFromStream(_OpenSpreadDocument_Popup.BusinessDirectory.FileData.FileName, _StreamFile)
|
|
_ocur.CommitChanges()
|
|
|
|
End Sub
|
|
End Class
|