Цитата:
Сообщение от
plumbum
еще помогает такая функция:
X++:
if (salesLine.isFormDataSource())
{
salesLineDs = salesLine.dataSource();
salesTableDs = Global::formGetParentDatasource(salesLineDs);
salesTable = salesTableDs.cursor();
}
Акуратнее! Ds.cursor() вернёт ссылку на активную в данный момент запись. В случае же с display-методом необходимо получить ссылку на запись соответствующую обрабатываемой (обрабатываемая запись - это та самая запись, которая передаётся в качестве входного параметра, в случае если display-метод находится на датасурсе). Т.е. если display-метод выведен на грид, то он вызовется столько раз сколько строк поместится на экране. А активной, на протяжении всего этого времени, будет оставаться одна и таже запись.
Цитата:
Сообщение от
plumbum
а то joinParent у меня в 4.0 не сработал
У меня тоже не работает. На AX2009 в display-методе на DataSource у входного параметра не получается определить joinParent. Интересно что JoinChild при тех же условиях работает.
В остальных НЕ display методах joinParent прекрасно работает.
Получается, что входной параметр, передающийся в display-метод, не содержит в себе некоторой нужной информации. Попробовал перенести display-метод на уровень таблицы, но this.joinParent() также ничего не вернул (т.е. поведение такое же как и в методе датасурса). Более того обнаружил также что this.isFormDataSource() внутри display-метода не признаётся что имеет отношение к источнику данных формы. Т.е. получется что display-метод вызывается в каком-то искуственном, урезанном контексте.