虚拟字段(计算字段)的建立方法

1.1              虚拟(计算)字段的建立

方法一         do   it   in   SQL

select   quantity,   price,   quantity   *   price   as   amount   from   yourtable

方法二         do   it   after   you   get   a   DataSet:

DataTable   t   =   DataSet1.Tables[ "yourtable "];
t.Columns.Add( "amount ",   Double.GetType());

foreach   (DataRow   dr   in   t.Rows)
{
    dr[ "amount "]   =   (double)dr[ "quantity "]   *   (double)dr[ "price "];
}

 

方法三         GridView 上直接显示:

备注:

         缺点:

              如果可以编辑的话,鼠标点击当前 cell ,显示内容将变成源字段内容,光标离开后恢复映射字段内容。

步骤:

一、 gridView CustomColumnDisplayText 事件中写需要显示内容。

二、 设置对应的不可编辑字段 AllowEdit 属性为 False

示例如下:

private void gridView_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)

        {

            if (e.Value == null || e.Value == DBNull .Value)

                return ;

 

            if (e.Column == this .gridColQSXZ)

            {

                int temp = Convert .ToInt32(e.Value);

                Qsxz dkxl = (Qsxz )temp;

                e.DisplayText = dkxl.ToString();

            }

 

            if (e.Column == this .gridColDJFZMJ_Calculated_ZD || e.Column == this .gridColMJ_Calculated_ZD)

            {

                e.DisplayText = ((decimal )e.Value * 10000).ToString();

            }

 

            if (e.Column == this .gridCol_YQLR)

            {

                string yqlr = "" ;

                Com.Puxu.Kcdj.Model.MA_DK_QLR model = ContextKcdj .GetInstance.Ma_DK_QLR_BLL.GetModel(e.Value.ToString());

                yqlr = model.YXZMC + model.YCMC + model.YZMC;

                e.DisplayText = yqlr;

            }

        }

方法四         GridView 上添加控件:

备注:

此方法有一个缺点:

         相同本表关联字段只能用一次,多次会出现冲突。如:

         根据 DK_QLR_ID QLR 表中的 YXZMC 可以,如果再取 QLR 中的其它字段,则不能取了。

解决方法:

         使用不同的 LookUpEdit 名称,然后在各自的 CustomDisplayText 事件中分别处理即可。

步骤:

一、 打开 Property Editor

二、 设置 FieldName 为本表的关联字段(例如: MJ

三、 ColumnEdit 列选择 LookUpEdit (本例取名为: repositoryItemLookUpEditMJ

并设置 NullText 列为空。

四、 LookUpEdit _CustomDisplayText 事件中写相应赋值代码。

示例如下:

            this .repositoryItemLookUpEditDJFZMJ.CustomDisplayText += new DevExpress.XtraEditors.Controls.CustomDisplayTextEventHandler (repositoryItemLookUpEditDJFZMJ_CustomDisplayText);

 

void repositoryItemLookUpEditDJFZMJ_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)

        {

            if (e.Value==null || e.Value==DBNull .Value)

            {

                return ;

            }

 

            e.DisplayText = ((decimal )e.Value * 10000).ToString();

        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值