|
03.12.2013, 22:13 | #1 |
Молодой, подающий надежды
|
Для 2009 старше RU5 можно перекрыть метод lookup по аналогии с примером в теме Расширенные возможности отслеживания событий на диалогах классов-наследников RunBase
В 2012 можно использовать метод контрола registerOverrideMethod() X++: dlgFactureExtId.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(MyClass, dlgFactureExtId_lookup), this);
__________________
Кононов Пётр |
|
|
За это сообщение автора поблагодарили: Dzha (1). |
04.12.2013, 19:52 | #2 |
Участник
|
Создаю динамическую форму :
protected Object dialog(DialogRunbase dialog, boolean forceOnClient) ..... dlgFactuDocId = dialog.addFieldValue(typeid(ZEU_FactuDocId), factureDocId); //Fld2_1 ..... dlgFactureExtIdNumSeq = dialog.addFieldValue(typeid(NumberSequenceGroupId), factureexternalId); //Fld5_1 dlgZEU_SourceFacture = dialog.addFieldValue(typeid(FactureExternalId_RU), ZEU_SourceFacture); dlgZEU_CorrectionReason = dialog.addFieldValue(typeid(ZEU_CorrectionReason), ZEU_CorrectionReason); dlgZEU_SourceFacture.visible(false); dlgZEU_CorrectionReason.visible(false); dialog.allowControlMethodOverload_RU(true); ..... Создаю обработку на выбор LookUp : protected boolean Fld2_1_modified() { boolean ret=True; ; if (!(ZEU_FactureDoc::find(dlgFactuDocId.value()).DocType == ZEU_DocType::RK)) { dlgZEU_SourceFacture.visible(true); dlgZEU_CorrectionReason.visible(true); } else { dlgZEU_SourceFacture.visible(false); dlgZEU_CorrectionReason.visible(false); } // for Repaint dialog dialog2.dialogOnClient_RU().updateServer(); dialog2.updateClient(dialog2.dialogOnClient_RU()); return ret; } Суть в том, что при выборе LookUp Fld2_1 надо проверять выбранное значение и соответственно делать видимыми/невидимыми два поля ввода. Проблемы : 1. dlgFactuDocId.value() - пустое 2. Если включен блок // for Repaint dialog, то визуально эти два поля появляются на форме, но при этом текст Fld2_1 становится пустым 3. Если не включен блок // for Repaint dialog, то визуально эти два поля НЕ появляются на форме, и при этом текст Fld2_1 не пустой (хотя dlgFactuDocId.value() все равно пустой) Что я не так делаю ? |
|
Теги |
lookup filter, lookupvalue |
|
|