22.11.2006, 15:45 | #1 |
Гость
|
Как быстро посчитать кол-во записей?
Задачка для самообучения: есть табличка LedgerJournalTrans, хочется посчитать количество записей с произвольными критериями в ней и выкинуть в эксель.
X++: select count(RecId) from LedgerJournalTrans Затык именно на критериях запроса. Идея сформировать НД X++: Query q; QueryRun qr; QueryBuildDataSource qbd; QueryBuildRange qbr; q = new Query(); qbd = q.AddDataSource(TableNum(LedgerJournalTrans)); // Добавили таблицу – источник данных qbr =qbd.AddRange(FieldNum(LedgerJournalTrans,[])); Поможете начинающему? |
|
22.11.2006, 15:48 | #2 |
Участник
|
см. Сервис\Средства разработки\Количество записей в таблицах.
А что вы подразумеваете под НД? Можете покопать в сторону (запрос ИЛИ - найдете, как в запросе указывать фильтр строкой - а строку, думаю, уже сможете сформировать) |
|
22.11.2006, 15:50 | #3 |
Участник
|
Цитата:
Сообщение от Shakr
Задачка для самообучения: есть табличка LedgerJournalTrans, хочется посчитать количество записей с произвольными критериями в ней и выкинуть в эксель.
X++: select count(RecId) from LedgerJournalTrans Затык именно на критериях запроса. Идея сформировать НД X++: Query q; QueryRun qr; QueryBuildDataSource qbd; QueryBuildRange qbr; q = new Query(); qbd = q.AddDataSource(TableNum(LedgerJournalTrans)); // Добавили таблицу – источник данных qbr =qbd.AddRange(FieldNum(LedgerJournalTrans,[])); Поможете начинающему? |
|
22.11.2006, 17:14 | #4 |
Гость
|
Цитата:
Сообщение от Lucky13
Посмотрите тут
X++: qr = new QueryRun(q);
cnt = SysQuery::countTotal(qr); |
|
24.08.2007, 11:34 | #5 |
Участник
|
Что-то функция у меня неправильно отрабатывает. Может, я чего не так делаю?
X++: Counter ii; QueryRun queryRun; Query Query; QueryBuildDataSource InvTrans,Inv,Dim; ; query=new query(); InvTrans=query.addDataSource(tablenum(InventTrans)); Dim=InvTrans.addDataSource(tablenum(InventDim)); Dim.relations(true); Inv=InvTrans.addDataSource(tablenum(InventTable)); inv.addLink(fieldnum(inventtrans,itemid),fieldnum(InventTable,ItemId)); inv.joinMode(JoinMode::ExistsJoin); InvTrans.addRange(fieldnum(InventTrans,ItemId)).value(ItemId); Dim.addRange(fieldnum(InventDim,InventLocationId)).value(LocId); Inv.addRange(fieldnum(InventTable,ModelGroupId)).value(MGId); queryRun = new QueryRun(query); if (!queryRun.prompt()) return; [B] ii=SysQuery::countTotal(queryrun);[/B] Последний раз редактировалось gefr; 24.08.2007 в 11:49. |
|
24.08.2007, 13:10 | #6 |
Участник
|
попробуйте
SysQuery::countLoops |
|
24.08.2007, 13:20 | #7 |
SAP
|
Цитата:
он возвращает значительно больше, чем есть на самом деле (на несколько порядков)
|
|
19.05.2010, 16:53 | #8 |
Участник
|
|
|
19.05.2010, 18:01 | #9 |
----------------
|
|
|