Устранение очередного бага Абстрактного классификатора.
Описание бага:
Невозможность применения при наличии Ranges.
Причина:
В методе HB_ACUtils::RunTableFilter в случае отсутствия у Ranges value вместо '*'
вставляется пустая строка.
Один из путей ререшения:
добавить условие if(q.dataSourceNo(1).range(i).value()) на формирование строки QStr.
то есть вместо кода
PHP код:
q = table_ds.queryRun().query();
for (i=1; i <= q.dataSourceNo(1).rangeCount(); i++)
{
qbr = q.dataSourceNo(1).range(i);
QStr += " && T." + fieldid2name(q.dataSourceNo(1).table(),qbr.field()) + " like '" + q.dataSourceNo(1).range(i).value() + "'";
}
вставить код
PHP код:
q = table_ds.queryRun().query();
for (i=1; i <= q.dataSourceNo(1).rangeCount(); i++)
{
//если поле пусто - НЕ ВЫВОДИТЬ!!!
if(q.dataSourceNo(1).range(i).value())
{
qbr = q.dataSourceNo(1).range(i);
QStr += " && T." + fieldid2name(q.dataSourceNo(1).table(),qbr.field()) + " like '" + q.dataSourceNo(1).range(i).value() + "'";
}
}