• DevExpress如何创建主从报表


    1、新建XtraReport

    • 右键Insert Detail Report
    • 结构如下图image

    2、创建数据源

    private DataSet GetData()
    {
    	DataSet ds = new DataSet();
    	string sqlMaster = $"select t.presc_date,t.presc_no, t.name,t.sex ,t.charge_type,t.costs from drug_presc_master t where t.presc_date between to_date('2019-08-17','yyyy-MM-dd') and to_date('2019-08-18','yyyy-MM-dd')";
    	DataTable dtMaster = DbHelperOracle.Query(sqlMaster).Tables[0];
    	dtMaster.TableName = "Master";
    	string sqlDetal = $"select t.presc_date,t.presc_no, t.drug_name,t.drug_spec,t.firm_id,t.administration,t.item_no ,t.quantity,t.costs from drug_presc_detail t where t.presc_date between to_date('2019-08-17','yyyy-MM-dd') and to_date('2019-08-18','yyyy-MM-dd')";
    	DataTable dtDetail = DbHelperOracle.Query(sqlDetal).Tables[0];
    	dtMaster.TableName = "Master";
    	dtDetail.TableName = "Detail";
    	ds.Tables.Add(dtMaster.Copy());
    	ds.Tables.Add(dtDetail.Copy());
    
    	// 给数据集建立主从关系
    	DataColumn masterColumnDate = ds.Tables["Master"].Columns["presc_date"];
    	DataColumn masterColumnNo = ds.Tables["Master"].Columns["presc_no"];
    
    	DataColumn detailColumnDate = ds.Tables["Detail"].Columns["presc_date"];
    	DataColumn detailColumnNo = ds.Tables["Detail"].Columns["presc_no"];
    	DataColumn[] dcMaster = new DataColumn[] { masterColumnDate, masterColumnNo };
    	DataColumn[] dcDetail = new DataColumn[] { detailColumnDate, detailColumnNo };
    	DataRelation relDate = new DataRelation("relationCol", dcMaster, dcDetail);
    
    	ds.Relations.Add(relDate);
    	return ds;
    }
    

    3、给报表设置数据源

    public XtraReport1()
    {
    	InitializeComponent();
    	DataSet ds = GetData();
    	// 绑定主表
    	this.DataSource = ds;
    	this.DataMember = "Master";
    
    	// 制定从表成员
    	DetailReport.DataMember = "relationCol";
    	// 绑定从表
    	DetailReport.DataSource = ds;
    }
    

    4、打印预览

    private void BtnPrint_Click(object sender, EventArgs e)
    {            
    	// 打印预览
    	ReportPrintTool tool = new ReportPrintTool(new XtraReport1());
    	tool.ShowPreviewDialog();
    }
    
  • 相关阅读:
    mysql 语法
    mycat 配置简介
    redis sentinel 配置
    Spark SQL 读到的记录数与 hive 读到的不一致
    HDP3.1 中 YRAN 和 MR2 的内存大小配置的计算方式
    在 windows 下搭建 IDEA + Spark 连接 Hive 的环境
    HDP3.1 中配置 YARN 的 timeline server 使用外部的 HBase
    大规模使用 Apache Kafka 的20个最佳实践
    卸载mac版本的GlobalProtect
    js解决约瑟夫问题
  • 原文地址:https://www.cnblogs.com/his365/p/16251019.html
Copyright © 2020-2023  润新知