06.07.2004, 10:12 | #1 |
Участник
|
Добрый день.
У меня следующий нубский вопрос. Необходимо создать формочку, аналогичную LedgerTransVoucher (Главная книга\Запросы\Аудит\Бухгалтерские проводки), но с добавлением данных из TransactionLog и фильтрацией по текущему пользователю. Сделал форму по подобию LedgerTransVoucher, в качестве DS подсунув вьюшку (соединение LedgerTrans и TransactionLog по полю createdTransactionID). Основная часть формы работает нормально, но существуют проблемы с обработкой кнопок. Например, с кнопкой Исходный документ, по которой должна вызываться формочка OriginalDocuments. Свою такую форму создавать не хочется, а в существующей в конструктор класса передается запись LedgerTrans. У меня же форма которая вызывает OriginalDocuments в DS содержит только view основанный на LedgerTrans (можно добавить LedgerTrans, но как использовать именно его я не знаю). Т.е. вопрос такой: есть 2 DS – как передавать в вызываемый объект запись конкретного DS через element.args().record. Пытаюсь так: Args args = new Args(); Form form1 = new Form('OriginalDocuments'); FormRun formRun; ; args.object(form1); args.caller(LedgerTrans_DS); //??? args.name('OriginalDocuments'); formRun = ClassFactory.formRunClass(args); formRun.init(); formRun.run(); formRun.wait(); Но ничего не выходит. |
|
06.07.2004, 12:05 | #2 |
Участник
|
надо заполнять не args.caller()
а args.record() В caller нужно положить ссылку на текущий, вызывающий объект. На объект инициатор вызова. Тогда "на той стороне" можно будет понять кто вызывал и выпонить call back вызов. |
|
06.07.2004, 12:06 | #3 |
Участник
|
см. в качестве примера в руководство разработчика. Ключевое слово "Activating a menu item from your X++ code"
или в FAQ Как программно открыть форму или отчет |
|