Привет!
AX2012 R2.
На входе имеем FormRun, полученный, к примеру, из той части формы SalesTableListPage, на которой отображаются строки заказов на продажу.
Вопрос: как получить FormRun, в котором отображаются заголовки заказов? При этом модифировать уже имеющиеся формы и классы нельзя.
Я перехватываю метод task в классе SysSetupFormRun. В этот момент в переменной this сидит FormRun, который либо ссылается на заголовки заказов, либо на строки заказов, в зависимости от того, в каком месте была нажата клавиша.
Мне надо узнать фильтр, наложенный пользователем на заголовки заказов. Это можно узнать только получив FormRun с заголовками заказов. Пользовательский фильтр я получаю так:
X++:
localQuery = _formDatasource.queryRun().Query();
for (i = 1; i <= localQuery.queryFilterCount(); i++)
{
info(localQuery.queryFilter(i).toString());
if (localQuery.queryFilter(i).dataSource().name() == qbds.name())
Query.addQueryFilter(qbds, localQuery.queryFilter(i).field()).value(localQuery.queryFilter(i).value());
}
Смысл в том, что мне надо воссоздать запрос, который бы возвращал все строки заказов в зависимости от наложенного фильтра на заголовки заказов. И эту задачу надо решить не только для заказов, а для любой формы ListPage.