gifts2017

Получение даты из строки текста ( СКД, функции общих модулей )

Опубликовал Владимир (Vlad_2008) в раздел Программирование - Универсальные функции

Получение даты из строки комментария к документу в отчете СКД, с использованием функции общего модуля.
Вывод в отчет даты отправки, указанной в комментарии к документу
 
Отчет на СКД, с использованием функции общего модуля, в данном примере используется Внешний Набор Данных  (табличная часть отчета)
     
Поиск даты осуществляется с помощью регулярных выражений COM объекта VBScript.RegExp
 
Пример представлен в виде файла выгрузки базы данных (8.2.15 обычное приложение).

Возможно подключение в любую конфигурацию, с заменой Внешнего Набора Данных на реальную таблицу какого-либо документа

Пример не является 100% универсальным и выложен на случай кому интересно для дальнейшей доработки "под себя"

Скачать файлы

Наименование Файл Версия Размер
Файл выгрузки базы данных 50
.dt 17,76Kb
03.09.12
50
.dt 17,76Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Антон (anton.fly7) 05.09.12 08:49
Спасибо!
только что пригодилось ) так бы просидел час ))
2. Владимир (Vlad_2008) 05.09.12 10:26
3. al petrov (petrov_al) 05.09.12 16:38
А полнотекстовым поиском не пробовали?
4. Владимир (Vlad_2008) 05.09.12 17:14
(3) petrov_al,

Нет, не пользовался, и даже, не знал что там есть возможность поиска
по шаблону.

Прочитал сейчас СП и сделал вывод что "поисковых операторов" для решения
моей задачи там недостаточно (надо найти что-то похожее на дату 00.00.0000)

Плюс, есть организации с приличным объемом данных, которые отключают
"фирменные тормоза" полнотекстового поиска (вместе с регламентом обновления)

Правда, и вычисляемое поле через функцию общ.модуля, да еще и через COM объект -
тоже не айс. Вообще-то хотелось сразу в запросе, только отобрать строки можно,
а выделить нужный текст ни как.

Сегодня попробую поиграться с поиском.
5. Модератор раздела Артур Аюханов (artbear) 07.09.12 15:24
Может быть, попробовать кешировать/сохранить Ком-объект где-нибудь в хранилище, в каких-нибудь параметрах сеанса или еще лучше в общем серверном модуле, у которого сохраняются значения!
6. Владимир (Vlad_2008) 07.09.12 16:54
(5) artbear,

Согласен, лучше всего кешировать Ком-объект. Делать его инициализацию при открытии отчета
через вызов функции общего модуля (с повторным использованием возвр. значений) и далее
использовать вызов этой функции для получения Ком-объекта в функции, вызываемой из СКД.