没有和过dbgrideh,不知道它本身会不会提供字段的互计算功能,不依赖控件本身的话,采用以下解决办法:
计算字段,在数据集上右击->Field Editor,在Field Editor 右键->NewField,加入一个calculated类型的计算字段,然后,在数据集的OnCalcFields事件中加入如下代码:
procedure TForm1.qry1CalcFields(DataSet: TDataSet);
begin
if Dataset[a]>DataSet[b] then DataSet[计算字段]:='大'
else DataSet[计算字段]:='小';
end;
写在Sql语句中,那么DBgridEH就可以直接显示。
select a,b,c=case when a>b then 'a>b' when a
DBGrid1.Columns.Items[x].FieldName :='输入要加入的字段名';
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select col1,col2,col3,(col2-col3) as col4 from test');
Open;
end;
DBGrid1.Columns.Items[0].FieldName :='col1';
DBgrid1.Columns.Items[1].FieldName :='col2';
DBgrid1.Columns.Items[2].FieldName :='col3';
dbgrid1.Columns.Items[3].FieldName :='col4';