zoukankan      html  css  js  c++  java
  • FastReport使用DataSet作数据源

    1、打开FastReport的设计器,

    2、选择【File】-》【New】 新建FastReport模板。

    3、选择【View】-》【Data】,显示如下,导出Dictionary,保存。

    4、编辑导出的.frd文件,编辑完后保存,再导入。

    (1)  TableDataSource 是数据源节点。

    (2)  Name是DataSet对象的Table的表名。

    (3)  Column是Table的列,模板绑定数据时,使用Column的Name属性。如下:

    <?xml version="1.0" encoding="utf-8"?>

    <Dictionary>

    <TableDataSource Name="Table1" ReferenceName="Data.Table1" DataType="System.Int32" Enabled="true">

     <Column Name="姓名" DataType="System.String" PropName="Column"/>

     <Column Name="密码" DataType="System.String" PropName="Column"/> 

    </TableDataSource>

    </Dictionary>

    5、编辑模板,添加一个Table控件。

    第一行直接双击输入文本;

    第二行直接将右边的数据源托到单元格中;

    设置边框、字体。

    6、

    添加事件后台方法

    如下图,选中Table1,在事件ManualBuild的后面双击,添加下面的代码:

    // 控件Table1的构建事件

        private void Table1_ManualBuild(object sender, EventArgs e)

        {

            DataSourceBase data1 = Report.GetDataSource("Table1"); // 获取DataSet中表名为Table1的数据源

            data1.Init(); // 初始化

           

            Table1.PrintRow(0); // 控件Table1打印第0行

            Table1.PrintColumns(); // 每打印一行,都要调用 PrintColumn或PrintColumns

         

            while(data1.HasMoreRows) // 打印重复循环的行

            {

                Table1.PrintRow(1);

                Table1.PrintColumns();

                data1.Next(); // 读取下一行

            }

        }

    说明:

    (1)   Table控件是从第0行开始的。

    (2)   绑定数据的重复行,算作一行。

    (3)   输出行之前,要先调用Init() 方法,当有两个数据源,比如data1和data2,data1又是data2的父数据源,需要把data1当做参数,如 data2.Init(data1);

    (4)   每打印一行,都要调用 PrintColumn或PrintColumns

     

     部分winform调用代码:

            /// <summary>
            /// 报表
            /// </summary>
            private FastReport.Report FReport;
            /// <summary>
            /// 数据源
            /// </summary>
            private DataSet FDataSet;
            /// <summary>
            /// 模板地址
            /// </summary>
            private string _reportFolder = Application.StartupPath + "\ReportMd\";
    
    
    
    FReport = new FastReport.Report();
    FReport.Preview = preview1;//preview1是private FastReport.Preview.PreviewControl preview1; 
    string reportName = _reportFolder + "rpBalance.frx";
    string sql = "SELECT a,b,c FROM table";
    FDataSet = DBUtility.DbHelperSQL.Query(sql);
    FDataSet.Tables[0].TableName = "Table1";//数据源名称
    FReport.Load(reportName);
    FReport.RegisterData(FDataSet);
    FReport.Parameters[0].Value = FDataSet.Tables[0].Rows.Count.ToString();//参数
    FReport.Prepare();
    FReport.ShowPrepared();
  • 相关阅读:
    [杭电_HDU] 2013
    动态调整线程数的python爬虫代码分享
    wampserver 配置的几个坑(雾
    wampserver apache 403无权限访问 You don't have permission to access /index.html on this server
    [爬坑日记] 安卓模拟器1903蓝屏 没开hyper-v
    [单片机] ESP8266 开机自动透传
    [操作系统] 死锁预防和死锁避免
    [linux] 手机Deploy linux 桌面中文乱码
    XHTML基础
    JDBC_c3p0连接池
  • 原文地址:https://www.cnblogs.com/xxaxx/p/6208504.html
Copyright © 2011-2022 走看看