Создавайте отчеты на основе существующих баз данных Microsoft Access с помощью компонента отчетов List & Label. Посмотреть, как это работает, можно здесь.
Как создавать отчеты с помощью List & Label, используя данные из баз данных Microsoft Access
List & Label можно легко привязать к базам данных Microsoft Access. Это позволяет создавать комплексные отчеты на основе существующих данных Access, будь то таблицы или хранимые процедуры. Реляционные базы данных также поддерживаются из коробки, позволяя вам сверлить данные.
Образцы для привязки баз данных Microsoft Access к списку и ярлыку
В качестве основы используется OleDbConnection
из .NET Framework, который использует драйвер Jet OleDb для доступа к базе данных Microsoft Access.
Подключение к базе данных Access
string databasePath = @"c:tempNorthwind.mdb";
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + databasePath;
OleDbConnection myOleDbConnection = new OleDbConnection(connStr);
Примечание: Для 32-битных приложений можно использовать драйвер Jet OleDB. Но для 64-битного приложения этот драйвер достигает своих пределов, и необходимо найти альтернативу. Для этих целей сама компания Microsoft предлагает драйвер ACE OleDB, который поставляется в виде Microsoft Access Database Engine. Соответственно, connStr
должен быть адаптирован следующим образом:
string databasePath = @"c:tempNorthwind.mdb";
string connStr = "Provider=Microsoft.Jet.ACE.OLEDB.12.0;Data Source=" + databasePath;
OleDbConnection myOleDbConnection = new OleDbConnection(connStr);
Важно: Для успешной установки и регистрации драйвера ACE OleDB на целевой системе необходима подходящая 64-битная установка Office.
Назначение данных из базы данных Microsoft Access в список и этикетку
После создания соответствующего соединения с помощью OleDbConnection
существует несколько способов доступа к данным базы данных Microsoft Access.
Загрузка данных в набор данных ADO DataSet
List & Label получает доступ к объектам ADO с помощью AdoDataProvider:
// Connect to the Microsoft Access database
string databasePath = @"c:tempNorthwind.mdb";
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + databasePath;
OleDbConnection oleDbConn = new OleDbConnection(connStr);
oleDbConn.Open();
DataSet ds = new System.Data.DataSet();
// Add table 'Customers' to the DataSet
string sqlCustomers = "SELECT * FROM [Customers]";
OleDbCommand commandCustomers = new OleDbCommand(sqlCustomers, oleDbConn);
OleDbDataAdapter daCustomers = new OleDbDataAdapter(commandCustomers);
daCustomers.FillSchema(ds, SchemaType.Source, "Customers");
daCustomers.Fill(ds, "Customers");
// Add table 'Orders' to the DataSet
string sqlOrders = "SELECT * FROM [Orders]";
OleDbCommand commandOrders = new OleDbCommand(sqlOrders, oleDbConn);
OleDbDataAdapter daOrders = new OleDbDataAdapter(commandOrders);
daOrders.FillSchema(ds, SchemaType.Source, "Orders");
daOrders.Fill(ds, "Orders");
// Define relation between tables
string relName = "Customers2Orders";
ds.Relations.Add(new DataRelation(relName, "CustomerId", "CustomerId"));
// Create the List & Label object and attach the ADO DataSet
// and call the designer
using(ListLabel LL = new ListLabel())
{
LL.DataSource = new AdoDataProvider(ds);
LL.Design();
}
Загрузка данных напрямую как IDbCommand
С помощью DbCommandSetDataProvider List & Label имеет прямой доступ к данным через IDbCommand. Преимущество этого варианта в том, что данные не загружаются в память заранее, как в случае с DataSet, особенно при работе с очень большими базами данных, что очень важно:
// Connect to the Microsoft Access database
string databasePath = @"c:tempNorthwind.mdb";
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + databasePath;
OleDbConnection oleDbConn = new OleDbConnection(connStr);
oleDbConn.Open();
DbCommandSetDataProvider provider = new DbCommandSetDataProvider();
// Add table 'Customers' to the DataSet
string sqlCustomers = "SELECT * FROM [Customers]";
OleDbCommand commandCustomers = new OleDbCommand(sqlCustomers, oleDbConn);
provider.AddCommand(commandCustomers, "Customers");
// Add table 'Orders'
string sqlOrders = "SELECT * FROM [Orders]";
OleDbCommand commandOrders = new OleDbCommand(sqlOrders, oleDbConn);
provider.AddCommand(commandOrders , "Orders");
// Define relation between tables
string relName = "Customers2Orders";
provider.AddRelation(relName, "Customers", "Orders", "CustomerID", "CustomerID");
// Create the List & Label object and attach the ADO DataSet
// and call the designer
using(ListLabel LL = new ListLabel())
{
LL.DataSource = provider;
LL.Design();
}
Подробнее о Microsoft Access Reporting и List & Label
Также смотрите учебник по .NET для получения еще более ценной информации об использовании List & Label.
Неважно, есть ли у вас классическое настольное приложение Windows или современное веб-приложение с ASP.NET — поставщики данных List & Label можно использовать в обоих мирах.
Совет: При установке List & Label уже поставляются многочисленные примеры программирования, использующие базы данных Microsoft Access в качестве источников данных. Их также можно посмотреть в нашем репозитории GitHub.
Пожалуйста, оставьте ответ на это сообщение, если у вас есть вопросы о том, как создавать отчеты с помощью List & Label на основе данных из баз данных Microsoft Access, или если вам не хватает какой-либо информации по этой теме.
Если вам уже нравится подключать базы данных Microsoft Access в качестве источника данных к List & Label для создания удивительных отчетов, не стесняйтесь показать свою любовь сердечком к этому посту. 💖 🙂