Генерация отчёта из кода
Добавлено: 26 июл 2012, 13:09
Передо мной стоит задача написать отчёт, в котором есть таблица и две диаграммы. Все данные для таблицы и диаграмм берутся из кода, специально сделал DataTable, чтобы из стимулсофтовских библиотек было удобней работать. Возникает проблема, что я не понимаю, как делать отчёты динамически, без визуального шаблона (в таблице переменное количество столбцов). Никаких особо помогающих мне примеров не нашёл ни в доке, ни в интернете, а методом научного тыка ничего не получается. Последняя версия того, что я пытаюсь сделать, выглядит так:
И этот код не работает(ArgumentOutOfRangeException), видимо в силу того, что я совсем не понимаю, как что устроено. Буду очень рад получить помощь кодом / ссылками на человечные маны / примеры исходников
Код: Выделить всё
StiReport report = new StiReport();
report.RegData(mrm);
report.Dictionary.Synchronize();
StiPage page = report.Pages[0];
StiHeaderBand headerBand = new StiHeaderBand();
headerBand.Height = 0.5;
headerBand.Name = "HeaderBand";
page.Components.Add(headerBand);
StiText headerText = new StiText(new RectangleD(0, 0, 5, 0.5));
headerText.Text = "Отчёт по анализу породы";
headerText.HorAlignment = StiTextHorAlignment.Center;
headerText.Name = "HeaderText";
headerText.Brush = new StiSolidBrush(System.Drawing.Color.LightGreen);
headerBand.Components.Add(headerText);
StiTable table = new StiTable();
table.Name = "TM";
table.ColumnCount = mrm.Columns.Count;
table.RowCount = mrm.Rows.Count;
table.Width = page.Width;
table.Height = page.GridSize * 12;
table.DataSourceName = String.Format("{0}", mrm.TableName);
page.Components.Add(table);
report.ShowWithWpf();