Stimulsoft Reports.Net示例演示:WinForms 类别中从代码打印数据网格

此示例显示如何从代码打印数据网格。

此示例显示如何从代码打印数据网格。数据网格是以表格形式呈现的数据。Form1_Load()事件中创建并填充数据集合:

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()部分更详细地看一下该方法。首先,在字典中新建一个报表和数据源:

private void PrintDataGrid(DataGrid sender){DataView dataView = (DataView)sender.DataSource;StiReport report = new StiReport();report.ScriptLanguage = StiReportLanguageType.CSharp;// Add data to datastorereport.RegData("view", dataView);// Fill dictionaryreport.Dictionary.Synchronize();...

接下来,在报告中添加一个 Data Band 和 Header Band:

...StiPage page = report.Pages.Items[0];// Create HeaderBandStiHeaderBand headerBand = new StiHeaderBand();headerBand.Height = 0.5f;headerBand.Name = "HeaderBand";page.Components.Add(headerBand);// Create DataBandStiDataBand dataBand = new StiDataBand();dataBand.DataSourceName = "view" + dataView.Table.TableName;dataBand.Height = 0.5f;dataBand.Name = "DataBand";page.Components.Add(dataBand);...

接下来,将参考数据源字段的文本框放置在数据带上,并在标题带上放置带有数据标题的文本框:

...// Create textsDouble 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 headerStiText 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 BandStiText 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 highlightStiCondition 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 ++;}...

然后,将带有文本框的页脚带添加到报告中以显示总计值:

...// Create FooterBandStiFooterBand footerBand = new StiFooterBand();footerBand.Height = 0.5f;footerBand.Name = "FooterBand";page.Components.Add(footerBand);// Create text on footerStiText 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);...

最后,渲染报告并在查看器中显示:

...// Render without progress barreport.Render(false);report.Show();}

在下面的屏幕截图中,您可以看到示例代码的结果:

Stimulsoft Reports.Net示例演示:WinForms 类别中从代码打印数据网格


Aspose、E-iceblue、FastReport、Stimulsoft等文档/报表图表类开发工具享超低折扣,如有需要可直接联系在线客服
标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月19日
下一篇 2021年8月19日

相关推荐

发表回复

登录后才能评论