Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/Reporting/VB/SnapMainDemo/Modules/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/Reporting/VB/SnapMainDemo/Modules/Initializers.vb

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