Настройка экспорта в несколько файлов

Обсуждение Stimulsoft Reports.NET
4it
Сообщения: 78
Зарегистрирован: 29 июн 2010, 04:46
Откуда: Moscow

Настройка экспорта в несколько файлов

Сообщение 4it »

Выгрузку сделал. ВЫгрузить нужно в Rtf. В результате проблемы с кодировкой, выгружается ересь какая-то. У вас также?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Настройка экспорта в несколько файлов

Сообщение Aleksey »

Спасибо,

Для экспорта в формат .rft измените код в событии "End Render" на следующий:

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

StiReport report = this;
Stimulsoft.Report.Export.StiRtfExportSettings es = new Stimulsoft.Report.Export.StiRtfExportSettings();
int index = 0;
while (index < report.RenderedPages.Count)
{
	int startPage = index;
    while ((index < report.RenderedPages.Count - 1) && (report.RenderedPages[index + 1].ExcelSheetValue == report.RenderedPages[startPage].ExcelSheetValue))
    {
        index++;
    }
    int endPage = index;
    string pageNumber = string.Format("{0}-{1}", startPage + 1, endPage + 1);
    es.PageRange = new StiPagesRange(pageNumber);
    report.ExportDocument(StiExportFormat.Rtf, tbName.Text + "Report_Page" + pageNumber + ".rtf", es);
    index++;
}
С кодировкой все нормально.

Спасибо.
4it
Сообщения: 78
Зарегистрирован: 29 июн 2010, 04:46
Откуда: Moscow

Настройка экспорта в несколько файлов

Сообщение 4it »

Большое спасибо!

Заявление: У Вас лучшая клиентская поддержка с которой я когда либо сталкивался :biggrin:
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Настройка экспорта в несколько файлов

Сообщение Aleksey »

Спасибо за Ваши добрый слова! :biggrin:

Всегда рады помочь.
Обращайтесь если понадобится какая-либо помощь.
4it
Сообщения: 78
Зарегистрирован: 29 июн 2010, 04:46
Откуда: Moscow

Настройка экспорта в несколько файлов

Сообщение 4it »

Смотрите, тут еще вот какой момент:

У меня в событии endRender используется удаление сегментов:

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

for (int index = this.RenderedPages.Count - 1; index >= 0; index--)
{
    if (this.RenderedPages[index].Components.Count == 0) this.RenderedPages.RemoveAt(index);
}
foreach (StiPage page in RenderedPages)
            {
                if (page.SegmentPerWidth > 1 || page.SegmentPerHeight > 1)
                {
                    RenderedPages.GetPage(page);
double maxX = 0;
double maxY = 0;
                    foreach (StiComponent comp in page.Components)
                    {
                        if (comp.Right > maxX) maxX = comp.Right;
                        if (comp.Bottom > maxY) maxY = comp.Bottom;
                    }
int newSegmentPerWidth = 1;
                    while ((decimal)((page.PageWidth - page.Margins.Left - page.Margins.Right) * newSegmentPerWidth) < (decimal)maxX) newSegmentPerWidth++;
int newSegmentPerHeight = 1;
                    while ((decimal)((page.PageHeight - page.Margins.Top - page.Margins.Bottom) * newSegmentPerHeight) < (decimal)maxY) newSegmentPerHeight++;
                    page.SegmentPerWidth = newSegmentPerWidth;
                    page.SegmentPerHeight = newSegmentPerHeight;
                }
            }
И в связи с этим возникает следующая ошибка:
error CS0136: Невозможно объявить локальную переменную с именем "index" в этой области действия, так как она придаст другое значение "index", который уже используется в области действия "родительский или текущий" для обозначения другого понятия
Что можно сделать?
4it
Сообщения: 78
Зарегистрирован: 29 июн 2010, 04:46
Откуда: Moscow

Настройка экспорта в несколько файлов

Сообщение 4it »

Вопрос снимается, спасибо:biggrin:
4it
Сообщения: 78
Зарегистрирован: 29 июн 2010, 04:46
Откуда: Moscow

Настройка экспорта в несколько файлов

Сообщение 4it »

Здравствуйте.

Возник такой вопрос:

Возможно ли в названии файла не указывать номер страниц, а выводить профессию доктора ({ИсточникДанных1.doctorProfession})?

Если убрать pageNumber из названия сгенерированного файла, то генерируется только один из отчетов. Профессию доктора пробовал выводить в названии и через переменную и непосредственно из источника данных, выводится для каждого файла лишь последнее значение. Я в принципе понимаю почему последнее, но по другому не получается. Это можно сделать?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Настройка экспорта в несколько файлов

Сообщение Aleksey »

Здравствуйте,

Да, попробуйте заменить следующую строку кода:

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

report.ExportDocument(StiExportFormat.Rtf, tbName.Text + "Report_Page" + pageNumber + ".rtf", es);
на

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

report.ExportDocument(StiExportFormat.Rtf, tbName.Text + "Report_" + report.RenderedPages[startPage+1].ExcelSheetValue + ".rtf", es);
Спасибо.
4it
Сообщения: 78
Зарегистрирован: 29 июн 2010, 04:46
Откуда: Moscow

Настройка экспорта в несколько файлов

Сообщение 4it »

Здравствуйте.

появилась следующая проблема.

Попытался воспроизвести ее на тестовой базе но полностью не получилось. На тестовой при экспорте все нормально.

Суть в следующем: Для первой группировки данных не работают функции новой страницы до бэнда. (Только для первой!) Все бы ничего, ртф-форматирование настраивается другим образом. Но при экспорте файл для одной профессии (в терминологии тестового отчета) разбивается на два файла, для первого доктора - один файл, для остальных - другой файл.

Кроме того при выводе профессии доктора (и не использовании в названии pageNumber) не выгрузится первая часть файла, выгрузится только вторая часть. И я так предполагаю. все из-за описанной проблемы.

Что делать?

Вложения
Бэнд должен быть с новой страницы.JPG
Бэнд должен быть с новой страницы.JPG (43.21 КБ) 3355 просмотров
ReportExportSegments_troubles.mrt
(41.46 КБ) 333 скачивания
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Настройка экспорта в несколько файлов

Сообщение Aleksey »

Здравствуйте,

Установите для данного GroupHeaderBand свойство "Skip First" в false.

Спасибо.
Ответить