翻譯|使用教程|編輯:張瑩心|2021-09-23 13:56:58.340|閱讀 189 次
概述:此示例顯示如何從代碼打印數(shù)據(jù)網(wǎng)格。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Stimulsoft Ultimate是用于創(chuàng)建報(bào)表和儀表板的通用工具集。該產(chǎn)品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他環(huán)境的完整工具集。
Stimulsoft Reports不僅擁有強(qiáng)大的報(bào)表導(dǎo)出系統(tǒng),而且還支持多種報(bào)表導(dǎo)出格式,擁有簡單且強(qiáng)大的報(bào)表引擎。Stimulsoft Reports基本原則是,用簡單常規(guī)的方法創(chuàng)建報(bào)表,將不同的技術(shù)應(yīng)用于應(yīng)用程序。Stimulsoft Reports .NET一個(gè)基于.NET框架的報(bào)表生成器,能夠幫助你創(chuàng)建結(jié)構(gòu)、功能豐富的報(bào)表。不僅界面友好,而且使用便捷,能夠讓你輕松創(chuàng)建所有報(bào)表。
點(diǎn)擊下載Stimulsoft Reports .NET v2021.3.1最新版
此示例顯示如何從代碼打印數(shù)據(jù)網(wǎng)格。數(shù)據(jù)網(wǎng)格是以表格形式呈現(xiàn)的數(shù)據(jù)。在Form1_Load()事件中創(chuàng)建并填充數(shù)據(jù)集合:
private void Form1_Load(object sender, System.EventArgs e) { DataTable table = new DataTable("Demo"); table.Columns.Add(); table.Columns.Add(); DataRow row1 = table.NewRow(); DataRow row2 = table.NewRow(); DataRow row3 = table.NewRow(); row1.ItemArray = new string[2]{"1", "One"}; row2.ItemArray = new string[2]{"2", "Two"}; row3.ItemArray = new string[2]{"3", "Three"}; table.Rows.Add(row1); table.Rows.Add(row2); table.Rows.Add(row3); dataView1.Table = table; }讓我們分PrintDataGrid()部分更詳細(xì)地看一下該方法。首先,在字典中新建一個(gè)報(bào)表和數(shù)據(jù)源:
private void PrintDataGrid(DataGrid sender) { DataView dataView = (DataView)sender.DataSource; StiReport report = new StiReport(); report.ScriptLanguage = StiReportLanguageType.CSharp; // Add data to datastore report.RegData("view", dataView); // Fill dictionary report.Dictionary.Synchronize(); ...接下來,在報(bào)告中添加一個(gè) Data Band 和 Header Band:
... StiPage page = report.Pages.Items[0]; // Create HeaderBand StiHeaderBand headerBand = new StiHeaderBand(); headerBand.Height = 0.5f; headerBand.Name = "HeaderBand"; page.Components.Add(headerBand); // Create DataBand StiDataBand dataBand = new StiDataBand(); dataBand.DataSourceName = "view" + dataView.Table.TableName; dataBand.Height = 0.5f; dataBand.Name = "DataBand"; page.Components.Add(dataBand); ...接下來,將參考數(shù)據(jù)源字段的文本框放置在數(shù)據(jù)帶上,并在標(biāo)題帶上放置帶有數(shù)據(jù)標(biāo)題的文本框:
... // Create texts Double pos = 0; Double columnWidth = StiAlignValue.AlignToMinGrid(page.Width / dataView.Table.Columns.Count, 0.1, true); int nameIndex = 1; foreach (DataColumn column in dataView.Table.Columns) { // Create text on header StiText headerText = new StiText(new RectangleD(pos, 0, columnWidth, 0.5f)); headerText.Text.Value = column.Caption; headerText.HorAlignment = StiTextHorAlignment.Center; headerText.Name = "HeaderText" + nameIndex.ToString(); headerText.Brush = new StiSolidBrush(Color.LightGreen); headerText.Border.Side = StiBorderSides.All; headerBand.Components.Add(headerText); // Create text on Data Band StiText dataText = new StiText(new RectangleD(pos, 0, columnWidth, 0.5f)); dataText.Text.Value = "{view" + dataView.Table.TableName + "." + Stimulsoft.Report.CodeDom.StiCodeDomSerializator.ReplaceSymbols(column.ColumnName) + "}"; dataText.Name = "DataText" + nameIndex.ToString(); dataText.Border.Side = StiBorderSides.All; // Add highlight StiCondition condition = new StiCondition(); condition.BackColor = Color.CornflowerBlue; condition.TextColor = Color.Black; condition.Expression = "(Line & 1) == 1"; condition.Item = StiFilterItem.Expression; dataText.Conditions.Add(condition); dataBand.Components.Add(dataText); pos += columnWidth; nameIndex ++; } ...然后,將帶有文本框的頁腳帶添加到報(bào)告中以顯示總計(jì)值:
... // Create FooterBand StiFooterBand footerBand = new StiFooterBand(); footerBand.Height = 0.5f; footerBand.Name = "FooterBand"; page.Components.Add(footerBand); // Create text on footer StiText footerText = new StiText(new RectangleD(0, 0, page.Width, 0.5f)); footerText.Text.Value = "Count - {Count()}"; footerText.HorAlignment = StiTextHorAlignment.Right; footerText.Name = "FooterText"; footerText.Brush = new StiSolidBrush(Color.LightGreen); footerBand.Components.Add(footerText); ...最后,渲染報(bào)告并在查看器中顯示:
... // Render without progress bar report.Render(false); report.Show(); }在下面的屏幕截圖中,您可以看到示例代碼的結(jié)果:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn