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

Открыть форму и добавить значение в таблицу

Все вопросы, связанные с написанием скриптов и SQL-запросов.
WPAS
Интересующийся
Сообщения: 106
Зарегистрирован: Пн фев 11, 2019 8:35 pm
Благодарил (а): 33 раза
Поблагодарили: 6 раз

Открыть форму и добавить значение в таблицу

Сообщение WPAS » Пн май 18, 2020 7:28 pm

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

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

procedure ClickBaton2 (Sender: TObject);
var
Fm: TdxForm;
begin
Fm := TdxForm.Create('Форма1');
Fm.OpenRecord(Id);
fm.edit;
.......................
begin
if Fm.EditWindow.ShowModal = mrOk then Fm.Post;
end;
Fm.Free;
end;

Vofka18
Знаток
Сообщения: 444
Зарегистрирован: Вс мар 04, 2018 4:54 pm
Благодарил (а): 44 раза
Поблагодарили: 43 раза

Открыть форму и добавить значение в таблицу

Сообщение Vofka18 » Пн май 18, 2020 10:27 pm

Пишу с телефона, могу ошибаться, но попробуйте перед fm.post ещё добавить

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

Child:=fm.forms['таблица'] // это в начале процедуры, после fm.edit
Child.append
If child.showmodal=mrok then child.post

И не забывайте чистить память. Хотя я не уверен, что в модуле формы можно ли вызывать free

WPAS
Интересующийся
Сообщения: 106
Зарегистрирован: Пн фев 11, 2019 8:35 pm
Благодарил (а): 33 раза
Поблагодарили: 6 раз

Открыть форму и добавить значение в таблицу

Сообщение WPAS » Вт май 19, 2020 7:17 pm

Пишет ошибку, а я не знаю что такое Child.
Как я понимаю нужно использовать данную "конструкцию", но вот как ее "пристроить"...

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

begin
if (Self.State <> dsInsert) and (Self.State <> dsEdit) and (Self.Edit = asOk) then
with Self.Forms['Таблица'] do
begin
Append;
Fields['Поле1'] := 2;
if EditWindow.ShowModal = mrOk then
Post
else
Cancel;
end;
end;

Vofka18
Знаток
Сообщения: 444
Зарегистрирован: Вс мар 04, 2018 4:54 pm
Благодарил (а): 44 раза
Поблагодарили: 43 раза

Открыть форму и добавить значение в таблицу

Сообщение Vofka18 » Вт май 19, 2020 9:01 pm

Попробуйте так, вот только задача не ясна, где вы это примените, в событии кнопки на другой форме?

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

procedure ClickBaton2 (Sender: TObject);
var
Fm,Child: TdxForm;
begin
  Fm := TdxForm.Create('Имя основной формы');
  fm.open();
  Child:=fm.forms['Имя таблицы']
  try
    // только  не путайте OpenRecord, GotoRecord, moveTo
    Fm.GotoRecord(Id);
    fm.edit;
    //fm.append()
    fm.EditWindow.Show();

    child.append();
    child['Поле1']:=10;
    //............
    if Child.EditWindow.ShowModal = mrOk then
    begin
      Child.Post;
    end
    else
    begin
      child.cancel();
    end;

    if fm.EditWindow.ShowModal = mrOk then
    begin
      fm.Post;
    end
    else
    begin
      fm.cancel();
    end;

  finally
    child:=nil;
    Fm.Free;
  end;
end;

Vofka18
Знаток
Сообщения: 444
Зарегистрирован: Вс мар 04, 2018 4:54 pm
Благодарил (а): 44 раза
Поблагодарили: 43 раза

Открыть форму и добавить значение в таблицу

Сообщение Vofka18 » Вт май 19, 2020 9:48 pm

Ну и все-таки, уточню, что я далеко не специалист, поэтому может кто нить, еще что посоветует? :D
Вложения
img1.jpg
img1.jpg (71.8 КБ) 266 просмотров

WPAS
Интересующийся
Сообщения: 106
Зарегистрирован: Пн фев 11, 2019 8:35 pm
Благодарил (а): 33 раза
Поблагодарили: 6 раз

Открыть форму и добавить значение в таблицу

Сообщение WPAS » Вт май 19, 2020 9:55 pm

Да. Все отлично, мне подойдет :D


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