Editing已经设为true了,ReadOnly设置为False了,该字段在查询时也不是使用语句计算的
初学,不知道哪位大侠可以指点一下阿,谢谢。

解决方案 »

  1.   

    贴出代码吧?
    CXGRID有没有绑定DATASOURCE,DATASOURCE有没有与数据集关联。数据库有没有打开。
      

  2.   

    如果是当数据敏感控件用的话,要调用下DataSet.Edit才行。如果是普通手动往GRID填数的话,不READONLY时就可以编辑了。
      

  3.   

    是不是该列设置为不可编辑了,那样editing和readonly都无效
      

  4.   

    除了樓上的方法也參考下我的方法procedure TRES_TENMAX_MODEL_F.ChangeStatus(aStatus: TStatus);
    var
      IsReadOnly:Boolean;
    begin
      IsReadOnly:=aStatus=sBrowse;
      btnSB_New.Enabled:=IsReadOnly and HaveRight(FModuleID,_UserNo,rInsert);
      btnSB_Modi.Enabled:=IsReadOnly and HaveRight(FModuleID,_UserNo,rModify);
      btnSB_Save.Enabled:=not IsReadOnly;
      btnSB_Cancel.Enabled:=not IsReadOnly;
      cxGrid1DBTableView1.OptionsData.Editing:=not IsReadOnly;
      cxGrid1DBBandedTableView1.OptionsData.Editing:=not IsReadOnly;
      cxGrid2DBBandedTableView1.OptionsData.Editing:=not IsReadOnly;
      cxGrid3DBTableView1.OptionsData.Editing:=not IsReadOnly;
      cxGrid3DBBandedTableView1.OptionsData.Editing:=not IsReadOnly;
    end;procedure TRES_TENMAX_MODEL_F.btnSB_NewClick(Sender: TObject);
    begin
      inherited;
      adoq_tenmax.Append;
      adoq_tenmax.FieldByName('YF').AsString:=FormatDateTime('yyyy'+'-'+'mm'+'月',Now);
      cxGrid1DBTableView1.Columns[1].FocusWithSelection;
      ChangeStatus(sEdit);
    end;procedure TRES_TENMAX_MODEL_F.btnSB_SaveClick(Sender: TObject);
    begin
      inherited;
      if adoq_tenmax.State in [dsInsert,dsEdit]  then
        adoq_tenmax.Post;
      ChangeStatus(sBrowse);
    end;