Показать сообщение отдельно
Старый 03.03.2011, 09:41   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от DAsm Посмотреть сообщение
Как мне передать параметр разноски во вторую форму чтобы уже в зависимости от значения таблицы можно было выставлять свойство allowedit true или false.
Я уже упоминал, что механизм DynaLink действует не только в момент открытия формы, он продолжает работать до тех пор пока не будет закрыта первая форма! (открыв строки неразнесённого журнала, пользователь может перейти на первой форме на разнесённый и в форме строк отобразаться уже его строки). Это значит, что установить доступность строк журнала один раз при открытии формы не выйдет. Как быть? Доступность строк нужно устанавливать не в событии открытия формы, а в событии смены ведущего источника данных. Для это предназначен метод источника данных DataSource.linkActive(), не спутайте с DataSource.Active(), последний это событие смены активной строки своего датасурса.

Будем считать, что с вопросом "в какой момент менять доступность?" мы разобралсь, теперь вернёмся к вопросу о том "как находясь на второй форме получить значение признака разноски с активной строки первой формы?".
Вообще есть несколько способов передачи данных между объектами (формами/отчётами/диалогами) и все они основаны на струтуре Args. Cамый универсальный способ - это во втором объекте получить ссылку на первый и вызвать заранее написаный метод который бы возвращал нужные нам данные. Делается это так:
X++:
    Object  caller; // используем абстрактный тип Object для того чтобы уйти от раннего связывания
    ;
    caller = args().caller(); // получаем ссылку на вызвавший объект
    prm = caller.<>(); // имя метода не проверяется на этапе компиляции. Используется позднее связывание
Также часто используется метод args().record() для передачи табличных курсоров. Во многих случаях система сама упраляет созданием, наполнением и передачей структуры Args.

Применительно к вашей задаче стоит отметить, что в системе разработан большой набор стандартных классов, реализующих стандартное поведение. Поведение типовое и понятное всем пользователем, независимо от того в каком из модулей системы они работают. Если вы смотрели формы tutorial_JournalTable и tutorial_JournalTransMovement, то вы наверное уже обратили внимание на классы JournalFormTable и JournalFormTrans. Правльно будет ипользовать их в своих разработках. В этом случае вам не придется заново программировать вещи, общие для всех типовых форм.

Цитата:
Сообщение от DAsm Посмотреть сообщение
Остается научится выводить отчет и каким-то образом выводить правильное количество строк во второй форме по значениям в первой.
Не совсем понял, что именно у вас пока не получается.

Последний раз редактировалось S.Kuskov; 03.03.2011 в 09:57.