01.09.2006, 09:16 | #1 |
Участник
|
AddRange не фильтрует
Ситуация:
Есть отчет PurchVariancesVendorSPR (может, такое есть далеко не у всех), предназначен для анализа процента количественного исполнения заявок поставщиками. В связи с тем, что данные в этот отчет берутся из таблицы VendPurchOrderJour, а сами заявки хранятся в таблице PurchOrder, при отмене заявок поле статуса заявки в PurchOrder проставляется, а в VendPurchOrderJour - нет. В результате имеем отчет, в котором отмененные нашим предприятием заявки влияют на процент исполнения поставщиком, за счет чего ему назначаются штрафы. Может быть, журнал VendPurchOrderJour используется еще неким хитрым образом, поэтому я боюсь в нем ковыряться и проставлять отмену. Я хотел бы при составлении отчета пользоваться связью таблиц по полю идентификатора заявки и фильтровать заявки в зависимости от поля статуса заявки в таблице PurchOrder. Что, как понятно из заголовка, у меня почему-то не получается сделать. Код: public void init() { ... qbds = this.query().dataSourceTable(tableNum(VendPurchOrderJour)).addDataSource(tableNum(PurchTable)); qbds.addLink(fieldNum(VendPurchOrderJour, PurchId),fieldNum(PurchTable, PurchId)); qbr = qbds.addRange(fieldNum(PurchTable, PurchId)); qbr.value(SysQuery::valueNot(PurchStatus::Canceled)); ... } Дополнительные сведения: 1. Попытки фильтровать по полям таблицы VendPurchOrderJour, в отличие от приведенного кода, дают положительный результат. 2. В этом же методе есть код, написанный не мною, в работоспособности которого я уже начал сомневаться: ... qbds = this.query().dataSourceTable(tableNum(VendPurchOrderJour)).addDataSource(tableNum(UserRightsVend)); qbds.addLink(fieldNum(VendPurchOrderJour, OrderAccount), fieldNum(UserRightsVend, AccountNum)); qbr = qbds.addRange(fieldNum(UserRightsVend, UserId)); qbr.value(queryValue(curUserId())); qbr.status(QueryStatus::Hide); qbds.addRange(fieldNum(UserRightsVend, UserId)).value(queryValue(curUserId())); ... Резюме: HELPPP!!!! |
|