22.02.2012, 09:54 | #1 |
Участник
|
Мастер SysWizard
Добрый день.
Никто не знает, зачем в мастере SysWizard метод X++: \Classes\SysWizard\prompt X++: form.name(classId2Name(classidget(this))); AX 4.0 |
|
22.02.2012, 10:30 | #2 |
Ищущий знания...
|
там дальше в коде, переменная form используется при инициализации formRun, а точнее передается в args в параметр object
X++: args.object(form); args.caller(this); args.name(this.formName()); // <GEEU> args.name(this.formName()); // this is for support of RU address format in CreditCardWizard form // </GEEU> formRun = classfactory.formRunClass(args); X++: if (args.name()) { formName = args.name(); } else if (args.object()) { formRun = SysDictClass::as(args.object(), classnum(FormRun)); if (formRun) { formName = formRun.name(); } } Но это конечно отыгрывает только тогда когда у args не заполнено свойство name(), а оно в нашем случае будет заполнено (см код выше, первый блок). Более того, оно почему то заполняется дважды P.S. в общем почитайте код, поразбирайтесь в нем, подебажте и скорее всего все прояснится
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
За это сообщение автора поблагодарили: andrewK (1). |
22.02.2012, 12:16 | #3 |
Участник
|
Спасибо.
Просто исходная проблема была в том, что я через args.caller() пытался узнать существование метода на форме мастера. А получившееся название формы и название формы в AOT отличались (Одна используемая форма, несколько наследников мастера). И в результате функция X++: \Classes\Global\formHasMethod Пошел по другому пути... |
|
|
|