Mini Kabibi Habibi
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports DevExpress.Snap.Core.API
Imports DevExpress.Utils
Imports System.IO
Imports DevExpress.DataAccess
Imports DevExpress.DataAccess.ConnectionParameters
Imports System.Data.OleDb
Imports System.Windows.Forms
Imports SnapDemos.nwindDataSetTableAdapters
Imports DevExpress.Office
Imports DevExpress.XtraRichEdit.API.Native
Namespace SnapDemos.Modules
Public MustInherit Class SnapDocumentInitializer
Private ReadOnly fileName_Renamed As String
Public Sub New(ByVal fileName As String)
Me.fileName_Renamed = fileName
End Sub
Public ReadOnly Property FileName() As String
Get
Return fileName_Renamed
End Get
End Property
Public Overridable Sub Initialize(ByVal snapDocument As SnapDocument)
Dim path As String = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, String.Format("Data\{0}.snx", fileName_Renamed), False)
If File.Exists(path) Then
snapDocument.LoadDocument(path, SnapDocumentFormat.Snap)
End If
End Sub
End Class
Public MustInherit Class SnapDocumentInitializerUI
Inherits SnapDocumentInitializer
Public Sub New(ByVal fileName As String)
MyBase.New(fileName)
End Sub
Public Overrides Sub Initialize(ByVal snapDocument As SnapDocument)
Using dlg As New WaitDialogForm("Please wait", "Loading...")
InitializeCore(snapDocument)
MyBase.Initialize(snapDocument)
End Using
End Sub
Protected Overridable Sub InitializeCore(ByVal snapDocument As SnapDocument)
End Sub
End Class
Public Class MasterDetailDocumentInitializer
Inherits SnapDocumentInitializer
Public Sub New()
MyBase.New("MasterDetailReport")
End Sub
Public Overrides Sub Initialize(ByVal snapDocument As SnapDocument)
AddHandler snapDocument.ConfigureDataConnection, AddressOf Document_ConfigureDataConnection
MyBase.Initialize(snapDocument)
End Sub
Protected Sub Document_ConfigureDataConnection(ByVal sender As Object, ByVal e As ConfigureDataConnectionEventArgs)
Dim path As String = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, "Data\nwind.mdb", False)
Dim parameters As Access97ConnectionParameters = CType(e.ConnectionParameters, Access97ConnectionParameters)
parameters.FileName = path
End Sub
End Class
Public Class TableOfContentsDocumentInitializer
Inherits SnapDocumentInitializer
Public Sub New()
MyBase.New("TableOfContents")
End Sub
Public Overrides Sub Initialize(ByVal snapDocument As SnapDocument)
AddHandler snapDocument.ConfigureDataConnection, AddressOf Document_ConfigureDataConnection
MyBase.Initialize(snapDocument)
End Sub
Protected Sub Document_ConfigureDataConnection(ByVal sender As Object, ByVal e As ConfigureDataConnectionEventArgs)
Dim path As String = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, "Data\nwind.mdb", False)
Dim parameters As Access97ConnectionParameters = CType(e.ConnectionParameters, Access97ConnectionParameters)
parameters.FileName = path
End Sub
End Class
Public Class IListDatasourceDocumentInitializer
Inherits SnapDocumentInitializerUI
Public Sub New()
MyBase.New("IListDatasource")
End Sub
Protected Overrides Sub InitializeCore(ByVal snapDocument As SnapDocument)
Dim dataSource = DevExpress.Demos.DataSources.FishesSource.Data
snapDocument.DataSources.Add(New DataSourceInfo("Fishes", dataSource))
End Sub
End Class
Public Class CalculatedFieldsDocumentInitializer
Inherits SnapDocumentInitializerUI
Public Sub New()
MyBase.New("CalculatedFields")
End Sub
Protected Overrides Sub InitializeCore(ByVal snapDocument As SnapDocument)
Dim path As String = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, "Data\nwind.mdb", False)
Dim dataSource = New nwindDataSet()
Dim connection = New OleDbConnection()
connection.ConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path)
Dim orderReportsTableAdapter = New OrderReportsTableAdapter()
orderReportsTableAdapter.Connection = connection
orderReportsTableAdapter.Fill(dataSource.OrderReports)
Dim bindingSource = New BindingSource()
bindingSource.DataSource = dataSource
bindingSource.DataMember = "OrderReports"
snapDocument.DataSources.Add(New DataSourceInfo("Orders", bindingSource))
End Sub
End Class
Public Class MultiColumnReportDocumentInitializer
Inherits SnapDocumentInitializerUI
Public Sub New()
MyBase.New("MultiColumnReport")
End Sub
Protected Overrides Sub InitializeCore(ByVal snapDocument As SnapDocument)
Dim path As String = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, "Data\nwind.mdb", False)
Dim dataSource = New nwindDataSet()
Dim connection = New OleDbConnection()
connection.ConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path)
Dim customersTableAdapter = New CustomersTableAdapter()
customersTableAdapter.Connection = connection
customersTableAdapter.Fill(dataSource.Customers)
Dim bindingSource = New BindingSource()
bindingSource.DataSource = dataSource
bindingSource.DataMember = "Customers"
snapDocument.DataSource = bindingSource
End Sub
End Class
Public Class ChartsDocumentInitializer
Inherits SnapDocumentInitializerUI
Public Sub New()
MyBase.New("Charts")
End Sub
Protected Overrides Sub InitializeCore(ByVal snapDocument As SnapDocument)
Dim path As String = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, "Data\nwind.mdb", False)
Dim dataSource = New nwindDataSet()
Dim connection = New OleDbConnection()
Dim suppliersTableAdapter = New SuppliersTableAdapter()
connection.ConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path)
suppliersTableAdapter.Connection = connection
suppliersTableAdapter.Fill(dataSource.Suppliers)
Dim products = New ProductsTableAdapter()
products.Connection = connection
products.Fill(dataSource.Products)
Dim bindingSource = New BindingSource()
bindingSource.DataSource = dataSource
bindingSource.DataMember = "Suppliers"
snapDocument.DataSource = bindingSource
End Sub
End Class
Public Class BarCodeDocumentInitializer
Inherits SnapDocumentInitializerUI
Public Sub New()
MyBase.New("BarCode")
End Sub
End Class
Public Class MultipleDatasourcesDocumentInitializer
Inherits SnapDocumentInitializerUI
Public Sub New()
MyBase.New("MultipleDatasources")
End Sub
Protected Overrides Sub InitializeCore(ByVal snapDocument As SnapDocument)
Dim path As String = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, "Data\nwind.mdb", False)
Dim dataSource = New nwindDataSet()
Dim connection = New OleDbConnection()
connection.ConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path)
Dim orderReportsTableAdapter = New OrderReportsTableAdapter()
orderReportsTableAdapter.Connection = connection
orderReportsTableAdapter.Fill(dataSource.OrderReports)
Dim bindingSource = New BindingSource()
bindingSource.DataSource = dataSource
bindingSource.DataMember = "OrderReports"
Dim fishes = DevExpress.Demos.DataSources.FishesSource.Data
snapDocument.BeginUpdateDataSource()
snapDocument.DataSources.Add(New DataSourceInfo("Fishes", fishes))
snapDocument.DataSources.Add(New DataSourceInfo("Orders", bindingSource))
snapDocument.EndUpdateDataSource()
Dim name = "IListDataSource.snx"
Dim filePath As String = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, String.Format("Data\{0}", name), False)
If File.Exists(filePath) Then
snapDocument.LoadDocument(filePath, SnapDocumentFormat.Snap)
End If
Dim field As Field = snapDocument.Fields.Add(snapDocument.Range.Start, "TOC \o \f tocID \h")
snapDocument.InsertText(field.Range.End, Characters.PageBreak.ToString())
snapDocument.InsertText(snapDocument.Range.End, Characters.PageBreak.ToString())
name = "CalculatedFields.snx"
filePath = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, String.Format("Data\{0}", name), False)
If File.Exists(filePath) Then
snapDocument.InsertDocumentContent(snapDocument.Range.End, filePath, SnapDocumentFormat.Snap)
End If
snapDocument.Fields.Update()
field.Update()
End Sub
End Class
End Namespace