2012-06-04 25 views
1

我需要將表格中的所有顯示方法放入緩存中,而不是手動輸入(有很多顯示方法),我試圖動態執行它,即瀏覽每種方法然後檢查它是否是一種顯示方法,以獲取tablemethodstr()並將其放入表單數據源中的cacheAddMethod()緩存中。從表格中查找所有顯示方法

但是我找不到一種方法來使用它們的屬性過濾方法,所以我想知道在AX 2009中使用純X ++是否可以這樣做?

乾杯

回答

2

我剛寫了一份工作,可能會幫助你得到你所需要的。我不能完全肯定的問題,但你應該只能夠運行這個:

static void Job46(Args _args) 
{ 
    DictTable  dictTable; 
    int    i; 
    MethodInfo  methodInfo; 
    SysDictTable dt = new sysDictTable(tableNum(Address)); 
    ; 

    dictTable = new dictTable(TableNum(Address)); 

    for (i=1; i<dt.objectMethodCnt(); i++) 
    { 
     methodInfo = dt.objectMethodObject(i); 

     if (methodInfo.displayType() == DisplayFunctionType::Get) 
      info(strfmt("Found Display: %1 - %2 - %3", methodInfo.displayType(), enum2str(methodInfo.returnType()), methodInfo.name())); 
     else 
      info(strfmt("Not Display: %1 - %2 - %3", methodInfo.displayType(), enum2str(methodInfo.returnType()), methodInfo.name())); 
    } 
} 

音符的線將是「methodInfo.displayType()== DisplayFunctionType ::獲取」

編輯:可能需要「< =」而不是「<」......沒有測試。你會發現它。