Показать сообщение отдельно
Старый 10.10.2013, 15:28   #9  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от ex3em Посмотреть сообщение
joinChild()/joinParent(), не нашел как достучаться из дисплейметода на датасорсе. пытался
X++:
display Comment(ActionDetailTable _actionDetailTable)
{
    ActionTable actionTable = _actionDetailTable.dataSource().cursor().joinParent();
}
не получается достучаться до парента
А не надо мудрить Курсор datasource'а - это текущая выбранная на гриде запись, к которой кнопки привязаны и проч., а display-методы отображают данные для кучи записей на гриде, именно поэтому display-методу на datasource передается буфер, для которого он должен что-то отобразить, и который может не быть текущей выбранной записью. Поэтому надо, во-первых, дергать метод joinChild на действии, а не joinParent на детализации, а во-вторых, дергать на переданном буфере, а не на курсоре formDS. Я вот щас на коленке сделал форму CustTable outer join CustTrans, где display-методом вывожу либо CustTrans.RecId, если он есть, либо CustTable.RecId. Вот код метода:
X++:
display Description test(CustTable _custTable)
{
    CustTrans   ct = _custTable.joinChild();
    RecId       id = ct.RecId ? ct.RecId : _custTable.RecId;
    Description ret = strfmt('%1 %2', id, ct.RecId ? 'trans' : 'table');
    return ret;
}
А вот что показывается на форме:
За это сообщение автора поблагодарили: ex3em (1).