delphi cxgrid里面的虚拟字段的checkbox可以多选并抓取选定的数据字段
2021-03-18 05:25
标签:column checkbox OLE filter img control cat record equal cxgrid里面的虚拟字段的checkbox可以多选需要设置:SmartRefresh:=True;KeyFieldNames=主键字段 多选checkbox以后循环抓取相应的字段: var end; end; delphi cxgrid里面的虚拟字段的checkbox可以多选并抓取选定的数据字段 标签:column checkbox OLE filter img control cat record equal 原文地址:https://www.cnblogs.com/linjincheng/p/12366659.html
ordersn:string;
sSQL,Fsql,scripno: string;
rptName: string;
ch: Boolean;
i, j: Integer;
flrft : Boolean; //过滤状态标志
artFlt : Boolean; //代码引起过滤标志
mStream : TStream; //存储客户设置过滤条件的内存流
begin
inherited;
ordersn:=adsMaster.fieldbyname(‘scripno‘).asstring;
try
mStream:=TMemoryStream.Create;
scripno:=‘‘;
artFlt:=true;//设置将要改变过滤的标志
mStream.Position:=0;//流指针指向开始位
tv_grdOrder.DataController.Filter.Root.Criteria.SaveToStream(mStream);//将过滤状态存入流
flrft:=tv_grdOrder.DataController.Filter.Active;//保存过滤状态是否激活
tv_grdOrder.DataController.Filter.Root.Clear;//清除原有过滤设置
tv_grdOrder.DataController.Filter.Root.AddItem(tv_grdOrder.Columns[0],foEqual,‘True‘,‘√ ‘);//以0列为真过滤
tv_grdOrder.DataController.Filter.Active:=True;//激活过滤
ch:=tv_grdOrder.DataController.FilteredRecordCount>0;//过滤后的记录数
if ch then //过滤后有记录数
begin
for j:=0 to tv_grdOrder.ViewData.RowCount-1 do//以行数循环
begin
adsmaster.RecNo:=tv_grdOrder.ViewData.Rows[j].RecordIndex+1;
if(scripno‘‘)then
scripno:=scripno+‘,‘;
scripno:=scripno+ QuotedStr(adsmaster.fieldbyname(‘scripno‘).AsString);
end;
end;
//恢复客户过滤状态:
tv_grdOrder.DataController.Filter.Root.Clear;//清除原有过滤设置
mStream.Position:=0;
tv_grdOrder.DataController.Filter.Root.Criteria.LoadFromStream(mStream);
tv_grdOrder.DataController.Filter.Active:=flrft;
artFlt:=false;
finally
Doopendata();
adsMaster.Locate(‘scripno‘, ordersn, []);
if scripno=‘‘ then scripno:=QuotedStr(adsmaster.fieldbyname(‘scripno‘).AsString);
下一篇:C#设置一个控件可以鼠标拖动
文章标题:delphi cxgrid里面的虚拟字段的checkbox可以多选并抓取选定的数据字段
文章链接:http://soscw.com/index.php/essay/65643.html