Страница 1 из 1

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

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

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

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

Пример базы приложил!! Спасибо)

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

Добавлено: 05 ноя 2019, 17:26
ugport
Вопрос все еще актуален)))
Хотя сделал все-таки после дня мучения через запрос - но это костыли) - зато работает)))

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

Добавлено: 05 ноя 2019, 18:28
Kliborn
мы все следим за инновациями. выложите свои "костыли" для обучения.

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

Добавлено: 06 ноя 2019, 08:23
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 нашел чисто случайно))

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

Добавлено: 04 май 2020, 17:01
easpnz
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 нашел чисто случайно))

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