Цитата:
Сообщение от
Apollon33
Пытался сделать по аналогии с выборкой данных по аналитике
Вот в этом месте
X++:
if (dimensionCriteria5 && rDeferralsGroupId)
{
qbr = qbds.addRange(fieldId2Ext(fieldnum(RDeferralsBook, Dimension), 5));
qbr.value(dimensionCriteria5);
qbr = qbds.addRange(fieldNum(RDeferralsBook, DeferralsGroupId));
qbr.value(rDeferralsGroupId);
}
у вас написано, что ограничение по группе должно применяться только если одновременно задано и ограничение по 5-ой аналитике. Это специально так сделано?
Попробуйте разделить эти два условия вот так :
X++:
if (dimensionCriteria5)
{
qbr = qbds.addRange(fieldId2Ext(fieldnum(RDeferralsBook, Dimension), 5));
qbr.value(dimensionCriteria5);
}
if (rDeferralsGroupId)
{
qbr = qbds.addRange(fieldNum(RDeferralsBook, DeferralsGroupId));
qbr.value(rDeferralsGroupId);
}
На самом деле если не используете фунцию queryValue() для экранирования спецсимволов (позволяете пользователям искать по маске, а не саму маску), то можно предварительно не проверять наличие значения в переменной а просто всегда накладывать фильтр.
X++:
qbr = qbds.addRange(fieldId2Ext(fieldnum(RDeferralsBook, Dimension), 5));
qbr.value(dimensionCriteria5);
qbr = qbds.addRange(fieldNum(RDeferralsBook, DeferralsGroupId));
qbr.value(rDeferralsGroupId);
Пустая строка в фильтре будет трактоваться системой как отсутствие фильтра.