unit fepis;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, ZAbstractRODataset,
  ZAbstractDataset, ZDataset, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls;

type
  Tepis = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    Panel4: TPanel;
    DBGrid2: TDBGrid;
    Panel7: TPanel;
    btAcancelar: TButton;
    btAmodificar: TButton;
    btAborrar: TButton;
    btAnuevo: TButton;
    btAguardar: TButton;
    dsqepis: TDataSource;
    qidepis: TZQuery;
    qepis: TZQuery;
    qepisid: TIntegerField;
    qepiside: TIntegerField;
    qepisdescripcion: TWideStringField;
    qidepisid: TLargeintField;
    procedure btAnuevoClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure btAguardarClick(Sender: TObject);
    procedure btAmodificarClick(Sender: TObject);
    procedure btAborrarClick(Sender: TObject);
    procedure btAcancelarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  epis: Tepis;

implementation

{$R *.dfm}

uses datos;

procedure Tepis.btAborrarClick(Sender: TObject);
begin
  qepis.Delete;
end;

procedure Tepis.btAcancelarClick(Sender: TObject);
begin
  qepis.Cancel;
end;

procedure Tepis.btAguardarClick(Sender: TObject);
begin
  qepis.Post;
end;

procedure Tepis.btAmodificarClick(Sender: TObject);
begin
  qepis.Edit;
end;

procedure Tepis.btAnuevoClick(Sender: TObject);
begin
   qidepis.Close;
   qidepis.Prepare;
   qidepis.ParamByName('empresa').AsInteger:=dm.tempresaid.asinteger;
   qidepis.open;
   qepis.append;
   qepisid.Value:=qidepisid.asinteger;
   qepiside.value:=dm.tempresaid.asinteger;
   dbgrid2.setfocus;

end;

procedure Tepis.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
    if (activecontrol is tdbgrid) then
    begin
        if Key = 13 then Key :=9;
    end;
end;

procedure Tepis.FormKeyPress(Sender: TObject; var Key: Char);
var formatos:tformatsettings;
punto:string;
begin
    GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formatos);
    punto:=formatos.DecimalSeparator;
    if punto=',' then
    begin
        key:=upcase(key);
        if (key='.') and (activecontrol is tdbgrid) then
        begin
            key:=','
        end;
    end;
    if (activecontrol is tdbgrid) then
    begin
        if Key = #13 then Key :=#9;
    end;

    if (key=#13) then
    begin
        Perform(WM_NextDLGCtl,0,0);
        key:=#0;
    end;
end;

procedure Tepis.FormShow(Sender: TObject);
begin
  qepis.Open;
end;

end.
