Пытаюсь программным способом создать шаблон отчета с элементом 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);
Заранее благодарю за любые ответы.