大家好,我现在有个这样的 需求,
在数据库有个字段USEFLAG,值是0或1。但是我在CXGRID显示“0-可用”或“1-停用”,然后我想在CXGRID上面增加修改。我目前以下使用
 strsql:='select ID,PCODE,Price,Pname,UseFlag,case UseFlag when 0 then '+'''0-可用''' +'else '+'''1-停用''' +'end as useflag1 from PirceBase';
把他查询出来,可是我在CXGRID无法对useflag1修改,,不知道我这样做是否对,,如果不对,要如何修改,谢谢。

解决方案 »

  1.   

    SQL就这样写就可以
    select ID,PCODE,Price,Pname,UseFlag from PirceBase只要在cxGrid修改UseFlag列就可以:Properties设置为checkbox 然后设置相应的属性 true:1    false:0。
      

  2.   

    1 选中列->properties选则checkbox
    2 ValueChecked:-1, ValueUnChecked:0
      

  3.   


    修改对应列的OnGetDisplayText事件
    procedure TForm11.cxgrdclmncxgrdtblvwcxgrd1TableView1Column2GetDisplayText(
      Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
      var AText: string);
    begin
      if AText = '-1' then
        AText := '可用'
      else
      if AText = '0' then
        AText := '停用'
    end;
      

  4.   

    self.cxGrid1DBTableView1.DataController.Edit;
        ARecIndex:=self.cxGrid1DBTableView1.DataController.FocusedRecordIndex;
        self.cxGrid1DBTableView1.DataController.Values[ARecIndex,4]:=1;
        self.cxGrid1DBTableView1.DataController.Post();我在更新数据时,按照上面的代码,为什么没有效果,改了数据,又变回来
      

  5.   


    只有Value=-1或Value=0时才能显示成 '可用','停用'
    GetDisplayText方法就是根据你当前单元的实际值产生显示值的过程其实你这个列做成下拉框就解决你的问题了
    1 选中列->properties选则combobox
    2 items中加两行'可用','停用'
    3 将下拉框设置成只能选择的模式就可以
      

  6.   

    我想请教一下楼上的,如何在程序运行中设置properties的Items属性?
    谢谢
      

  7.   

    我这样写,编译显示错误:
    cxGrid1DBTableView2->Columns[2]->Properties->Items->Add("douhao");
      

  8.   


    顺便再请教一下,请问cxGrid控件最上面的“Darg a Column header here to group by that column”这一行如何隐藏啊?这个问题也困扰我好几天了