Последняя версия DataExpress 3 beta от 15 июня 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница

j-функции

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

Модератор: Разработчики расширений

jurist23rus
Эксперт
Сообщения: 2597
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Поблагодарили: 4 раза

j-функции

Сообщение jurist23rus » Вс мар 26, 2017 8:22 pm

j-функции
Автор: Jurist23rus

DX Loger - служит для организации системы логирования (журнализирования) определённых действий пользователя в журнале событий вашей базы данных.
DX Хранилище файлов - модуль работы с файлами в базе данных.
Форматирование даты и времени - модуль содержит функции для представления даты и времени в нужном формате.

Модуль:RecordEditor
Версия: 2.2 от 08 января 2019 г.
Описание: содержит функции и действие для кнопки.
Действие для кнопки. Закрывает текущую форму по нажатию кнопки.

Открывает для редактирования (в отдельном окне) указанную запись указанной родительской формы.

Код: Выделить всё

OpenRec ('ИмяФормы', DBGETID ('ИмяФормы2', '[!Фамилия]="Иванов"'))

Добавляет новую запись в указанной родительской форме. Запись открывается в отдельном окне.

Код: Выделить всё

AddRec ('ИмяФормы')

Вносит изменения, согласно заданным параметрам, в указанное поле, указанной записи, указанной родительской формы.

Код: Выделить всё

EditingRec ('ИмяФормы', 123, 'Имя изменяемого поля', 'Какой-то текст')

Добавляет новую запись в таблицу. Запись открывается в отдельном окне для заполнения.

Код: Выделить всё

TAddRec ('ИмяТаблицы')

Удаляет записи в таблице согласно заданному фильтру. ВНИМАТЕЛЬНО читаем описание! Если вы плохо понимаете, что делаете или как работает функция не пользуйтесь ей! Удалённые записи нельзя восстановить!

Код: Выделить всё

TDeleteRec ('Сотрудники', '[Фамилия]="Иванов"', 'YesAccept', 'YesMsg')

В данном случае функция удалит из таблицы "Сотрудники" всех сотрудников с фамилией Иванов.

Создаёт запись в родительской форме и заполняет поля формы заданными значениями.

Соединяет значения нескольких полей в одну строку. Значения полей разделяются
пробелом. Значения каждой записи выводятся с новой строки.

ВАЖНО! Если вы пользовались модулем j-modul версии 7.0 и ниже, то удалите его, перед установкой модуля RecordEditor и если необходимо в дополнение к RecordEditor поставьте модуль j-modul v.7.1 В таком случае, работоспособность всех функций, которые были в модуле j-modul v.7.0 и ниже будет сохранена.
RecordEditor v2.2.zip
(8.16 КБ) 56 скачиваний


Модуль:j-modul
Версия: 7.1 от 27 октября 2017 г.
Описание: содержит функции.
Объединяет в одну строку значения столбца таблицы. Аналог штатной функции Merge, но в отличие от последней
позволяет фильтровать результат.

Код: Выделить всё

MergeIf ('ИмяДочернейФормы', 'ИмяПоля', ';', '[ИмяПоля]<>null')

Обновляет запрос расположенный на форме.

Код: Выделить всё

QueryUpdate ('ИмяЗапроса')

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

Код: Выделить всё

ABC ([Любое поле])

Можно забыть об этом:
nz (ABС ([Числовое поле]), 0)
ABC (cnum ([Текстовое поле]))
Функция сама сделает преобразования.

j_module v7.1.zip
(2.1 КБ) 200 скачиваний


Модуль: AutoCloseForm
Версия: 3.1 от 14 июля 2017 г.
Описание: содержит функцию AutoCloseForm.
Автоматически закрывает форму через установленный промежуток времени.

Код: Выделить всё

AutoCloseForm (120, 30, 'OffTimer')

AutoCloseForm v3.1.zip
(3.62 КБ) 63 скачивания

AutoCloseForm v3.2.zip
(3.59 КБ) 149 скачиваний

Версия 3.2:
- в данной версии функция не сохраняет сделанных на форме изменений данных, а отменяет их, так как сохранение данных, в некоторых случаях приводило к ошибке.
Для тех кому важно сохранение данных, при закрытии функцией формы и на форме нет пустых обязательных полей как в этом примере может продолжать пользоваться версией 3.1

Версия 3.1:
- попытка закрыть предупреждающее окно комбинацией клавиш Alt+F4 не прервёт работу функции и будет равносильно нажатию второй кнопки в окне, то есть произойдёт отключение таймера либо его перезапуск, в зависимости от заданных параметров.
- оптимизирован и модернизирован код (внешне это никак не видно, но в будущем исключит возможные ошибки совместимости с другими функциями или скриптами).

Версия 3:
-полная поддержка запросов, в том числе с таблицей на нем;
- поддерживает работу до 5 запросов на форме (больше делать не стал, не вижу смысла);
-при использовании в дочерней форме выводит сообщение в штатное окно ошибок функции (красный пятачок на форме) не нарушая работу программы (защита от тех кто не читает справку);
- ввёл третий параметр, позволяющий менять назначение кнопки на окне сообщения: кнопка может выключать таймер или откладывать его (на усмотрение разработчика базы).


Модуль: ExportToExcel
Версия: 1.1 от 19 ноября 2017 г.
Описание: содержит функцию ExportToExcel + действие для кнопки.
Экспортирует данные формы в Excel

Код: Выделить всё

ExpotToExcel ('', 'Поле1;Поле2;Поле3', '')

ExportToExcel v1.2.zip
(4.2 КБ) 48 скачиваний


