此示例显示如何从代码打印数据 格。
此示例显示如何从代码打印数据 格。数据 格是以表格形式呈现的数据。在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();}
在下面的屏幕截图中,您可以看到示例代码的结果:
Aspose、E-iceblue、FastReport、Stimulsoft等文档/ 表图表类开发工具享超低折扣,如有需要可直接联系在线客服。
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!