关于cxGrid的问题
如下面的图所示,新建单据的时候,cxGrid显示多个空白行,然后由用户编辑cxGrid的空白行,
编辑完毕后,点击“保存”按钮存盘,存盘时通过程序过滤掉空行。(第一行、第四行为空行,保存时过滤掉)
保存数据时,空行被过滤掉,写入数据库,然后重新加载单据,如下图所示
问题一、如何在打开界面时,使得cxgrid默认显示多个空白行(50行)。
问题二、如何在保存时,过滤掉空白行。
[解决办法]
1.cxgrid的显示是绑定数据集的,你需要在数据集中构造空行。
比如:
with CDSHis do //CDSHis就是数据集,构造数据集可以用ClientDataSet begin Open; for I := 1 to Num do //Num代表行数 begin Insert; Edit; FieldByName('卡号').AsString := ''; FieldByName('交易时间').AsString := ''; FieldByName('参考号').AsString := ''; FieldByName('金额').AsString := ''; FieldByName('记录').AsString := ''; Post; end; First; //构造完毕后指向到第一行 end;
[解决办法]
ADOQuery的locktype设置成ltBatchOptimistic后成批提交然后with ADOQuery do begin for I := 1 to 50 do //Num代表行数 begin append; FieldByName('条码').AsString := ' '; end;
[解决办法]
end;前掉了个post;
[解决办法]
ADOQuery的locktype设置成ltBatchOptimistic后成批提交然后with ADOQuery do begin for I := 1 to 50 do //Num代表行数 begin append; FieldByName('条码').AsString := ' '; Post; end;
[解决办法]
保存后删除掉主键为空的记录可行吗
[解决办法]