近来的DEV搞更多。试图寻找专业点的程序做,对这样一个小小的研究。

本篇是多么真实,现在的记录,可以通过点击这条线的子表的内容相关联的行中打开的列表。的影响,如下面的:

以下是实现过程:

1.设计器里面:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGF0YWdn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

在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

收工。

追加:AllowOnlyOneMasterRowExpanded = True  那么同一时候仅仅能展开一行,假设是false就能够随意展开。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGF0YWdn/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

假设不想显示那个通知分录的tab,能够设置ShowDetailTabs为false。 只是为毛是展开一个tab呢?是不是意味着一个主表关联多个子表的时候能够同一时候展开,我懒不试了。

再次追加:ColumnAutoWidth属性。 当子View里面想bestFitColumn的时候,须要把子表的ColumnAutoWidth设置为false。 可是假设主View的ColumnAutoWidth设置为True的时候,子表的设置将无效, 所以想把列宽都fit的话2个view都设置为false吧。

再再次追加:假设想隐藏子View中的某一列的话,加入主View事件。例如以下:

private void gridView1_MasterRowExpanded(object sender, DevExpress.XtraGrid.Views.Grid.CustomMasterRowEventArgs e)

        {

            DevExpress.XtraGrid.Views.Grid.GridView aView = gridView1.GetDetailView(e.RowHandle, e.RelationIndex) as DevExpress.XtraGrid.Views.Grid.GridView;





            if (aView != null)

            {

                aView.Columns["VoucherID"].Visible = false;    //aView就是子View。设置VID 列为隐藏

                aView.BestFitColumns();

            }

        }

版权声明:本文博主原创文章,博客,未经同意不得转载。

DEV GridView嵌套的更多相关文章

  1. Dev gridView中设置自适应列宽和日期显示格式、金额的显示格式

    在Dev GridView控件中,数据库中表数据日期都是长日期格式(yyyy-MM-dd HH:mm:ss),但显示在控件变成短日期格式(yyyy-MM-dd),金额显示要显示精确的数值, 比如80. ...

  2. dev gridview指定单元格cell获取坐标

    DevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo Info2 = gvQueryResult.GetViewInfo() as DevExpre ...

  3. Winform 中DataGridView、dev Gridview控件添加行标题

    有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) /// <summary> / ...

  4. Dev GridView行拖拽

    http://blog.csdn.net/keyrainie/article/details/8513802 http://www.cnblogs.com/qq4004229/archive/2012 ...

  5. GridView嵌套在ScrollView里只有一行的问题

    遇到这个问题 网上找到的解决办法: 方法一:就是上面说的通过计算出来ListView或者GridView中的子列高度和 进行显示:public void setListViewHeightBasedO ...

  6. dev GridView常用属性,事件

    一.属性 1.GridControl属性 //允许拖拽行 gridControl1.AllowDrop = true; 2.GridView属性 //不可编辑 gridView1.OptionsBeh ...

  7. Dev gridview新增一行自动获得焦点并打开编辑模式

    1.gridview添加一行自动获得焦点实现方式: 关键代码: GarsonZhang dt.Rows.Add("1", "2"); gridView1.Foc ...

  8. Dev GridView 获取选中分组下的所有数据行 z

    现在要在DevExpress 的GridView 中实现这样一个功能.就是判断当前的选中行是否是分组行,如果是的话就要获取该分组下的所有数据信息. 如下图(当选中红框中的分组行事.程序要获取该分组下的 ...

  9. Dev GridView RowCellClick活动MouseDown事件

    GridView可编辑.在无声的思想左键点击"进入编辑". 将GridView的OptionsColumn.AllowEdit至false离开时触发RowCellClick. 但有 ...

随机推荐

  1. HDOJ 4687 Boke and Tsukkomi 一般图最大匹配带花树+暴力

    一般图最大匹配带花树+暴力: 先算最大匹配 C1 在枚举每一条边,去掉和这条边两个端点有关的边.....再跑Edmonds得到匹配C2 假设C2+2==C1则这条边再某个最大匹配中 Boke and ...

  2. 同步特定源代码到 omni_rom源代码目录里面

    #!/bin/bash base_path="/Volumes/Android/omnirom_5.0" #此目录是我存放源代码的目录 xiaomi_device="de ...

  3. Qt中使用的编码QTextCodec::

    //如果界面上的中文依然显示乱码,那么请将main.cpp文件中的: QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); //更改为: Q ...

  4. Makefile学习(一)[第二版]

    简单介绍 1)make:利用 make 工具能够自己主动完毕编译工作.这些工作包含:假设仅改动了某几个源文件,则仅仅又一次编译这几个源文件[make通过比对对应的.c文件与.o文件的时间];假设某个头 ...

  5. repeater操作

    protected void rpRole_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ...

  6. java 线程、线程池基本应用演示样例代码回想

    java 线程.线程池基本应用演示样例代码回想 package org.rui.thread; /** * 定义任务 * * @author lenovo * */ public class Lift ...

  7. android数据访问模式:档、SharedPreferences

    android数据访问模式:档.SharedPreferences.SQLite 数据库.Content provider 文件流: 使用java IO流对文件进行读写操作,文件权限默认. 指定文件权 ...

  8. 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)

    原文:乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factor ...

  9. Thanks

    今天,突然有一种爽的感觉.是做题做到爽的感觉,晚上就不是非常强烈了,脖子疼,要断了. 中午.妈妈给我打了电话,后来才知道爸爸的嗓子都哑了.说不出话来了都,哎,这都快一个月没有下雨了.地都干得要命了.好 ...

  10. ios 多线程开发(一)简介

    简介 线程是在一个程序中并发的执行代码的方法之一.虽然有一些新的技术(operations, GCD)提供了更先进高效的并发实现,OS X和iOS同时也提供了创建和维护线程的接口. 这里将要介绍线程相 ...