Добрый день.

Решил изучить процесс автонумерации на возможность генерации одинаковых номеров.

  1. Настроил процесс в соответствии с инструкцией.
  2. Написал консольное приложение для создания записей в несколько потоков в соответствии с инструкцией.

При первом же тесте по созданию записей в 20 потоков, по 1 записи в каждом потоке, получил следующие результаты:
Дубли2

Собственно вопросы:
Есть ли какая то возможность гарантированно генерировать уникальный номер?
Есть ли возможность модифицировать класс GenerateSequenseNumberUserTask?

Нравится

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

Здравствуйте!

Альтернативный вариант - генерировать номер по факту создания записи триггером в БД.

"Демьяник Алексей" написал:

Здравствуйте!

Альтернативный вариант - генерировать номер по факту создания записи триггером в БД.


Но, если необходимо генерировать некоторый код на основании уникального номера и некоторых полей из записи, то этот вариант же не подходит.

Например шаблон названия/кода: <Тип_записи>/<Категория_записи>/<Год_создания>_<Уникальный_порядковый_номер>

И есть ли возможность модифицировать класс GenerateSequenseNumberUserTask, который отвечает за генерацию номера?

Здравствуйте!

Можно сделать следующее:
1) В конфигурации выгрузить GenerateSequenseNumberUserTask.md (выделите схему и выберите действие "Экспорт в файл".
2) Открыть выгруженный файл и подменить значения параметров:

  • UID
  • NAME
  • CAPTION

3) Загрузить полученный файл в конфигурацию (действие "Импорт файла")
4) Внести в загруженный файл требуемые изменения
5) Опубликовать изменения
6) Использовать в действии процесса на объекте созданное (импортированное вами действие)

P.S. Все еще не вижу проблемы в создании триггера.

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

Добрый день!

Подскажите, пожалуйста, вариант решения для автоматической нумерации позиций в документе (нумерация записей в детали карточки).

Есть такой "Базовый объект с позицией", но поддержка сказала его не использовать в 7.х, и надо писать свою логику на клиенте. Может, кто сталкивался?

Спасибо!

Нравится

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

Владимир, добрый день!

Для решения задачи нужно создать колонку (int) (к примеру «Position») на объекте, после этого на клиентском модуле написать функцию подсчета записей и обновления счетчика позиции для записи.

"Вильшанский Дмитрий" написал:

Владимир, добрый день!

Для решения задачи нужно создать колонку (int) (к примеру «Position») на объекте, после этого на клиентском модуле написать функцию подсчета записей и обновления счетчика позиции для записи.

Возникает еще вопрос с удалением и пересчётом позиций. Это уже явно лучше делать на сервере

Мне нравится идея, которая заложена в объекте "Базовый объект с позицией", но есть опасения, что если он не поддерживается далее, то могут быть проблемы

Владимир, Вы можете использовать метод в объекте «Базовый объект с позицией», данное решение будет функционировать без каких либо проблем.
С нашей стороны рекомендуем делать кастомизации на клиентском модуле так как данный подход больше соответствует нынешнему ходу разработки кастомизаций для приложения

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

Приветствую всех!

Хочу поделиться реализацией настройки нумерации на странице содержания FastReport.

Итак, необходимо:
1. Создать текстовый объект, установить ему необходимый набор свойств (шрифт, подчеркивание и др.)
2. Заполнить свойство URL названием метки перехода:

3. Создать для заголовка датабенда, куда нужно перейти при нажатии на ссылку, обработчик события OnBeforePrint:

4. В теле функции обработки события прописать код:

procedure Memo2OnBeforePrint(Sender: TfrxComponent);
begin
  Engine.AddAnchor('PriorStat');
end;

Где 'PriorStat' метка перехода, указанная в свойстве URL (во втором шаге).

Приятной работы!

С уважением,
Белецкий Арсений
Группа компаний Terrasoft

Нравится

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