if DataSet.FieldByName('PauseDate').AsString<>'' then
if DataSet.FieldByName('ContinueDate').AsString<>'' then
DataSet.FieldByName('ZTTS').AsInteger:=DateUtils.DaysBetween(DataSet.FieldByName('PauseDate').AsDateTime,DataSet.FieldByName('ContinueDate').AsDateTime)
else
DataSet.FieldByName('ZTTS').AsInteger:=DateUtils.DaysBetween(DataSet.FieldByName('PauseDate').AsDateTime,SysSrv.SysService.Time)
else
DataSet.FieldByName('ZTTS').AsInteger:=0;
下面是我实现的代码,供参考
其中RQ是日期字段,LSZD1是临时字段
procedure TYWXX1.DataSetBZSJJ1CalcFields(DataSet: TDataSet);
begin
if DataSet.UpdatesPending = false then
begin
if DataSet.FieldByName('RQ').IsNull then
DataSet.FieldByName('LSZD1').asstring := '0'
else
DataSet.FieldByName('LSZD1').asstring := '1';
end;
end;
procedure TYWXX1.DataSetBZSJJ1FieldChange(DataSet: TDataSet; Field: TDataField);
begin
if (Field <> nil) and ( Field.FieldName = 'RQ' ) then
begin
if DataSetBZSJJ1.FieldByName('RQ').AsString <>'' then
DataSetBZSJJ1.FieldByName('LSZD1').AsString := '1'
else
DataSetBZSJJ1.FieldByName('LSZD1').AsString := '0'
end;
end;