28.05.2009, 11:17 | #9 |
Участник
|
Цитата:
Сообщение от DSPIC
Думаю, примерно так:
X++: static void classMethodInfo(Args _args) { SysDictClass sysDictClass; DictMethod dictMethod; counter methodCount, varCount; str parmsStr; ; sysDictClass = new SysDictClass(classnum(RunBaseBatch)); setPrefix(sysDictClass.name()); methodCount = sysDictClass.objectMethodCnt(); while (methodCount) { dictMethod = sysDictClass.objectMethodObject(methodCount); if (dictMethod) { parmsStr = ''; for (varCount = dictMethod.parameterCnt(); varCount >= 1; varCount --) { parmsStr += strFmt("%1 %2, ", dictMethod.parameterType(varCount), dictMethod.parameterName(varCount)); } parmsStr = strdel(parmsStr, strlen(parmsStr) - 1, 2); info (strFmt ("%1 (%2)", dictMethod.name(), parmsStr)); } methodCount --; } } 1. данный код не учитывает статических методов, дополнил job DSPIC, чтобы статические методы учитывались X++: static void classMethodInfo(Args _args) { SysDictClass sysDictClass; DictMethod dictMethod; counter methodCount, varCount; str parmsStr; ; sysDictClass = new SysDictClass(classnum(SysDictClass)); setPrefix(sysDictClass.name()); methodCount = sysDictClass.objectMethodCnt(); while (methodCount) { dictMethod = sysDictClass.objectMethodObject(methodCount); if (dictMethod) { parmsStr = ''; for (varCount = dictMethod.parameterCnt(); varCount >= 1; varCount --) { parmsStr += strFmt("%1 %2, ", dictMethod.parameterType(varCount), dictMethod.parameterName(varCount)); } parmsStr = strdel(parmsStr, strlen(parmsStr) - 1, 2); info (strFmt ("%1 (%2)", dictMethod.name(), parmsStr)); } methodCount --; } //SRF --> methodCount = sysDictClass.staticMethodCnt(); while (methodCount) { dictMethod = sysDictClass.staticMethodObject(methodCount); if (dictMethod) { parmsStr = ''; for (varCount = dictMethod.parameterCnt(); varCount >= 1; varCount --) { parmsStr += strFmt("%1 %2, ", dictMethod.parameterType(varCount), dictMethod.parameterName(varCount)); } parmsStr = strdel(parmsStr, strlen(parmsStr) - 1, 2); info (strFmt ("%1 (%2)", dictMethod.name(), parmsStr)); } methodCount --; } //SRF <-- } OFFTOPIC : вообще если нужны только списки методов без параметров то для DAX 4.0(также для других версий) можно использовать static-методы класса sysPickList, например, чтобы получить список методов таблицы в DAX 4.0 достаточно вызвать ниже приведенный код X++: sysPickList::fillTablesMethodsMap(tableId) |
|
Теги |
sysdicttable |
|
|