彩票走势图

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

翻译|使用教程|编辑:王香|2018-08-20 10:05:46.000|阅读 406 次

概述:本文主要讲解如何在Stimulsoft Report中运行时使用业务对象创建报表

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

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

此示例显示如何使用代码中的Business Objects集合创建报表。Business Objects是一个对象类数据,使用它可以以不同的结构呈现数据:tables(表),lists(列表),arrays(数组)等,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

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP