![]() |
#6 |
Участник
|
Я такого метода не знаю. Но если программировать, придется чуток покорежить парочку классов.
Можно сделать более "тактичнее", но если делать "в лоб", то примерно вот так. 1. В BaseEnum SysPickListType добавить еще один элемент. Пусть он будет называться FieldsLabels. 2. В классе Global добавить еще один метод, почти такой же, как и метод pickField X++: static int pickFieldLabel(tableId tableId) { Object formRun; Args args; ; args = new Args(formstr(SysPick)); args.parm(strRFix(int2str(SysPickListType::FieldsLabels),2)+int2str(tableId)); formRun = classfactory.formRunClass(args); formRun.init(); formRun.run(); formRun.wait(); if (formRun.selection()) return formRun.selection(); return 0; } X++: public static client container fillFieldsLabelsMap(str _argsParm) { TmpSysTableField tmpSysTableField; DictTable dictTable = new DictTable(str2int(_argsParm)); Map map = new Map(Types::Integer, Types::String); ; if (dictTable && dictTable.rights() > AccessType::NoAccess) { tmpSysTableField = TmpSysTableField::findTableFields(tmpSysTableField, dictTable.id()); while select tmpSysTableField { map.insert(tmpSysTableField.ExtendedFieldId, tmpSysTableField.FieldLabel); } } return map.pack(); } X++: //------------- case SysPickListType::FieldsLabels : imageRes = #imageField; caption = "@SYS3852"; designWidth = #designLargeWidth; if (!map) { map = Map::create(sysPickList::fillFieldsLabelsMap(parmTxt)); } break; //------------- X++: Global::pickFieldLabel(tableNum(InventTable)); |
|
|
За это сообщение автора поблагодарили: mazzy (2), lev (3), Poleax (5), propeller (1), abri (1), MazZzDaI (1). |
Теги |
ax3.0, ax4.0, lookup, lookupfield, полезное, программно |
|
|