翻譯|使用教程|編輯:王香|2018-08-24 10:44:48.000|閱讀 661 次
概述:本文主要講解Stimulsoft在運行時使用交叉表創建報表
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
【下載Stimulsoft Reports.Ultimate最新版本】
此示例顯示如何使用代碼中的交叉表組件創建報表,Сross-Tab是Business Analysis的工具,這是一個特殊組件,用于處理,分組和匯總數據源中的數據,結果以表格的形式呈現,要從代碼創建交叉表,需要創建一個主要的交叉表組件:
#region CrossTab Stimulsoft.Report.CrossTab.StiCrossTab crossTab1 = new Stimulsoft.Report.CrossTab.StiCrossTab(); crossTab1.ClientRectangle = new Stimulsoft.Base.Drawing.RectangleD(1.8, 4.6, 14.6, 13); crossTab1.DataSourceName = "Categories"; crossTab1.Name = "CrossTab1"; ...
交叉表是一組單元格,由行和列列表組成,此外,交叉表組件具有每行和每列的總單元格和總和,現在將行,列和總單元格添加到創建的Cross-Tab組件:
... Stimulsoft.Report.CrossTab.StiCrossRowTotal crossTab1_RowTotal1 = new Stimulsoft.Report.CrossTab.StiCrossRowTotal(); crossTab1_RowTotal1.Guid = "416a93a6cbff4f24929c07006f5f4c21"; crossTab1_RowTotal1.Name = "CrossTab1_RowTotal1"; crossTab1_RowTotal1.Text.Value = "Total"; Stimulsoft.Report.CrossTab.StiCrossTitle crossTab1_Row1_Title = new Stimulsoft.Report.CrossTab.StiCrossTitle(); crossTab1_Row1_Title.Name = "CrossTab1_Row1_Title"; crossTab1_Row1_Title.TypeOfComponent = "Row:CrossTab1_Row1"; crossTab1_Row1_Title.Text.Value = "CategoryID"; Stimulsoft.Report.CrossTab.StiCrossColumnTotal crossTab1_ColTotal1 = new Stimulsoft.Report.CrossTab.StiCrossColumnTotal(); crossTab1_ColTotal1.Guid = "9e5a67edfe87448e96ebcf75e4ef19c4"; crossTab1_ColTotal1.Name = "CrossTab1_ColTotal1"; crossTab1_ColTotal1.Text.Value = "Total"; ...
交叉表中顯示的值和總計的值可能不同,可以使用DisplayValue.Value屬性設置要在單元格中顯示的值,可以使用Row1.Value.Value屬性設置要匯總的值,還需要為左右交叉表列設置標題,定義交叉表的 Data columns數據列和標題:
... Stimulsoft.Report.CrossTab.StiCrossTitle crossTab1_LeftTitle = new Stimulsoft.Report.CrossTab.StiCrossTitle(); crossTab1_LeftTitle.Guid = "a4a019be008042c9a4c4b604e041ceba"; crossTab1_LeftTitle.Name = "CrossTab1_LeftTitle"; crossTab1_LeftTitle.TypeOfComponent = "LeftTitle"; crossTab1_LeftTitle.Text.Value = "Categories"; Stimulsoft.Report.CrossTab.StiCrossRow crossTab1_Row1 = new Stimulsoft.Report.CrossTab.StiCrossRow(); crossTab1_Row1.Alias = "CategoryID"; crossTab1_Row1.Guid = "7f0d8b9785504d009e6afe47f70a74d3"; crossTab1_Row1.Name = "CrossTab1_Row1"; crossTab1_Row1.TotalGuid = "416a93a6cbff4f24929c07006f5f4c21"; crossTab1_Row1.DisplayValue.Value = "{Categories.CategoryID}"; crossTab1_Row1.Value.Value = "{Categories.CategoryID}"; Stimulsoft.Report.CrossTab.StiCrossColumn crossTab1_Column1 = new Stimulsoft.Report.CrossTab.StiCrossColumn(); crossTab1_Column1.Alias = "CategoryName"; crossTab1_Column1.Guid = "fc86b73eb9694091b62b55fce6041715"; crossTab1_Column1.Name = "CrossTab1_Column1"; crossTab1_Column1.TotalGuid = "9e5a67edfe87448e96ebcf75e4ef19c4"; crossTab1_Column1.DisplayValue.Value = "{Categories.CategoryName}"; crossTab1_Column1.Value.Value = "{Categories.CategoryName}"; Stimulsoft.Report.CrossTab.StiCrossSummary crossTab1_Sum1 = new Stimulsoft.Report.CrossTab.StiCrossSummary(); crossTab1_Sum1.Alias = "Description"; crossTab1_Sum1.Guid = "ec4c270655bf49a58766bf36a2b21c5c"; crossTab1_Sum1.Name = "CrossTab1_Sum1"; crossTab1_Sum1.Summary = Stimulsoft.Report.CrossTab.Core.StiSummaryType.None; crossTab1_Sum1.Value.Value = "{Categories.Description}"; Stimulsoft.Report.CrossTab.StiCrossTitle crossTab1_RightTitle = new Stimulsoft.Report.CrossTab.StiCrossTitle(); crossTab1_RightTitle.Guid = "43929f3151c248b6b4e07b0a8ea44f93"; crossTab1_RightTitle.Name = "CrossTab1_RightTitle"; crossTab1_RightTitle.TypeOfComponent = "RightTitle"; crossTab1_RightTitle.Text.Value = "CategoryName"; #endregion
該的button1_Click方法讀取XML數據,登記在新的報表,并增加了交叉表prevously創建:
private void button1_Click(object sender, EventArgs e) { var data = new DataSet(); data.ReadXmlSchema("..\\..\\Data\\Demo.xsd"); data.ReadXml("..\\..\\Data\\Demo.xml"); var report = new StiReport(); report.RegData("Demo", data); report.Dictionary.Synchronize(); #region CrossTab ... #endregion report.Pages[0].Components.Add(crossTab1); crossTab1.Components.AddRange(new Stimulsoft.Report.Components.StiComponent[] { crossTab1_RowTotal1, crossTab1_Row1_Title, crossTab1_ColTotal1, crossTab1_LeftTitle, crossTab1_Row1, crossTab1_Column1, crossTab1_Sum1, crossTab1_RightTitle}); report.Show(); }
示例代碼的結果如下圖所示:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn