zoukankan      html  css  js  c++  java
  • 没有从当前控件中捕获到字段而无法查询!

    这是项目中的一个提示,今天同事又遇到这样的问题,在一个方法中,Lookup找不到字段,经查,原来下面这段代码,aDataSet就是nil的,所以aField也是nil.

            if TcxGridTableView(Components[i]).Columns[j].Properties is TcxPopupEditProperties then
            begin
              aDataSet:=TcxGridDBTableView(Components[i]).DataController.DataSource.DataSet;
              TcxPopupEditProperties(TcxGridTableView(Components[i]).Columns[j].Properties).OnInitPopup := PopupEditInitPopup;
    
              aField:=TcxGridDBColumn(TcxGridTableView(Components[i]).Columns[j]).DataBinding.Field;
              TcxPopupEditProperties(TcxGridTableView(Components[i]).Columns[j].Properties).LookupItems.AddObject('a', aField);
    

    aDataSet为nil,那说明TcxGridDBTableView(Components[i]).DataController.DataSource没有指定DataSet,打开界面,发现:

     dsMaster设置的DataSet没有值了!

    原来同事在复制这个单元到另外的项目中,丢了这个属性值,找到原因,再进一步查找,这个单元的基类,同事是在OnShow事件中,写了:

      dsMaster.DataSet := TFuncEntry(Self.Owner).GetInfo.GetMasterDataSet;

    把这一行代码,移到OnCreate中:

    procedure TCustomBaseTableDoc.FormCreate(Sender: TObject);
    begin
      inherited;
      dsMaster.DataSet := TFuncEntry(Self.Owner).GetInfo.GetMasterDataSet;
    end;

    再运行,问题不在!

  • 相关阅读:
    vue04-动画、组件
    vue02—— 动画、组件、组件之间的数据通信
    webpack使用
    Promise
    css 尾巴
    js尾巴
    Python字符串格式转换
    CentOS 6.5下Redmine的安装配置
    gem Errno::ECONNRESET: Connection reset by peer
    MySQL几个重要的目录
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/14784199.html
Copyright © 2011-2022 走看看