前两天遇到一个小需求,需要将一个报表做成主从表的形式,点击主表信息显示子表信息,刚开始也是很苦恼,后来看了许多大家的记录和经验有了思路,最终实现效果如下:

DEV实现主从表

下面也为大家提供下思路,其实实现这个最重要的是关联主表和子表的关系,首先需要在设计器里加上从表层级,如下图

DEV实现主从表

其它在代码里实现,因为我是想要实现我想要展示的从表字段,主从表并没有主外键的关系,所以我的做法是如下:

 DataTable dtSource = new DA_Report().GetQCC(txtItemCode.Text.Trim(), txtBeginDate.EditValue.ToString(), txtEndDate.EditValue.ToString());//主表数据
                DataTable dtSourceDetail = new DA_Report().GetDQCC(txtItemCode.Text.Trim(), txtBeginDate.EditValue.ToString(), txtEndDate.EditValue.ToString());//从表数据
                DataSet ds = new DataSet();
                ds.Tables.Add(dtSource);
                ds.Tables.Add(dtSourceDetail);
                ds.Tables[0].TableName = "Main";
                ds.Tables[1].TableName = "Detail";

//设定关系
                DataRelation relation = new DataRelation("明细", ds.Tables["Main"].Columns["ITEMCODE"], ds.Tables["Detail"].Columns["物料编号"]);
                ds.Relations.Add(relation);

//绑定数据
                gridControl1.DataSource = ds.Tables[0];

大概意思就是查出主表和子表显示的信息,将两个表放进DataSet里然后设定关系,这是主从表最重要的,然后写上两个表关联的字段,最后绑定数据,这样就实现拉,注意在设定关系里的关联字段一定要是你表里对应的字段,就是DataTable里有的字段,不然会报错

相关文章:

  • 2021-09-29
  • 2022-12-23
  • 2021-06-24
  • 2021-11-27
  • 2022-12-23
  • 2022-02-11
  • 2022-01-26
  • 2021-07-15
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-08
  • 2022-12-23
相关资源
相似解决方案