2012-06-04 3 views
1

테이블에서 모든 디스플레이 방법을 캐시에 넣어야하므로 수동으로 입력하는 대신 (많은 표시 방법이 있습니다) 동적으로 처리하려고했습니다. 즉 모든 메소드를 탐색했습니다. 테이블의 데이터를 확인한 다음 tablemethodstr()을 얻고 양식 데이터 소스에 cacheAddMethod()으로 캐시에 넣는 표시 방법인지 확인하십시오.테이블에서 모든 디스플레이 방법 찾기

그러나 애트리뷰트를 사용하여 메서드를 필터링하는 방법을 찾을 수 없었으므로 순수한 X ++를 사용하여 AX 2009에서 그렇게 할 수 있는지 궁금합니다.

건배

답변

2

난 그냥 당신이 당신이 필요로하는 것을 얻을 도움이 될 일을 썼다.

"== DisplayFunctionType :: 받기 methodInfo.displayType()"

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())); 
    } 
} 

이 노트의 라인이 될 것이다 : 나는 질문의 전체 모르겠지만, 당신은이 작업을 실행할 수 있어야합니다

편집 : "<"대신 "< ="일 필요가 있습니다 ... 테스트하지 않았습니다. 너는 그것을 알아낼 것이다.

관련 문제