1 (edited by sibprogsistem 2018-10-21 12:07:46)

Topic: последняя созданная запись

procedure frmAddManufacturer_bSave_OnClick (Sender: TObject; var Cancel: boolean);
begin
    frmAllListManufacturer.tgAllListManufacturer.dbItemID := Last_Insert_id('manufacturer');
end;

дело в том, что Last_Insert_id('manufacturer'); содержит много порраметров а без 'manufacturer' ни чего не происходит..

как провельно выделить последнюю запись?

Re: последняя созданная запись

Hello sibprogsistem

Below, how I realize what you want to get :

procedure Saisie_Button3_OnAfterClick (Sender: TObject);
begin
    Form1.TableGrid1.dbItemID := Last_Insert_Id();   //  On se positionne sur le dernier enregistrement saisi
    Form1.TableGrid1.dbUpdate;
end;

In the segment Last_Insert, don't place any parameters between()

Or you can place this in th evement OnChange of your TableGrid :

if PrevAction = 'NewRecord' then
      begin
        PrevAction := '';
        Form1.TableGrid1.dbUpdate;
        Form1.TableGrid1.dbItemID := Last_Insert_id;
        Form1.TableGrid1.ScrollToRow(Form1.TableGrid1.SelectedRow);
        Form1.TableGrid1.SetFocus;
      end;

In this case, don't forget to declare this global variable :

var    PrevAction: string;

But don't use the those two pieces of code in the same time

Can this help you ?

JB

Re: последняя созданная запись

Жаль не помогло...

Re: последняя созданная запись

это тоже не вариант

procedure frmAllListManufacturer_OnShow (Sender: TObject; Action: string);
begin
   PrevAction := Action;
end;

procedure frmAllListManufacturer_tgAllListManufacturer_OnCellClick (Sender: TObject; ACol, ARow: Integer);
begin
       if PrevAction = 'NewRecord' then
    begin
        PrevAction := '';
        frmAllListManufacturer.tgAllListManufacturer.dbItemID := Last_Insert_id();
        frmAllListManufacturer.tgAllListManufacturer.ScrollToRow(frmAllListManufacturer.tgAllListManufacturer.SelectedRow);
        frmAllListManufacturer.tgAllListManufacturer.SetFocus;
    end;
end;

Re: последняя созданная запись

                PrevAction := '';
        frmAllListManufacturer.tgAllListManufacturer.dbUpdate;
        frmAllListManufacturer.tgAllListManufacturer.dbItemID := Last_Insert_id();
        frmAllListManufacturer.tgAllListManufacturer.ScrollToRow(frmAllListManufacturer.tgAllListManufacturer.SelectedRow);
        frmAllListManufacturer.tgAllListManufacturer.SetFocus;

этот код работает только

procedure frmAllListManufacturer_tgAllListManufacturer_OnClick (Sender: TObject);

тоесть пользователь в таком случае не сможет выбрать другую запись

Re: последняя созданная запись

sibprogsistem wrote:
procedure frmAddManufacturer_bSave_OnClick (Sender: TObject; var Cancel: boolean);
begin
    frmAllListManufacturer.tgAllListManufacturer.dbItemID := Last_Insert_id('manufacturer');
end;

дело в том, что Last_Insert_id('manufacturer'); содержит много порраметров а без 'manufacturer' ни чего не происходит..

как провельно выделить последнюю запись?

в событии OnClick запись еще не была сохранена, используйте событие OnAfterClick, попробуйте так

procedure frmAddManufacturer_bSave_OnAfterClick (Sender: TObject);
begin
    frmAllListManufacturer.tgAllListManufacturer.dbItemID := frmAddManufacturer.bSave.dbGeneralTableId;
end;
Dmitry.

Re: последняя созданная запись

точно!!!
Даже и не подумал )))
Спасибо!