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

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

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

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

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;

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

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

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

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

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

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

Добавлено: 19 май 2020, 19:17
WPAS
Пишет ошибку, а я не знаю что такое 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;

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

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

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

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;

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

Добавлено: 19 май 2020, 21:48
Vofka18
Ну и все-таки, уточню, что я далеко не специалист, поэтому может кто нить, еще что посоветует? :D

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

Добавлено: 19 май 2020, 21:55
WPAS
Да. Все отлично, мне подойдет :D