Mini Kabibi Habibi
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.Snap.Core.API;
using DevExpress.Utils;
using System.IO;
using DevExpress.DataAccess;
using DevExpress.DataAccess.ConnectionParameters;
using System.Data.OleDb;
using System.Windows.Forms;
using SnapDemos.nwindDataSetTableAdapters;
using DevExpress.Office;
using DevExpress.XtraRichEdit.API.Native;
namespace SnapDemos.Modules {
public abstract class SnapDocumentInitializer {
readonly string fileName;
public SnapDocumentInitializer(string fileName) {
this.fileName = fileName;
}
public string FileName { get { return fileName; } }
public virtual void Initialize(SnapDocument snapDocument) {
string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, string.Format(@"Data\{0}.snx", fileName), false);
if(File.Exists(path))
snapDocument.LoadDocument(path, SnapDocumentFormat.Snap);
}
}
public abstract class SnapDocumentInitializerUI : SnapDocumentInitializer {
public SnapDocumentInitializerUI(string fileName) : base(fileName) {
}
public override void Initialize(SnapDocument snapDocument) {
using(WaitDialogForm dlg = new WaitDialogForm("Please wait", "Loading...")) {
InitializeCore(snapDocument);
base.Initialize(snapDocument);
}
}
protected virtual void InitializeCore(SnapDocument snapDocument) {
}
}
public class MasterDetailDocumentInitializer : SnapDocumentInitializer {
public MasterDetailDocumentInitializer()
: base("MasterDetailReport") {
}
public override void Initialize(SnapDocument snapDocument) {
snapDocument.ConfigureDataConnection += new ConfigureDataConnectionEventHandler(Document_ConfigureDataConnection);
base.Initialize(snapDocument);
}
protected void Document_ConfigureDataConnection(object sender, ConfigureDataConnectionEventArgs e) {
string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
Access97ConnectionParameters parameters = (Access97ConnectionParameters)e.ConnectionParameters;
parameters.FileName = path;
}
}
public class TableOfContentsDocumentInitializer : SnapDocumentInitializer {
public TableOfContentsDocumentInitializer()
: base("TableOfContents") {
}
public override void Initialize(SnapDocument snapDocument) {
snapDocument.ConfigureDataConnection += new ConfigureDataConnectionEventHandler(Document_ConfigureDataConnection);
base.Initialize(snapDocument);
}
protected void Document_ConfigureDataConnection(object sender, ConfigureDataConnectionEventArgs e) {
string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
Access97ConnectionParameters parameters = (Access97ConnectionParameters)e.ConnectionParameters;
parameters.FileName = path;
}
}
public class IListDatasourceDocumentInitializer : SnapDocumentInitializerUI {
public IListDatasourceDocumentInitializer() : base("IListDatasource") {
}
protected override void InitializeCore(SnapDocument snapDocument) {
var dataSource = DevExpress.Demos.DataSources.FishesSource.Data;
snapDocument.DataSources.Add(new DataSourceInfo("Fishes", dataSource));
}
}
public class CalculatedFieldsDocumentInitializer : SnapDocumentInitializerUI {
public CalculatedFieldsDocumentInitializer() : base("CalculatedFields") {
}
protected override void InitializeCore(SnapDocument snapDocument) {
string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
var dataSource = new nwindDataSet();
var connection = new OleDbConnection();
connection.ConnectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path);
var orderReportsTableAdapter = new OrderReportsTableAdapter();
orderReportsTableAdapter.Connection = connection;
orderReportsTableAdapter.Fill(dataSource.OrderReports);
var bindingSource = new BindingSource();
bindingSource.DataSource = dataSource;
bindingSource.DataMember = "OrderReports";
snapDocument.DataSources.Add(new DataSourceInfo("Orders", bindingSource));
}
}
public class MultiColumnReportDocumentInitializer : SnapDocumentInitializerUI {
public MultiColumnReportDocumentInitializer()
: base("MultiColumnReport") {
}
protected override void InitializeCore(SnapDocument snapDocument) {
string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
var dataSource = new nwindDataSet();
var connection = new OleDbConnection();
connection.ConnectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path);
var customersTableAdapter = new CustomersTableAdapter();
customersTableAdapter.Connection = connection;
customersTableAdapter.Fill(dataSource.Customers);
var bindingSource = new BindingSource();
bindingSource.DataSource = dataSource;
bindingSource.DataMember = "Customers";
snapDocument.DataSource = bindingSource;
}
}
public class ChartsDocumentInitializer : SnapDocumentInitializerUI {
public ChartsDocumentInitializer() : base("Charts") {
}
protected override void InitializeCore(SnapDocument snapDocument) {
string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
var dataSource = new nwindDataSet();
var connection = new OleDbConnection();
var suppliersTableAdapter = new SuppliersTableAdapter();
connection.ConnectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path);
suppliersTableAdapter.Connection = connection;
suppliersTableAdapter.Fill(dataSource.Suppliers);
var products = new ProductsTableAdapter();
products.Connection = connection;
products.Fill(dataSource.Products);
var bindingSource = new BindingSource();
bindingSource.DataSource = dataSource;
bindingSource.DataMember = "Suppliers";
snapDocument.DataSource = bindingSource;
}
}
public class BarCodeDocumentInitializer : SnapDocumentInitializerUI {
public BarCodeDocumentInitializer() : base("BarCode") {
}
}
public class MultipleDatasourcesDocumentInitializer : SnapDocumentInitializerUI {
public MultipleDatasourcesDocumentInitializer()
: base("MultipleDatasources") {
}
protected override void InitializeCore(SnapDocument snapDocument) {
string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
var dataSource = new nwindDataSet();
var connection = new OleDbConnection();
connection.ConnectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path);
var orderReportsTableAdapter = new OrderReportsTableAdapter();
orderReportsTableAdapter.Connection = connection;
orderReportsTableAdapter.Fill(dataSource.OrderReports);
var bindingSource = new BindingSource();
bindingSource.DataSource = dataSource;
bindingSource.DataMember = "OrderReports";
var fishes = DevExpress.Demos.DataSources.FishesSource.Data;
snapDocument.BeginUpdateDataSource();
snapDocument.DataSources.Add(new DataSourceInfo("Fishes", fishes));
snapDocument.DataSources.Add(new DataSourceInfo("Orders", bindingSource));
snapDocument.EndUpdateDataSource();
var name = "IListDataSource.snx";
string filePath = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, string.Format(@"Data\{0}", name), false);
if(File.Exists(filePath))
snapDocument.LoadDocument(filePath, SnapDocumentFormat.Snap);
Field 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)) {
snapDocument.InsertDocumentContent(snapDocument.Range.End, filePath, SnapDocumentFormat.Snap);
}
snapDocument.Fields.Update();
field.Update();
}
}
}