spdj_ccd --主单据 (select * from 出仓单 where 日期 between :@date1 and :@date2)
spdj_ccdmx--明细 (select * from 出仓单明细)我曾测试过三种主从方式,现在用第三种.请大家帮忙看看.
以下是测试结果:1.用系统设置的主从表格式,速度最慢,开始我是用这种方式.2.明细动态指定参数(select * from 出仓单明细 where 单据号=:djh),数据集关闭再打开,会使速度变慢.
procedure Tdm.spdj_ccdAfterScroll(DataSet: TDataSet);
begin
dm.spdj_ccdmx.Close;
dm.spdj_ccdmx.Parameters.ParamByName('djh').Value:='----------';
if not dm.spdj_ccd.FIELDBYNAME('单据号').IsNull then
dm.spdj_ccdmx.Parameters.ParamByName('djh').Value:=dm.spdj_ccd.fieldbyname('单据号').Value;
dm.spdj_ccdmx.Open;
end;3.用下面过滤方式,速度快很多.但如今有新问题:出仓单浏览(下一单,上一单这样浏览)的时候.从11月份开始很慢,之前却很快.不知为什么???
procedure Tdm.spdj_ccdAfterScroll(DataSet: TDataSet);
begin
if dataset.FieldByName('单据号').IsNull then
spdj_ccdmx.Filter:='单据号='''+'----------'''
else
spdj_ccdmx.Filter:='单据号='''+dataset.FieldByName('单据号').Value+'''';
spdj_ccdmx.Filtered:=true;
if not spdj_ccdmx.Active then
spdj_ccdmx.Open;
end;
if (sender as tdbgrideh).SumList.RecNo mod 2 = 1 then
Background := clInfoBk //$00FFC4C4
else
Background := RGB(191, 255, 223)//$00FFDDDD;