zoukankan      html  css  js  c++  java
  • delphi cxgrid里面的虚拟字段的checkbox可以多选并抓取选定的数据字段

    cxgrid里面的虚拟字段的checkbox可以多选需要设置:SmartRefresh:=True;KeyFieldNames=主键字段

    多选checkbox以后循环抓取相应的字段:

    var
    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

    end;
    Doopendata();
    adsMaster.Locate('scripno', ordersn, []);
    if scripno='' then scripno:=QuotedStr(adsmaster.fieldbyname('scripno').AsString);

    end;

  • 相关阅读:
    实验三 进程调度模拟程序
    实验二作业调度模拟程序实验报告
    实验8
    实验七
    实验六
    实验五 数独游戏界面设置
    实验五
    实验四
    实验三
    实验二
  • 原文地址:https://www.cnblogs.com/linjincheng/p/12366659.html
Copyright © 2011-2022 走看看