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();
}