【Stimulsoft Reports.WinForms教程】在运行时使用表创建一个新报表

发布时间 : 2018-08-22 10:15:27.000|阅读 472 次

概述:本文主要讲解如何在运行时使用表创建一个新报表

相关链接:

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

此示例显示如何在运行时中使用表创建简单报表。在此示例项目中,您可以为表设置一些属性。使用表 组件,您可以创建一个包含标题和总数而不包含其他波段的报表。在这种情况下,一些表行将是数据的页眉和页脚。首先,创建一个新报表并连接到数据:

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

接下来,在报表页面上添加Table组件:

...
    StiPage page = report.Pages.Items[0];
 
    //Create Table
    StiTable table = new StiTable();
    table.Name = "Table1";
    if (rbAWNone.Checked)
    table.AutoWidth = StiTableAutoWidth.None;
    else if (rbAWPage.Checked)
    table.AutoWidth = StiTableAutoWidth.Page;
    else table.AutoWidth = StiTableAutoWidth.Table;
 
    if (rbAWTNone.Checked)
    table.AutoWidthType = StiTableAutoWidthType.None;
    else if (rbAWTFullTable.Checked)
    table.AutoWidthType = StiTableAutoWidthType.FullTable;
    else table.AutoWidthType = StiTableAutoWidthType.LastColumns;
...

在表中定义多个Columns和Rows:

..
    table.ColumnCount = 3;
    table.RowCount = 3;
...

在表中定义页眉的多个行 和页脚的行:

...
    table.HeaderRowsCount = 1;
    table.FooterRowsCount = 1;
... 

定义Table组件的其他选项:

...
    table.Width = page.Width;
    table.Height = page.GridSize * 12;
    table.DataSourceName = "view" + dataView.Table.TableName;
    page.Components.Add(table);
    table.CreateCell();
    table.TableStyleFX = new StiTable27StyleFX();
    table.TableStyle = Stimulsoft.Report.Components.Table.StiTableStyle.Style59;
 
    int indexHeaderCell = 0;
    int indexDataCell = 3;
...

添加标题的文本和对单元格中数据字段的引用:

...
    foreach (DataColumn column in dataView.Table.Columns)
    {
        //Set text on header
        StiTableCell headerCell = table.Components[indexHeaderCell] as StiTableCell;
        headerCell.Text.Value = column.Caption;
        headerCell.HorAlignment = StiTextHorAlignment.Center;
        headerCell.VertAlignment = StiVertAlignment.Center;
 
        StiTableCell dataCell = table.Components[indexDataCell] as StiTableCell;
        dataCell.Text.Value = "{view" + dataView.Table.TableName + "." +
            Stimulsoft.Report.CodeDom.StiCodeDomSerializator.ReplaceSymbols(column.ColumnName) + "}";
        dataCell.Border = new StiBorder(StiBorderSides.All, Color.FromArgb(32, 178, 170), 1, StiPenStyle.Dash);
 
        indexHeaderCell++;
        indexDataCell++;
    }
 
    StiTableCell dataCheckBoxCell = table.Components[indexDataCell - 1] as StiTableCell;
    dataCheckBoxCell.CellType = StiTablceCellType.CheckBox;
...

在单元格中添加total的函数:

...
    //Set text on footer
    StiTableCell footerCell = table.Components[table.Components.Count - 1] as StiTableCell;
    footerCell.Text.Value = "Count - {Count()}";
    footerCell.Font = new Font("Arial", 15, FontStyle.Bold);
    footerCell.VertAlignment = StiVertAlignment.Center;
    footerCell.HorAlignment = StiTextHorAlignment.Center;
...

渲染报表并在查看器中显示它:

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

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

Stimulsoft

下载示例


在线
客服
微信
QQ 电话
023-68661681
返回
顶部