Страница 1 из 1

Подсчет количества записей (по содержанию одного из полей)

Добавлено: 28 мар 2018, 14:47
Maria
Нужно подсчитать количество записей в таблице, содержание одного из полей которых равно, к примеру "1". Можно ли это сделать с помощью функции Count? Не получается.
В данном случае, мне это нужно, чтобы отобразить количество заявок с определенным статусом (типо оповещения).

Re: Подсчет количества записей (по содержанию одного из полей)

Добавлено: 29 мар 2018, 23:08
Arcady
Count посчитает все не пустые. Если у вас в поле могут быть разные значения, то можно создать калькулируемое поле:
if (ваше поле = 1; 1 ; "" ) и считать Count по нему.

Если значение поля текст, я так понимаю у вас речь идет о статусах, то можно считать так:
PatternCount (List (ваше поле) ; значение )

Но надо понимать что если у вас есть например статусы "Заявка" и "Заявка в работе", то они посчитаются обе, если значения будет "Заявка"

Более надежный способ, но возможно медленней из-за большей обработки:
ValueCount (FilterValues ( List (ваше поле) ; значение ) ) )

Скрипт "Оповещения"

Добавлено: 01 апр 2018, 14:33
Maria
В попытках организовать систему оповещений, создала такой скрипт.
Есть поле Новый заказ, в которое будет записываться число записей, сооответ. статусу "Черновик" (в данном случае)
При отладке вроде все считает, записывает (единственное надо будет обнулять поле Новый заказ). Новый заказ - глобальное поле.
Но когда установила данный скрипт на каждую загрузку макета, все зависает надолго и там насчитывает под 20 000 записей, хотя всего их штук 5..).
В чем может быть проблема?

Re: Подсчет количества записей (по содержанию одного из полей)

Добавлено: 01 апр 2018, 15:47
Arcady
Если вы повесили триппер на лайаут, а потом переключаетесь (и возвращаетесь!) на этот лайаут в цикле, то тригер срабатывает каждый раз когда вы попадаете на это лайаут, то есть по сути вызывает вам себя. Отсюда и такие большие цифры и зависания.

Вам надо как-то иначе запускать ваши скрипт, чтобы не возникло рекурсии.

Re: Подсчет количества записей (по содержанию одного из полей)

Добавлено: 16 апр 2018, 06:33
agrus
почему нельзя для начала find records по заданному критерию?
и replace не подойдет? гораздо быстрее, чем проходить построчно loop-ом