首页 > 代码库 > DEV GridView嵌套

DEV GridView嵌套

最近DEV搞的多,想把程序做得看起来专业点,所以稍微研究了一下。

本篇只记录如何实现在列表里面点击某一行可以打开这一行关联的子表内容。效果如下:


下面是实现过程:

1.设计器里面:


在MainView下面新建一个EntryView(create a new level) 这样这个gridControl里面就有2个gridView了。

然后打开你的设计器(Run Designer)

如果你只是测试,或者甲方对美丑没要求时,对,你神马都不需要设置了。


2.绑定数据

和正常的绑定一样,gridControl.Datasource = DataSet.table[0]; 

不同的是,这个DataSet里面要有2个表,table1和table2需要是主从表的关系(主表有个字段是从表的外键,形成关系),比如:就不比如了,有点懒。

存储过程:

select OutStockPlan.* from T_OutStock_Plan  as OutStockPlan where OutStockPlan.BillDate< @maxDate_Invo and OutStockPlan.BillDate> @minDate_Invo
   
select ospe.* from T_OutStock_Plan as osp
left join T_OutStock_Plan_Entry ospe on osp.OnlyID=ospe.VoucherID
where osp.BillDate< @maxDate_Invo and osp.BillDate> @minDate_Invo

一个存储过程同时返回2个表,第一条语句返回主表的行,第二条语句返回这些主表信息对应的子表行。只要不嫌麻烦,你要分开执行也可以,我还是有点懒。

Access执行:

 WMSDS relationDS = this._WMSAccess.Select_OutPlanAndEntry_Relation(dateS, dateE); //执行上面的存储过程,返回一个DataSet,包含table1和table2


 DataRelation dr = new DataRelation("通知分录", new DataColumn[] { relationDS.T_OutStock_Plan.Columns["OnlyID"] }, new DataColumn[] { relationDS.T_OutStock_Plan_Entry.Columns["VoucherID"] });   //new一个表关系,绑定2个表的键
          

 relationDS.Relations.Add(dr);    //添加表关系到dataset

前台绑定:
 grid_VoucherPlanList.DataSource = relationDS.Tables["T_OutStock_Plan"]; //把主表当成datasource绑定给gridControl


收工。




DEV GridView嵌套