Страница 1 из 1
Отчеты без соединения с БД
Добавлено: 30 янв 2007, 11:21
Gost
Здравствуйте! Ознакомился в Вашей системой, пока нравится. Только пока не понял одну вещь. Возможно ли создавать отчеты, не привязываясь к БД?
То есть есть класс, который передает в конструктор отчета datatable. Как отобразить эту таблицу в отчете? Возможно ли это?
Если можно, приведите небольшой пример по созданию самой обычной таблице в отчете.
Спасибо.
Отчеты без соединения с БД
Добавлено: 30 янв 2007, 11:44
Edward
Gost писал(а):Здравствуйте! Ознакомился в Вашей системой, пока нравится. Только пока не понял одну вещь. Возможно ли создавать отчеты, не привязываясь к БД?
То есть есть класс, который передает в конструктор отчета datatable. Как отобразить эту таблицу в отчете? Возможно ли это?
Да, это возможно.
Поддерживаются все объекты ADO.Net из кода.
Для этого используйте метод отчета RegData.
Код: Выделить всё
report.RegData(string name, DataTable dataTable);
name - имя таблицы в Дизайнере.
dataTable - таблица из класса Вашего приложения.
После этого в Дизайнере StimulReport.Net Вы получаете доступ к dataTable из Вашего класса.
Спасибо.
Отчеты без соединения с БД
Добавлено: 30 янв 2007, 12:03
Gost
Попробовал. DataTable не видно из дизайнера StimulReport.
Вот такой код:
Код: Выделить всё
namespace testreport
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
static public DataTable GetTable()// для примера
{
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn("#");
dt.Columns.Add(dc1);
DataColumn dc2 = new DataColumn("Name");
dt.Columns.Add(dc2);
for (int i = 0; i < 5; i++)
{
dt.Rows.Add("1","Peter");
dt.Rows.Add("2","Alex");
dt.Rows.Add("3","Jack");
}
return dt;
}
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = GetTable();
stiReport1.RegData("exams", dt); // может, регистрировать надо в файле отчета?
stiReport1.Compile();
stiReport1.Show(this);
}
}
}
Отчеты без соединения с БД
Добавлено: 30 янв 2007, 12:49
Edward
Ваш код абсолютно верный.
Если Вы дадите таблице название (к примеру MyTable)
и замените
на
то
Вы увидите в runtime (!) в Дизайнере на закладке "Dictionary" DataSource, который и будет состоять из Вашей таблицы.
Спасибо.
Отчеты без соединения с БД
Добавлено: 30 янв 2007, 18:28
Gost
Спасибо, теперь понятно.
Еще вопрос возник:
на форме есть контрол StiPreviewControl. Как загрузить в него динамически репорт?
Делаю так:
preview.Report = myReport;
Но при этом он не отображается в preview.
Отчеты без соединения с БД
Добавлено: 30 янв 2007, 19:30
Gost
Все, разобрался.
Спасибо за помощь!
Небольшое пожелание: развивайте справку к своим компонентам, иначе из-за каждой мелочи приходится мучить Вас.
Отчеты без соединения с БД
Добавлено: 31 янв 2007, 04:29
Edward
Мы сейчас интенсивно занимаемся созданием новой справочной системы по StimulReport.Net.
Спасибо.