|
一段代码实现当窗体打开时自动呈现昨天的数据,但每次打开都是新的空白数据集,请问怎么回事:
代码如下:
procedure TDLRBB.BizFormShow(Sender: TObject);
var
lMStartTime, lYStartTime, lYesterDay: TDateTime;
lYFilterSql, lMFilterSql: string;
begin
lYesterDay := DateOf(IncDay(SysService.Time, -1));
TSqlDataSet(dsbMaster.DataSet).SQLFiltered := False;
TSqlDataSet(dsbMaster.DataSet).SQLFilter := ' RQ = to_date('''+sysutils.DateTimeToStr(lYesterDay)+''',''yyyy-mm-dd'')';
TSqlDataSet(dsbMaster.DataSet).SQLFiltered := true;
dsbMaster.DataSet.Open;
TSqlDataSet(dsbSource.DataSet).SQLFiltered := False;
TSqlDataSet(dsbSource.DataSet).SQLFilter := ' RQL = to_date('''+sysutils.DateTimeToStr(lYesterDay)+''',''yyyy-mm-dd'')';
TSqlDataSet(dsbSource.DataSet).SQLFiltered := true;
dsbSource.DataSet.Open;
//有今天的报表记录
if not dsbMaster.DataSet.IsEmpty then
begin
if dsbMaster.DataSet.FieldByName('SHZT').AsString = '已审核' then
begin
Panel1.Caption := dsbMaster.DataSet.FieldByName('RQ').AsString + '的报表已经生成,并已审核。';
Panel1.Visible := true;
dsbSource.DataSet.ReadOnly := True;
tlbGSP.Enabled := False;
end else
if dsbMaster.DataSet.FieldByName('SHZT').AsString = '未通过' then
begin
Panel1.Caption := '请修改数据后重新生成报表,再提交值长审核。';
Panel1.Visible := true;
end;
end
else
//还没有今天的报表记录
begin
Panel1.Caption := '报表还没有生成,请抄表。';
Panel1.Visible := true;
end;
end; |
|