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

收工。

时间: 2024-08-26 16:11:18

DEV GridView嵌套的相关文章

Dev GridView 绑定List&lt;T&gt;、BindingList &lt;T&gt;、BindingSource

今天听到同事处理数据结构的时候特意处理为了 BindingList<T>,据说可以直接绑定到Dev GridView上,于是测试了一下: 1.在Dev GridView中新增三列,三列的FieldName分别对应与FormItem类对应:ItemKey.Name.Enable 具体类代码如下: public class FormItem { /// <summary> /// 标识 /// </summary> public string ItemKey { get;

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

在Dev GridView控件中,数据库中表数据日期都是长日期格式(yyyy-MM-dd HH:mm:ss),但显示在控件变成短日期格式(yyyy-MM-dd),金额显示要显示精确的数值, 比如80.00,90.15等,但在 dev gridView中只是显示80,90 1.解决日期显示问题的代码: 设置日期的displayformat,editFormat,EditMask /// <summary>        /// 设置时间显示格式        /// </summary&g

Listview或者GridView嵌套在ScrollView中只显示一行item解决方法。

页面里有ListView(GridView)和一些固定布局让他们一起在整个屏幕上滚动方法: (1)自定义ListView(GridView),重写onMeasure()方法,我以GridView为例(ListView只需要extends ListView)具体代码如下: package top.ant.view; import android.content.Context; import android.util.AttributeSet; import android.widget.Grid

Dev GridView RowCellClick事件与MouseDown事件

GridView处于可编辑状态,左键点击默认为"进入编辑". 将GridView的OptionBehavior-Editable设置为false后左键可触发RowCellClick. 但有时候,既希望GridView可以进行编译,又希望可以触发[单元格的点击事件],比如有需求要求在某列单元格上单击可以弹出窗体,选择数据并返回到GridView上,并且允许手动在GridView上修改或者输入,那应该怎么处理呢? 用GridView的MouseDown事件,具体代码如下: private

自动为DEV GridView控件添加SizeChanged事件

实现gdv设置的抽象对象,不用每个gdv控件都添加sizechanged事件,只需执行gdc绑定sql函数,在其中会自动添加SizeChanged事件. //2016.5.13 by sngk //根据控件大小自动调整GridView列宽模式,尽量使列充满 //2016.11.19 实现自动添加sizechanged事件 //该函数只执行一次,在赋值时 public static void BestFitGridViewColumnsWidth(DevExpress.XtraGrid.GridC

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

现在要在DevExpress 的GridView 中实现这样一个功能.就是判断当前的选中行是否是分组行,如果是的话就要获取该分组下的所有数据信息. 如下图(当选中红框中的分组行事.程序要获取该分组下的所有数据) 实现代码如下: List<int> _gridViewRowIndexs = new List<int>(); //存储GridView 中选中的行索引 private void Test() { int[] rows = gridView1.GetSelectedRows

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

遇到这个问题 网上找到的解决办法: 方法一:就是上面说的通过计算出来ListView或者GridView中的子列高度和 进行显示:public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i =

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

1.gridview添加一行自动获得焦点实现方式: 关键代码: GarsonZhang dt.Rows.Add("1", "2"); gridView1.FocusedRowHandle = gridView1.RowCount - 1; gridView1.FocusedColumn = gridColumn2; 效果: 2.使新增的行自动开启编辑模式,既所在焦点单元格显示闪动的光标 关键代码: GarsonZhang gridView1.ShowEditorBy

dev GridView常用属性,事件

一.属性 1.GridControl属性 //允许拖拽行 gridControl1.AllowDrop = true; 2.GridView属性 //不可编辑 gridView1.OptionsBehavior.Editable = false; //只读 gridView1.OptionsBehavior.ReadOnly = false; //可选择多行,使用Ctrl,Shift键等 gridView1.OptionsSelection.MultiSelect = true; //允许单元格