Страница 1 из 2

Построение повторной таблицы с другими данными

Добавлено: 12 мар 2012, 06:18
uptrance2day
Здравствуйте
возможно не совсем корректно поставил название темы, но суть вопроса\проблемы заключается вот в чём

имеется шаблон вида:

1 страница:

заголовок страницы ( в некоторых ячейках, используются данные)
заголовок таблицы
данные
итоге страницы

2 и последующие страницы:
получаются из первой путём выключения заголовка страницы (свойтсва печатать только на первом листе)

всё компилируется нормально, далее нужно в этом же отчёта продолжать построение:
то есть:
построился наш шаблон с одними данными допустим (Users1)
далее в этом же отчёта, начинать рисовать с новой страницы такой же шаблон но уже с данными (Users2) и так далее, количество записей в Users1 и Users2 различное

сменить DataSource c Users1 на Users2 не проблема, можно реализовать в каком-нибудь евенте, возможно ли отловить момент когда данные из Users1 закончились? начать новую страницу с видом из шаблона (как тогда реализовать свойство печатать заголовок странице только на первом в этих Users2?)

спасибо

upd: если критично - чтение данных происходит из xml

Построение повторной таблицы с другими данными

Добавлено: 12 мар 2012, 08:13
Aleksey
Здравствуйте,

Пожалуйста, пришлите ваш отчет с тестовыми данными для анализа.

Спасибо.

Построение повторной таблицы с другими данными

Добавлено: 12 мар 2012, 12:20
uptrance2day
Aleksey писал(а):Здравствуйте,

Пожалуйста, пришлите ваш отчет с тестовыми данными для анализа.

Спасибо.
вот, файл

шаблон сделан примерный, хотелось бы чтоб после прочтения всех данных PipeComponent, создалась новая таблица с шапкой PipeProperties2, а в данных PipeComponents2

Построение повторной таблицы с другими данными

Добавлено: 13 мар 2012, 05:37
uptrance2day
если необходимо : изменить структуру данных к нужному виду - реально

Построение повторной таблицы с другими данными

Добавлено: 13 мар 2012, 12:39
Aleksey
Здравствуйте,

Если возможно, пришлите, пожалуйста, реальную структуру данных, или хотя бы как будут взаимосвязаны таблицы Users1, Users2 и т.д.
Возможно, в данном случае, можно будет использовать мастер-детаил отчет, как самый простой вариант.

Спасибо.


Построение повторной таблицы с другими данными

Добавлено: 14 мар 2012, 05:33
uptrance2day
Aleksey писал(а):Здравствуйте,

Если возможно, пришлите, пожалуйста, реальную структуру данных, или хотя бы как будут взаимосвязаны таблицы Users1, Users2 и т.д.
Возможно, в данном случае, можно будет использовать мастер-детаил отчет, как самый простой вариант.

Спасибо.
данные никак не связаны, будут только одинаковое количество столбцов)

Построение повторной таблицы с другими данными

Добавлено: 15 мар 2012, 10:27
Aleksey
Здравствуйте,

В данном случае, более простой вариант - это реализовать данную задачу из кода приложения следующим образом:
- регистрируем в отчет данные PipeComponent, PipeProperties
- рендерим отчет
- регистрируем в отчет данные PipeComponent2, PipeProperties2
- рендерим отчет
- продолжаем сколько есть данных
затем объединяем все отрендеренные отчеты в один и выводим результат.

Спасибо.

Построение повторной таблицы с другими данными

Добавлено: 15 мар 2012, 14:04
uptrance2day
Aleksey писал(а): затем объединяем все отрендеренные отчеты в один и выводим результат.
можно немного поподробнее как это реализовать? если можно с примерами

Построение повторной таблицы с другими данными

Добавлено: 16 мар 2012, 13:27
Aleksey
Здравствуйте,

Пожалуйста, посмотрите следующий код:

Код: Выделить всё

StiReport resultReport = new StiReport();
resultReport.Render();
resultReport.RenderedPages.Clear();

foreach (DataTable dt in data.Tables)
{
    report.RegData(dt);
    report.Render();

    foreach (StiPage page in report.RenderedPages)
    {
        resultReport.RenderedPages.Add(page);
    }
}
resultReport.Show();
Спасибо.

Построение повторной таблицы с другими данными

Добавлено: 19 мар 2012, 08:11
uptrance2day
Aleksey писал(а):Здравствуйте,

Пожалуйста, посмотрите следующий код:

Код: Выделить всё

StiReport resultReport = new StiReport();
resultReport.Render();
resultReport.RenderedPages.Clear();

foreach (DataTable dt in data.Tables)
{
    report.RegData(dt);
    report.Render();

    foreach (StiPage page in report.RenderedPages)
    {
        resultReport.RenderedPages.Add(page);
    }
}
resultReport.Show();
Спасибо.
отлично всё работает, большое спасибо!