自定义xtraGrid mater/ detail 数据结构显示

 

自定义xtraGrid mater/ detail 数据结构显示(转)

 

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色

xtraGrid 本身支持DataSet master/detail的数据直接帮定.可以参看其文档,

当然也可以继承接口:DevExpress.Data.IRelationList  定义自己的数据源.

还有可以动态来帮定detail的数据.- 通过事件触发的方式.

根据今天我的探索,写一点动态帮定经验.

我有两个实体类

1. orderItem 继承了myCollectionBase(来之于CollectionBase)

2. item (明细类)

[DBTableAttr("SalesOrder")]

    public class orderItem : myCollectionBase

    {

        public orderItem()

        {

        }

        public bool FoundFlag

        {

            get

            {

                if (this.Count > 0)

                    return true;

                else

                    return false;

            }

        }

     

        [DBColumnAttr("ordersn")]

        public String OrderSn

        {

            get { return _orderSn; }

            set { _orderSn = value; }

        }

        [DBColumnAttr("OrderApplyDate")]

        public Object OrderApplyDate

        {

            get { return _orderApplyDate; }

            set { _orderApplyDate = value; }

        }

        [DBColumnAttr("DeliveryLocation")]

        public String DeliveryLocation

        {

            get { return _deliveryLocation; }

            set { _deliveryLocation = value; }

        }

  

       

        private String _orderSn ="";

        private Object _orderApplyDate;

        private String _deliveryLocation ="";

        //private bool _foundFlag = false;

        class item#region class item

        [DBTableAttr("SalesOrder_Detail")]

        public class item

        {

 

            [DBColumnAttr("OrderItemId")]

            public int  OrderItemId

            {

                get { return _orderItemId; }

                set { _orderItemId = value; }

            }

            [DBColumnAttr("OrderSn")]

            public String OrderSn

            {

                get { return _orderSn; }

                set { _orderSn = value; }

            }

            [DBColumnAttr("ProductMaterialCode")]

            public String ProductMaterialCode

            {

                get { return _productMaterialCode; }

                set { _productMaterialCode = value; }

            }

            [DBColumnAttr("ProductName")]

            public String ProductName

            {

                get { return _productName; }

                set { _productName = value; }

            }

            [DBColumnAttr("ProductSpec")]

            public String ProductSpec

            {

                get { return _productSpec; }

                set { _productSpec = value; }

            }

            [DBColumnAttr("Qty")]

            public int  Qty

            {

                get { return _qty; }

                set { _qty = value; }

            }

            [DBColumnAttr("SuggestionDeliveryDate")]

            public Object SuggestionDeliveryDate

            {

                get { return _suggestionDeliveryDate; }

                set { _suggestionDeliveryDate = value; }

            }

            [DBColumnAttr("ConfirmDate")]

            public Object ConfirmDate

            {

                get { return _confirmDate; }

                set { _confirmDate = value; }

            }

            [DBColumnAttr("IsConfirm")]

            public bool  IsConfirm

            {

                get { return _isConfirm; }

                set { _isConfirm = value; }

            }

            [DBColumnAttr("Confirmer")]

            public String Confirmer

            {

                get { return _confirmer; }

                set { _confirmer = value; }

            }

 

            private int _orderItemId;

            private String _orderSn;

            private String _productMaterialCode;

            private String _productName;

            private String _productSpec;

            private int _qty;

            private Object _suggestionDeliveryDate;

            private Object _confirmDate;

            private bool _isConfirm;

            private String _confirmer;

        }

        #endregion

    }

master的数据源也是一个myCollection对象 : _orders

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色//获取并帮定master数据源的代码

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色try

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色            自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色{

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色                orderItem ot = _orderBiz.GetOrderInfoByOrderSn(ordersn, true);

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色                _orders.Add(ot);

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色                //MessageBox.Show(_orders.Count.ToString());

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色                gridControl1.DataSource = _orders;

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色                gridControl1.RefreshDataSource();

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色                

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色            }

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色            catch (Exception ex)

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色            自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色{

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色                MessageBox.Show(String.Format(" 出错: {0}",ex.Message) );

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色            }

detail数据源则是_orders[i] ,它本身也是一个Collection对象.

先用设计器把想显示的数据列设计好

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色

gridControls 都必然有一个MainView,主视图,你可以通过设计器修改主视图,我就设定gridView1为它的主视图(见上图).

接着通过Create a new level 来创建一个新级别,所有的级别都比MainView至少低一个级别.

我把第二级别定义为orderItems而它使用orderDetail视图来实现数据.

MasterRowGetRelationCount  这个事件只要定义e.RelationCount = 2; 就可以了,这样在界面上才可以看到数据前有+号.

这个事件主要是定义gridView1的关联级别是那一个(注意是orderItems,而不是orderDetail)

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色        private void gridView1_MasterRowGetRelationName(object sender, DevExpress.XtraGrid.Views.Grid.MasterRowGetRelationNameEventArgs e)

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色        自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色{

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色            e.RelationName = "orderItems";

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色        }

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色 private void gridView1_MasterRowGetChildList(object sender, DevExpress.XtraGrid.Views.Grid.MasterRowGetChildListEventArgs e)

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色        自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色{

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色            e.ChildList = (Fiberxon.DataAccess.myCollectionBase)_orders[gridView1.GetDataSourceRowIndex(e.RowHandle)];

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色//为什么不是下面这个?大家考虑一下(提示:排序自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色.)

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色//   e.ChildList = (Fiberxon.DataAccess.myCollectionBase)_orders[e.RowHandle];

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色        }

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色private void gridView1_MasterRowEmpty(object sender, DevExpress.XtraGrid.Views.Grid.MasterRowEmptyEventArgs e)

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色        自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色{

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色//没有这个,则+号是虚的,无法点开

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色            e.IsEmpty = false;

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色            

自定义xtraGrid mater/ detail 数据结构显示(转) - jht_1999 - 纯黑色        }

完成了.运行试试看.

 

统计功能

选中某一列(ID),SummaryItem属性,->设置SummaryType为:count(记录个数)、sum(总和)、Max(该列最大值)......,->再设置DisPlayFormat格式为:static text{0:format specifier} static text其中format specifier可以分别设置为E1、n0、c2、x8,其中代表格式如下:

c2 : $1,234,00

n0 : 1,234

E1 : 1.2E + 003

 

VB.NET

DevExpress.XtraGrid.Views.Grid.GridView

Options

---optionsCustomization.AllowFilter 是否全部过滤

|

-optionsSelection

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值