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

Скрипт для автоматического заполнения таблицы из другой формы по условию

Все вопросы, связанные с написанием скриптов и SQL-запросов.
ugport
Новичок
Сообщения: 21
Зарегистрирован: Чт авг 01, 2019 12:11 pm
Поблагодарили: 2 раза

Скрипт для автоматического заполнения таблицы из другой формы по условию

Сообщение ugport » Пн ноя 04, 2019 2:10 pm

Добрый день.
Помогите написать скрипт для автоматического заполнения таблицы расположенной на форме из другой формы с применением условия.
Есть база на ней три формы:
-Реестр сотрудников
-Раздел ПД
-Анкета АДМ.

На форме Анкета АДМ размещена таблица которая должна заполняться автоматически (руками заполнять будет долго и это однотипные данные будут) - заполняется она Данными из Реестра сотрудников (ФИО сотрудника), при этом есть два условия:
1 - сотрудник действующий (флаг на форме Реестр сотрудников)
2 - сотрудник относится к разделу ПД = АДМ,
и поле в таблице Затрачены часы (значение цифра - 40)

В идеале чтобы заполнялось при создании новой записи формы, но можно и по кнопке (сейчас по кнопке не работает).
Так как с кодом не особо дружу, поиском в интернете нашел примеры и пытался сделал скрипт, но не заработало( Скрипт умеет проверять заполнено не заполнено и удалять заполненные данные таблицы)) но вот вставлять из формы значения не умеет.
Помогите чтобы скрипт заработал)

Пример базы приложил!! Спасибо)
Вложения
BAS1.7z
(36.4 КБ) 66 скачиваний

ugport
Новичок
Сообщения: 21
Зарегистрирован: Чт авг 01, 2019 12:11 pm
Поблагодарили: 2 раза

Скрипт для автоматического заполнения таблицы из другой формы по условию

Сообщение ugport » Вт ноя 05, 2019 5:26 pm

Вопрос все еще актуален)))
Хотя сделал все-таки после дня мучения через запрос - но это костыли) - зато работает)))

Kliborn
Новичок
Сообщения: 22
Зарегистрирован: Пт мар 30, 2018 11:23 am
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Скрипт для автоматического заполнения таблицы из другой формы по условию

Сообщение Kliborn » Вт ноя 05, 2019 6:28 pm

мы все следим за инновациями. выложите свои "костыли" для обучения.

ugport
Новичок
Сообщения: 21
Зарегистрирован: Чт авг 01, 2019 12:11 pm
Поблагодарили: 2 раза

Скрипт для автоматического заполнения таблицы из другой формы по условию

Сообщение ugport » Ср ноя 06, 2019 8:23 am

Все оказалось просто и гениально, главное знать какие обращаться к данным:
1. скрипт автоматического заполнения таблицы из запроса:

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

begin
 Q := Self.Queries['Запрос'];
 Q.DisableControls;
 Q.MoveFirst;

 while not Q.Eof do
         begin
          ID := Q.RecId;
          DestFm.Append;
          DestFm['ПОЛЕ КОТОРОЕ НАДО ЗАПОЛНИТЬ']:= ID;
          DestFm.Post;
          Q.MoveNext;
          end;
 end;
 Q.EnableControls;
 Q.Refresh;   

2 - а так же для скрипт для запуска скрипта автоматически при открытии формы:

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

procedure Form_Create;
begin
self.onenter     :=@ НАИМЕНОВАНИЕ СКРИПТА;
end;

(кому-то покажется это очевидно, но когда делал я потратил часа два на одну только эту строчку так как поиск приводил к команде onafteredit - и иже с ним по справочнику ничего не давало, а onenter нашел чисто случайно))

easpnz
Новичок
Сообщения: 23
Зарегистрирован: Ср окт 18, 2017 8:43 am
Благодарил (а): 1 раз

Скрипт для автоматического заполнения таблицы из другой формы по условию

Сообщение easpnz » Пн май 04, 2020 5:01 pm

ugport писал(а):Все оказалось просто и гениально, главное знать какие обращаться к данным:
1. скрипт автоматического заполнения таблицы из запроса:

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

begin
 Q := Self.Queries['Запрос'];
 Q.DisableControls;
 Q.MoveFirst;

 while not Q.Eof do
         begin
          ID := Q.RecId;
          DestFm.Append;
          DestFm['ПОЛЕ КОТОРОЕ НАДО ЗАПОЛНИТЬ']:= ID;
          DestFm.Post;
          Q.MoveNext;
          end;
 end;
 Q.EnableControls;
 Q.Refresh;   

2 - а так же для скрипт для запуска скрипта автоматически при открытии формы:

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

procedure Form_Create;
begin
self.onenter     :=@ НАИМЕНОВАНИЕ СКРИПТА;
end;

(кому-то покажется это очевидно, но когда делал я потратил часа два на одну только эту строчку так как поиск приводил к команде onafteredit - и иже с ним по справочнику ничего не давало, а onenter нашел чисто случайно))

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


Вернуться в «Программирование в DataExpress»