Mini Kabibi Habibi
Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Drawing
Imports System.Diagnostics
Imports DevExpress.XtraBars
Imports System.Globalization
Imports System.Windows.Forms
Imports DevExpress.Utils.Menu
Imports DevExpress.Spreadsheet
Imports DevExpress.XtraEditors
Imports DevExpress.XtraPrinting
Imports DevExpress.DXperience.Demos
Imports DevExpress.XtraPrintingLinks
Imports DevExpress.XtraPrinting.Control
Namespace DevExpress.Docs.Demos
Partial Public Class SpreadsheetTutorialControl
Inherits TutorialControlBase
Implements IDXMenuManager
#Region "Static"
Public Shared Function GetSaveFileName(ByVal defaulName As String) As String
Return GetSaveFileName("Xlsx files(*.xlsx)|*.xlsx|All files (*.*)|*.*", defaulName)
End Function
Public Shared Function GetSaveFileName(ByVal filter As String, ByVal defaulName As String) As String
Dim sfDialog As New SaveFileDialog()
sfDialog.Filter = filter
sfDialog.FileName = defaulName
If sfDialog.ShowDialog() <> DialogResult.OK Then
Return Nothing
End If
Return sfDialog.FileName
End Function
Public Shared Sub ShowFile(ByVal fileName As String, ByVal control As TutorialControlBase)
If (Not File.Exists(fileName)) Then
Return
End If
Dim dResult As DialogResult = XtraMessageBox.Show(control.LookAndFeel, control, String.Format("Do you want to open the resulting file?", fileName), control.TutorialName, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If dResult = DialogResult.Yes Then
Process.Start(fileName)
End If
End Sub
#End Region
#Region "Fields"
Private menu As LookAndFeelMenu
Private fMenuManager As IDXMenuManager
Private link As PrintableComponentLinkBase
Private spreadsheetTutorialPanel_Renamed As PanelControl
Private spreadsheetPreviewControl_Renamed As PrintControl
#End Region
Public Sub New()
InitializeComponent()
AddHandler fitToPageCheckEdit_Renamed.CheckedChanged, AddressOf fitToPageCheckEdit_CheckedChanged
spreadsheetPreviewControl_Renamed.PrintingSystem = New PrintingSystem()
link = New PrintableComponentLinkBase(Me.spreadsheetPreviewControl_Renamed.PrintingSystem)
link.Component = Nothing
End Sub
#Region "Properties"
Public Property DemoMainMenu() As LookAndFeelMenu
Get
Return menu
End Get
Set(ByVal value As LookAndFeelMenu)
If menu Is value Then
Return
End If
Me.menu = value
End Set
End Property
Public Property MenuManager() As IDXMenuManager
Get
Return fMenuManager
End Get
Set(ByVal value As IDXMenuManager)
fMenuManager = value
End Set
End Property
Public Overridable ReadOnly Property ShowOptions() As Boolean
Get
Return False
End Get
End Property
Protected Overridable ReadOnly Property DefaultFileName() As String
Get
Return ""
End Get
End Property
Protected Overridable ReadOnly Property DefaultSaveFileFilter() As String
Get
Return "Excel Workbook(*.xlsx)|*.xlsx|Excel 97-2003 Workbook(*.xls)|*.xls|CSV (Comma delimited)(*.csv)|*.csv|PDF(*.pdf)|*.pdf"
End Get
End Property
Protected ReadOnly Property SpreadsheetPreviewControl() As PrintControl
Get
Return spreadsheetPreviewControl_Renamed
End Get
End Property
Protected ReadOnly Property SpreadsheetTutorialPanel() As PanelControl
Get
Return spreadsheetTutorialPanel_Renamed
End Get
End Property
Protected ReadOnly Property FitToPageCheckEdit() As CheckEdit
Get
Return fitToPageCheckEdit_Renamed
End Get
End Property
#End Region
Protected Overridable Function CreateEmptyBook() As IWorkbook
Dim book As IWorkbook = New Workbook()
book.Options.Culture = CultureInfo.InvariantCulture
Return book
End Function
Public Overridable Function CreateBook() As IWorkbook
Return CreateEmptyBook()
End Function
Private Sub ShowPopupMenu(ByVal menu As DXPopupMenu, ByVal control As Control, ByVal pos As Point) Implements IDXMenuManager.ShowPopupMenu
MenuManagerHelper.ShowMenu(menu, LookAndFeel, fMenuManager, control, pos)
End Sub
Private Function Clone(ByVal newForm As Form) As IDXMenuManager Implements IDXMenuManager.Clone
Return Me
End Function
Private Sub DisposeManager() Implements IDXMenuManager.DisposeManager
End Sub
Protected Overrides Sub SetControlManager(ByVal ctrl As Control, ByVal manager As BarManager)
Dim be As BaseEdit = TryCast(ctrl, BaseEdit)
If be IsNot Nothing Then
be.MenuManager = manager
End If
End Sub
#Region "Print and Export"
Protected Sub RefreshPreview()
If spreadsheetPreviewControl_Renamed IsNot Nothing Then
Dim book As IWorkbook = CreateBook()
book.Worksheets(0).PrintOptions.FitToPage = fitToPageCheckEdit_Renamed.Checked
link.Component = book
link.CreateDocument()
End If
End Sub
#End Region
Private Sub saveButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles saveButton.Click
Dim fileName As String = GetSaveFileName(DefaultSaveFileFilter, DefaultFileName)
Dim book As IWorkbook = CreateBook()
If (Not String.IsNullOrEmpty(fileName)) Then
Dim ext As String = Path.GetExtension(fileName)
If ext = ".xls" Then
book.SaveDocument(fileName, DocumentFormat.Xls)
ElseIf ext = ".csv" Then
book.SaveDocument(fileName, DocumentFormat.Csv)
ElseIf ext = ".pdf" Then
book.ExportToPdf(fileName)
Else
book.SaveDocument(fileName, DocumentFormat.OpenXml)
End If
End If
ShowFile(fileName, Me)
End Sub
Private Sub fitToPageCheckEdit_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
RefreshPreview()
End Sub
End Class
End Namespace