Программное создание CrossTab
Добавлено: 15 фев 2013, 17:31
Здравствуйте!
Пытаюсь программным способом создать шаблон отчета с элементом CtossTab.
Не могли бы подсказать где найти побольше информации на эту тему? Мой код не работает.
Чего здесь не хватает?
Заранее благодарю за любые ответы.
Пытаюсь программным способом создать шаблон отчета с элементом CtossTab.
Не могли бы подсказать где найти побольше информации на эту тему? Мой код не работает.
Код: Выделить всё
var report = new StiReport();
// DataSet для отчета создается внешними средствами
if (reportData.DataSet.Tables.Count==0) CreateDataSetSql(reportData.DataSet);
report.RegData(reportData.DataSet);
report.Dictionary.Synchronize();
var page = report.Pages[0];
var crossTab = new StiCrossTab
{
DataSourceName = "ReportData",
Name = "CrossTabl1",
Page = page
};
var rowTotal1 = new StiCrossRowTotal { Name = "RowTotal1", Text = "Итого по отчету", Page = page, TextValue = "Итого по отчету" };
crossTab.Components.Add(rowTotal1);
var row1Title = new StiCrossTitle { Name = "Row1_Title", Text = "Товар", TextValue = "Товар", TypeOfComponent = "Row:Row1", Page = page };
crossTab.Components.Add(row1Title);
var colTotal1 = new StiCrossColumnTotal { Name = "ColTotal1", Text = "Итого по строке", TextValue = "Итого по строке", Page = page };
crossTab.Components.Add(colTotal1);
var leftTitle = new StiCrossTitle { Name = "LeftTitle", Text = "Заголовок отчета", TextValue = "Заголовок отчета", TypeOfComponent = "LeftTitle", Page = page };
crossTab.Components.Add(leftTitle);
var row1 = new StiCrossRow
{
Alias = "Product_Name",
Name = "Row1",
DisplayValue = new StiDisplayCrossValueExpression("{ReportData." + Stimulsoft.Report.CodeDom.StiCodeDomSerializator.ReplaceSymbols("Product_Name") + "}"),
Value = new StiCrossValueExpression("{ReportData.Product_Name}"),
Total = new StiCrossRowTotal { Name = "RowTotal1" },
Page = page
};
crossTab.Components.Add(row1);
var column1 = new StiCrossColumn
{
Alias = "Price_Region_Name",
Name = "Column1",
DisplayValue = new StiDisplayCrossValueExpression("{ReportData." + Stimulsoft.Report.CodeDom.StiCodeDomSerializator.ReplaceSymbols("Price_Region_Name") + "}"),
Value = new StiCrossValueExpression("{ReportData.Price_Region_Name}"),
Page = page
};
crossTab.Components.Add(column1);
var sum1 = new StiCrossSummary
{
Alias = "Discount_Perc",
Value = new StiCrossValueExpression("{ReportData.Discount_Perc}"),
Name = "Sum1",
Page = page
};
crossTab.Components.Add(sum1);
var rightTitle = new StiCrossTitle
{
Name = "RightTitle",
Text = "Заголовок колонок",
TextValue = "Заголовок колонок",
TypeOfComponent = "RightTitle",
Page = page
};
crossTab.Components.Add(rightTitle);
page.Components.Add(crossTab);
report.Render(false);
Заранее благодарю за любые ответы.