Цитата:
Сообщение от
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;
}
А вот что показывается на форме: