• <menu id="w2i4a"></menu>
  • logo Stimulsoft Reports.WinForms教程-2019

    文檔首頁>>Stimulsoft Reports.WinForms教程-2019>>【Stimulsoft Reports.WinForms教程】在運行時使用業(yè)務(wù)對象創(chuàng)建報表

    【Stimulsoft Reports.WinForms教程】在運行時使用業(yè)務(wù)對象創(chuàng)建報表


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

    此示例顯示如何使用代碼中的Business Objects集合創(chuàng)建報表。Business Objects是一個對象類數(shù)據(jù),使用它可以以不同的結(jié)構(gòu)呈現(xiàn)數(shù)據(jù):tables(表),lists(列表),arrays(數(shù)組)等,F(xiàn)illBusinessObject方法創(chuàng)建并填充數(shù)據(jù)集合:

    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"));
    }

    創(chuàng)建數(shù)據(jù),現(xiàn)在需要顯示它。首先,您應(yīng)該在Dictionary中創(chuàng)建一個新的報表和數(shù)據(jù)結(jié)構(gòu),從Business Object將數(shù)據(jù)傳輸?shù)紻ictionary:

    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];
     
    ...

    然后,您需要將組件添加到報表模板。您應(yīng)該創(chuàng)建bands Header,數(shù)據(jù)和頁腳。這些band用于放置帶有文本的文本框或?qū)usiness 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);
     
    ...

    在此之后,您可以呈現(xiàn)報表并在查看器中顯示它(或調(diào)用報表設(shè)計器):

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

    示例代碼的結(jié)果如下圖所示:

    Stimulsoft

    下載示例

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();