Настройка экспорта в несколько файлов
Добавлено: 01 окт 2010, 09:45
				
				Выгрузку сделал. ВЫгрузить нужно в Rtf. В результате проблемы с кодировкой, выгружается ересь какая-то. У вас также?
			Создание отчетов и дашбордов в ASP.NET, ASP.NET MVC, .NET Core, Blazor, Angular, PHP, Python, WPF, JavaScript, и Java приложениях и сервисах.
https://forum.stimulsoft.ru/
Код: Выделить всё
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++;
}Код: Выделить всё
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", который уже используется в области действия "родительский или текущий" для обозначения другого понятия
Код: Выделить всё
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);