v.1.0 - для DX версий до 12 ноября 2017 г., то есть версий без "активных кнопок"
v.1.1 - содержит графическую оболочку в виде действия в кнопке (см. скриншот), её можно устанавливать только на DX от 12 ноября 2017 г. и более поздние выпуски.

2017-11-19_22-09-09.png
2017-11-19_22-09-09.png (48.75 КБ) 4010 просмотров

Обсуждаем модули ТУТ
Destiny is a very convenient word for those who never take decisions.

jurist23rus
Эксперт
Сообщения: 2597
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Поблагодарили: 4 раза

Re: j-функции

Сообщение jurist23rus » Ср сен 19, 2018 4:53 pm

Обновил RecordEditor. Добавил туда две новых функции CreateRec и DBMERGEA. Думаю, они будут удобны для работы с ботом.
Destiny is a very convenient word for those who never take decisions.

Kiss
Интересующийся
Сообщения: 164
Зарегистрирован: Вт мар 14, 2017 11:41 am
Откуда: Гомель, Беларусь
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: j-функции

Сообщение Kiss » Чт окт 18, 2018 10:51 am

jurist23rus писал(а):Обновил RecordEditor. Добавил туда две новых функции CreateRec и DBMERGEA. Думаю, они будут удобны для работы с ботом.

Функции просто Огонь. Пользоваться очень удобно, мне сильно помогли. Спасибо!

jurist23rus
Эксперт
Сообщения: 2597
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Поблагодарили: 4 раза

Re: j-функции

Сообщение jurist23rus » Чт окт 18, 2018 11:44 am

Рад, что пригодилось.
Destiny is a very convenient word for those who never take decisions.

jurist23rus
Эксперт
Сообщения: 2597
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Поблагодарили: 4 раза

Re: j-функции

Сообщение jurist23rus » Чт янв 10, 2019 8:44 am

Обновил ExportToExcel для совместимости с DX от 08.01.2019 г.
Destiny is a very convenient word for those who never take decisions.

Аватара пользователя
Иван
Интересующийся
Сообщения: 56
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: j-функции

Сообщение Иван » Ср мар 06, 2019 10:56 pm

Скриншот 2019-03-06 21.47.36.png
Скриншот 2019-03-06 21.47.36.png (23.49 КБ) 669 просмотров
jurist23rus писал(а):Обновил RecordEditor. Добавил туда две новых функции CreateRec и DBMERGEA. Думаю, они будут удобны для работы с ботом.


Подскажите, с чем может быть связана ошибка.

Выдает запрос не найден, в таком случае (хотел скопировать данные из запроса на данной форме)
CreateRec ('Регистр всех задач', 'Идентификатор записи$~get("Запрос109","Идентификатор статуса")')

или ошибку на скрине в таком случае
CreateRec ('Регистр всех задач', 'Идентификатор записи$~DBGETBYID("Задачи","Идентификатор статуса",RECID("Задачи")) ')

Так же пробовал создавать через получение идентификатора по DBGETID. Хотя конечно значительно удобнее делать через простое копирование GET из запроса на данной форме, что получает данные перед сохранением по действию той же кнопки что и сохранение и CreateRec, это в теории тут должно работать?
.
.
.
Причину не выявил но получилось обойти с использованием переменных. Нажимая на кнопку Сохранить: сохраняем запись + присваиваем переменные всем полям что нужно логировать + присваивам наши переменные CreateRec форме + убиваем переменные через null. Вопрос можно считать решенным. Может кому пригодится, пример:

block(setvar('status',[Идентификатор статуса]), setvar('id',[id задачи]),setvar('Tms',[Время изменения]), setvar('USERr',[Пользователь]), setvar('Who',[Поручить|Ник]),

CreateRec ('Регистр всех задач', 'Идентификатор записи$~Getvar("status")#id задачи$~Getvar("id")#Время2819$~Getvar("Tms")#Пользователь$~Getvar("USERr")#Ответственный$~Getvar("Who")'),

setvar("status",null), setvar("id",null),setvar("Tms",null), setvar("USERr",null),setvar('Who',null),null)

Аватара пользователя
Гocть
Эксперт
Сообщения: 1582
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 4 раза

Re: j-функции

Сообщение Гocть » Ср мар 06, 2019 11:44 pm

1. К вашему вопросу ещё приложить бы пример БД, как недостающее звено.
2. Что за доллар с гусеницей у вас в выражении?
Фрилансер. Разработка на заказ. Консультирование.

Palah
Заглянувший
Сообщения: 4
Зарегистрирован: Пт мар 01, 2019 3:25 pm

Re: j-функции

Сообщение Palah » Пн мар 11, 2019 9:31 am

"Удаляет записи в таблице согласно заданному фильтру. ВНИМАТЕЛЬНО читаем описание! Если вы плохо понимаете, что делаете или как работает функция не пользуйтесь ей! Удалённые записи нельзя восстановить!
Код: Выделить всё
TDeleteRec ('Сотрудники', '[Фамилия]="Иванов"', 'YesAccept', 'YesMsg')

В данном случае функция удалит из таблицы "Сотрудники" всех сотрудников с фамилией Иванов."

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

jurist23rus
Эксперт
Сообщения: 2597
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Поблагодарили: 4 раза

Re: j-функции

Сообщение jurist23rus » Пн мар 11, 2019 10:39 am

Возможно.
Destiny is a very convenient word for those who never take decisions.

lextrif
Интересующийся
Сообщения: 59
Зарегистрирован: Пн мар 26, 2018 5:09 pm

Re: j-функции

Сообщение lextrif » Вт май 28, 2019 10:15 am

Появилась ошибка после обновления приложения
Вложения
2019-05-28_12-14-34.png
2019-05-28_12-14-34.png (57.36 КБ) 146 просмотров


Вернуться в «Расширения и плагины»