【Stimulsoft Reports.WinForms教程】在运行时使用业务对象创建 表

【下载Stimulsoft Reports.Ultimate最新版本】

此示例显示如何使用代码中的Business Objects集合创建 表,Business Objects是一个对象类数据,使用它可以以不同的结构呈现数据:表,列表,数组等,FillBusinessObject方法创建并填充数据集合:

private ArrayList list = null;private void FillBusinessObject(){    list = new ArrayList();    list.Add(new BusinessEntity("name1", "alias1"));    list.Add(new BusinessEntity("name2", "alias2"));    list.Add(new BusinessEntity("name3", "alias3"));}

创建数据,现在需要显示它,首先,在dictionary中创建一个新的 表和数据结构,从Business Object将数据传输到dictionary:

private void PrintDataGrid(DataGrid sender){    StiReport report = new StiReport();    report.ScriptLanguage = StiReportLanguageType.CSharp;    //Add data to datastore    report.RegData("MyList", list);    //Fill dictionary    report.Dictionary.Synchronize();    StiPage page = report.Pages.Items[0];...

将组件添加到 表模板,创建bands Header,数据和页脚,这些band用于放置带有文本的文本框或对Business Object字段的引用:

...    //Create HeaderBand    StiHeaderBand headerBand = new StiHeaderBand();    headerBand.Name = "HeaderBand";    page.Components.Add(headerBand);    //Create Databand    StiDataBand dataBand = new StiDataBand();    dataBand.DataSourceName = "MyList";    dataBand.Height = 0.5f;    dataBand.Name = "DataBand";    page.Components.Add(dataBand);    StiDataSource dataSource = report.Dictionary.DataSources[0];    //Create texts    Double pos = 0;    Double columnWidth = StiAlignValue.AlignToMinGrid(page.Width / dataSource.Columns.Count, 0.1, true);    int nameIndex = 1;    foreach (StiDataColumn column in dataSource.Columns)    {        if (column.Name == "_ID" || column.Name == "_Current")continue;        //Create text on header        StiText headerText = new StiText(new RectangleD(pos, 0, columnWidth, 0.5f));        headerText.Text.Value = column.Name;        headerText.HorAlignment = StiTextHorAlignment.Center;        headerText.Name = "HeaderText" + nameIndex.ToString();        headerText.Brush = new StiSolidBrush(Color.MediumSeaGreen);        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 = "{MyList." + column.Name + "}";        dataText.Name = "DataText" + nameIndex.ToString();        dataText.Border.Side = StiBorderSides.All;        dataBand.Components.Add(dataText);        pos += columnWidth;        nameIndex ++;    }    //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);...

在此之后,您可以呈现 表并在查看器中显示它(或调用 表设计器):

...    //Render without progress bar    report.Render(false);    report.Show();    //For checking created report you can uncomment this line    //report.Design();}

示例代码的结果如下图所示:

Stimulsoft

下载示例

标签: 表StimulsoftWinForms

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年7月19日
下一篇 2018年7月19日

相关推荐

发表回复

登录后才能评论