开发业务单据报表(主从表) - MiniFramework蝇量框架 - Winform框架


开发业务单据报表(主从表) - MiniFramework蝇量框架 - Winform框架

FastReport.NET-开发框架文库

 

开发模式与CSFrameworkV5.1旗舰版一样。

参考:https://www.cscode.net/archive/csv5/1630584989.html

 

一、打印预览

开发业务单据报表(主从表) - MiniFramework蝇量框架 - Winform框架

 

点【打印】按钮,弹出打印预览界面:

开发业务单据报表(主从表) - MiniFramework蝇量框架 - Winform框架

 

二、【打印】按钮事件

C# 全选
/// <summary>
        /// 打印按钮事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ucOperate_OnPrintData(object sender, UserControls.ButtonEventArgs e)
        {
            QueryPO input = null;

            //打印当前单据
            if (gvSummary.FocusedRowHandle >= 0)
            {
                var row = gvSummary.GetFocusedDataRow();
                input = new QueryPO();
                input.docNo1 = row[tb_PO.PONO].ToStringEx();
                input.docNo2 = row[tb_PO.PONO].ToStringEx();
            }
            else //打印所有单据
            {
                input = new QueryPO();
            }

            new rptPurchaseOrder().ShowReport(input, this);
        }

 

三、rptPurchaseOrder.cs 报表类

 

C# 全选
/// <summary>
    /// 采购订单(PO)报表,主从表报表
    /// </summary>
    public class rptPurchaseOrder
    {
        /// <summary>
        /// 打印预览
        /// </summary>
        /// <param name="owner"></param>
        /// <param name="input">查询条件</param>
        public void ShowReport(QueryPO input, Form owner)
        {
            var report = InitializeReport(input);
            frmPreview.Preview(report, owner);
        }

        private Report InitializeReport(QueryPO input)
        {
            //打印主从表数据
            string file = Application.StartupPath + @"\Reports\rptPO.frx";
            Report rptPO = new Report();
            rptPO.Load(file);//加载报表模板文件

            //取报表数据
            DataSet ds = new bllPO().QueryReport(input);

            ds.Tables[0].TableName = "M";//换个短的别名
            ds.Tables[1].TableName = "D";//换个短的别名

            rptPO.RegisterData(ds.Tables[0], "M");  //注册数据源,主表
            rptPO.RegisterData(ds.Tables[1], "D"); //注册数据源,从表

            //给DataBand(主表数据)绑定数据源
            DataBand masterBand = rptPO.FindObject("Data1") as DataBand;
            masterBand.DataSource = rptPO.GetDataSource("M"); //主表

            //给DataBand(明细数据)绑定数据源
            DataBand detailBand = rptPO.FindObject("Data2") as DataBand;
            detailBand.DataSource = rptPO.GetDataSource("D"); //明细表        

            //重要!!给明细表设置主外键关系!
            detailBand.Relation = new Relation();
            detailBand.Relation.ParentColumns = new string[] { "PONO" };
            detailBand.Relation.ParentDataSource = rptPO.GetDataSource("M"); //主表
            detailBand.Relation.ChildColumns = new string[] { "PONO" };
            detailBand.Relation.ChildDataSource = rptPO.GetDataSource("D"); //明细表 

            (rptPO.FindObject("Text52") as RichObject).Text = Loginer.Current.UserId;
            return rptPO;
        }
    }

四、rptPO.frx 报表文件

 

开发业务单据报表(主从表) - MiniFramework蝇量框架 - Winform框架

 

开发业务单据报表(主从表) - MiniFramework蝇量框架 - Winform框架

 

 

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
评论列表

发表评论

评论内容
昵称:
关联文章

开发业务单据报表主从) - MiniFramework框架 - Winform框架
新增业务单据主从窗体 - MiniFramework框架 - Winform框架
开发基础资料报表(单) - MiniFramework框架 - Winform框架
新增业务模块 - MiniFramework框架 - Winform框架
MiniFramework框架 Visual Studio解决方案
关于我们 - MiniFramework框架 - Winform框架
MiniFramework开发框架新手指南开发指南
新增基础资料单窗体 - MiniFramework框架 - Winform框架
开发数据访问层DAL - MiniFramework框架 - Winform框架
登录界面设计 - MiniFramework框架 - Winform框架
主窗体导航菜单NavbarControl 介绍 - MiniFramework框架 - Winform框架
集成自动升级程序 - MiniFramework框架 - Winform框架
客户端自动升级 - MiniFramework框架 - Winform框架
MiniFramework开发框架技术架构介绍
角色管理/分配权限 - MiniFramework框架 - Winform框架
系统参数配置 - MiniFramework框架 - Winform框架
DataBinder类详解 - Winform MiniFramework框架
修改密码 - MiniFramework框架 - Winform框架
用户管理 - MiniFramework框架 - Winform框架
主窗体体系架构 / 逻辑架构 - MiniFramework框架 - Winform框架