procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);
begin
if adoquery1.FieldByName('bz').AsString ='成功' then
adoquery1.FieldByName('bz').AsString :='是'
else
adoquery1.FieldByName('bz').AsString :='否';
end;
上面这段代码怎么不行呢????

解决方案 »

  1.   

    不应该是calcfields事件吧,放到字段的ongettext中试试。
      

  2.   

    1,新建一个计算字段Test,DBGrid 中将 bz 字段隐藏掉。2,
    procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);
    begin
    if DataSet.FieldByName('bz').AsString ='成功' then
    DataSet.FieldByName('Test').AsString :='是'
    else
    DataSet.FieldByName('Test').AsString :='否';
    end;建议 全部改成 adoquery1,DataSet 程序具有更好的可移植性。