水晶报表 子报表 的应用

 主报表 数据源是部门表 字段:OrganID、OrganName.[字段在报表中显示]
子报表 数据源 员工工资相关表 字段:EmpID、EmpName、OrganID、OrganName、PayMoney1、PayMoney2、PayMoney3;[字段在报表中显示]

关联连接 字段为:OrganID
-----------------------------------------------
        /// <summary>
        /// 获得 水晶报表
        /// 有子报表
        ///  qsping 2007-08-23
        /// </summary>
        /// <param name="strPath">水晶报表 绝对路径</param>
        /// <param name="dtCrystalReport">父水晶报表 数据源</param>
        /// <param name="dtSonCrystalReport">子水晶报表 数据源</param>
        /// <param name="strTextObject">TextObject控件名 用“,” 隔开</param>
        /// <param name="strText">TextObject控件值 用“,” 隔开</param>
        public void GetCrystalReport(string strPath, DataTable dtCrystalReport, DataTable dtSubCrystalReport, string strSubReportName, string strTextObject, string strText)
        {
            ReportDocument Report = new ReportDocument();
            this.SetCrystalReportPath(Report, strPath);
            this.SetGlobalsReport(Report);
            this.SetCrystalReportTextObject(Report, this.GetArrStr(strTextObject), this.GetArrStr(strText));
            try
            {
                Report.SetDataSource(dtCrystalReport);
                ReportDocument subReport = Report.Subreports[strSubReportName];
                subReport.SetDataSource(dtSubCrystalReport);
            }
            catch
            {
                MessageBox.Show("数据加载出错,请联系系统管理员!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            this.ReportViewer.ReportSource = Report;
        }

----------------------------------------
参考:
程序代码  
 public partial class DocumentPrint : Form
    {
        public DocumentPrint(List<ServiceDocumentsInfo> serviceDocInfo, List<StuffInfo> stuffList, List<ManhourInfo> manhourList)
        {
            InitializeComponent();

            //维修单主报表
            ReportDocument rdDoc = new ReportDocument();
            rdDoc.Load("ServiceDocumentRPT.rpt");
            rdDoc.SetDataSource(serviceDocInfo);

            //材料子报表
            ReportDocument rdStuff = rdDoc.Subreports["StuffRPT.rpt"];
            rdStuff.SetDataSource(stuffList);

            //工时子报表
            ReportDocument rdManhour = rdDoc.Subreports["ManhourRPT.rpt"];
            rdManhour.SetDataSource(manhourList);

            crystalReportViewer1.ReportSource = rdDoc;
        }
    }
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值