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;

    再运行,问题不在!

  • 相关阅读:
    Educational Codeforces Round 86 (Rated for Div. 2) D. Multiple Testcases
    Educational Codeforces Round 86 (Rated for Div. 2) C. Yet Another Counting Problem
    HDU
    HDU
    HDU
    HDU
    Good Bye 2019 C. Make Good (异或的使用)
    Educational Codeforces Round 78 (Rated for Div. 2) C. Berry Jam
    codeforces 909C. Python Indentation
    codeforces1054 C. Candies Distribution
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/14784199.html
Copyright © 2011-2022 走看看