网上查了一遍 数据集的计算字段不能用于过滤条件,望哪位仁兄可以实现这样的功能!

解决方案 »

  1.   

    实在不行的话建个Temp表怎么样
      

  2.   

    用cxgrid等网格控件显示数据集时,可以在控件中对每个字段进行过滤。
    另外一种解决方案是,将计算字段用SQL语句表达出来,用ADOQUERY直接查询得出数据集。
      

  3.   

    过滤条件?SQL直接写好不行么
      

  4.   

    原来cxGrid可以过滤  这样不需要考虑数据集的计算字段了,可以如何用代码实现比如 一个列 我要筛选大于 '23'的记录该怎么写
      

  5.   


    var
      AItemList: TcxFilterCriteriaItemList;
    begin
      cxGridOneDBBandedTableView1.DataController.Filter.BeginUpdate;
      try
        cxGridOneDBBandedTableView1.DataController.Filter.Root.Clear;    cxGridOneDBBandedTableView1.DataController.Filter.Root.BoolOperatorKind := fboOr;    AItemList := cxGridOneDBBandedTableView1.DataController.Filter.Root.AddItemList(fboOr);
        AItemList.AddItem(cxGridOneDBBandedTableView1CFAC002, foGreater, '23', '23');    cxGridOneDBBandedTableView1.DataController.Filter.Root.BoolOperatorKind := fboAnd;
        cxGridOneDBBandedTableView1.DataController.Filter.Active := True;
      finally
        cxGridOneDBBandedTableView1.DataController.Filter.EndUpdate;
      end;
    end;