|
![]() |
#1 |
Участник
|
мне кажется что достаточно будет добавить ",КлиентАБВ", если критерий уже существует.
X++: boolean findSuperCust(Query _srcQuery, CustAccount _custAccount = "КлиентАБВ") { Query q = new Query(_srcQuery); // создаем копию QueryBuildRange qbr; QueryRun qr; // устанавливаем новый критерий или меняем существующий qbr = SysQuery::findOrCreateRange(q.dataSourceTable(tablenum(custTable)),fieldnum(custTable, AccountNum)); qbr.value( queryRangeConcat(qbr.value(), _custAccount) ); // добавляем к уже существующему или устанавливаем вместо пустого // выполняем запрос qr = new QueryRun(q); return qr.next(); } |
|
![]() |
#2 |
Участник
|
похоже вот такой способ будет работать всегда.
но если на код клиента уже был установлен критерий, то этот способ будет работать медленно. X++: boolean findSuperCust(Query _srcQuery, CustAccount _custAccount = "КлиентАБВ") { Query q = new Query(_srcQuery); // создаем копию QueryBuildRange qbr; QueryRun qr; CustTable custTable; // устанавливаем новый критерий только если раньше он был не установлен. qbr = SysQuery::findOrCreateRange(q.dataSourceTable(tablenum(custTable)),fieldnum(custTable, AccountNum)); if( !qbr.value() ) qbr.value(queryValue(_custAccount)); // выполняем запрос qr = new QueryRun(q); while( qr.next() ) { custTable = qr.get(tablenum(CustTable)); if( custTable.accountNum == _custAccount ) return true; } return false; } |
|
Теги |
query, как правильно |
|
![]() |
||||
Тема | Ответов | |||
Очередной вопрос про Query | 45 | |||
Вопрос по query? | 1 | |||
Вопрос по query и join | 2 | |||
Вопрос по запросу (query) | 2 | |||
Вопрос знатокам QBE и Query в AXAPTA | 6 |
|