Проблема с автонумерацией

Добрый день!
Пытался сделать автонумерацию через вычисляемое поле. В гриде все работает, но как только открывается карточка редактирования на этом гриде, то, поскольку датасет фильтруется на 1 запись, то вычисляемое поле показывает всегда 1. Хотя мне нужно, чтобы был номер записи в гриде. Как решить эту проблему?

Нравится

4 комментария

Стандартный механизм нумерации в "тройке" — создание системной настройки с текущим номером и вызов функции SetItemSystemNumber на событии OnDatasetBeforePost. Можно посмотреть в датасетах договора, документа или счёта.

Мне нужно чтобы нумерация была не сквозная, как в договоре, а каждый раз формировалась при фильтрации датасета заново. От 1 до количества записей в данной выборке.

Вообщем, я думаю нужно в таблице создать поле для нумерации. Поскольку, в карточке должен быть lookupdatacontrol, который как раз ссылается на это же поле в этой же фильтрации, но на другую запись. Так скажем подчиненная запись ссылается на главную. Так вот получается при каждой фильтрации нужно это поле заполнять, пронумеровывать заново для данной выборки. Кто может подсказать, как это реализовать?

Если с вычисляемым полем в гриде всё работает так, как требуется, а проблема только в карточке, то можно при открытии окна передавать ему атрибут, равный значению поля в датасете грида. А в карточке на OnPrepare заполнять NumericEdit программно из этого атрибута.

Показать все комментарии