unit FFORPAGO;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBCtrls, StdCtrls, Buttons, ExtCtrls, Db, Menus, Mask, ComCtrls, ToolWin,
  ImgList, ActnList;

type
  TFORMASPAGO = class(TForm)
    DSFORMASPAGO: TDataSource;
    PDatos: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    Menu: TMainMenu;
    FORMAS1: TMenuItem;
    ALTAS1: TMenuItem;
    BAJAS1: TMenuItem;
    CONSULTAS1: TMenuItem;
    MODIFICACIONES1: TMenuItem;
    N1: TMenuItem;
    SALIR1: TMenuItem;
    REGISTRO1: TMenuItem;
    PRIMERO1: TMenuItem;
    ANTERIOR1: TMenuItem;
    SIGUIENTE1: TMenuItem;
    ToolBar1: TToolBar;
    baltas: TToolButton;
    bbajas: TToolButton;
    bconsultas: TToolButton;
    bmodificaciones: TToolButton;
    ToolButton5: TToolButton;
    DBNavigator2: TDBNavigator;
    ToolButton7: TToolButton;
    bsalir: TToolButton;
    ImageList1: TImageList;
    ActionList1: TActionList;
    AAltas: TAction;
    ABajas: TAction;
    AConsultas: TAction;
    AModificaciones: TAction;
    ASalir: TAction;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure BAltasClick(Sender: TObject);
    procedure BConsultasClick(Sender: TObject);
    procedure BBajasClick(Sender: TObject);
    procedure BModificacionesClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BSalirClick(Sender: TObject);
    procedure DSFORMASPAGOStateChange(Sender: TObject);
    procedure FORMAS1Click(Sender: TObject);
    procedure REGISTRO1Click(Sender: TObject);
    procedure PRIMERO1Click(Sender: TObject);
    procedure ANTERIOR1Click(Sender: TObject);
    procedure SIGUIENTE1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
  private
    { Private declarations }
    procedure EstadoBotones;
    function Getformapago:string;
  public
    { Public declarations }
    property formapago:string read Getformapago;// write SetTipo;
  end;

var
  FORMASPAGO: TFORMASPAGO;

implementation

uses udm, RUTINAS, DLGFORMASPAGO;

{$R *.DFM}

function tformaspago.Getformapago:string;
begin
    result:=dmst.CDSQ_FORMAPAGOID_FORMA_PAGO.asstring;
end;
procedure TFORMASPAGO.FormCreate(Sender: TObject);
begin
  dmst.CDSQ_FORMAPAGO.close;
end;


procedure TFORMASPAGO.FormDestroy(Sender: TObject);
begin
  dmst.CDSQ_FORMAPAGO.close;

end;
procedure TFORMASPAGO.FormShow(Sender: TObject);
begin
    EstadoBotones;
end;
procedure TFORMASPAGO.BConsultasClick(Sender: TObject);
begin
    dsformaspago.DataSet := nil;
    fdlgformaspago:= tfdlgformaspago.create(nil);
    fdlgformaspago.CerrarDataSet := false;
    fdlgformaspago.Showmodal;
    fdlgformaspago.Free;
    fdlgformaspago := nil;
    dsformaspago.dataset := dmst.CDSQ_FORMAPAGO;
end;
procedure TFORMASPAGO.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if (ActiveControl=nil) and (key=#13) then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;

    if (key = #13) and not (ActiveControl is TButton) then
    begin

        if uppercase(activecontrol.name)='DBEDIT3'
           then dmst.CDSQ_FORMAPAGO.post;

        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;

    if not (activeControl is TDBEdit) then
    begin
       if uppercase(key)='A' then if BAltas.enabled then BAltas.click;
       if uppercase(key)='B' then if BBajas.enabled then BBajas.click;
       if uppercase(key)='C' then if BConsultas.enabled then BConsultas.click;
       if uppercase(key)='M' then if BModificaciones.enabled then BModificaciones.click;
    end;

    if (key = #27) and not (dmst.CDSQ_FORMAPAGO.state in [dsedit,dsinsert])
      then close;

    if (key = #27) and not (ActiveControl is TButton) then
        if dmst.CDSQ_FORMAPAGO.state in [dsedit,dsinsert]
        then dmst.CDSQ_FORMAPAGO.post;
end;
procedure TFORMASPAGO.BSalirClick(Sender: TObject);
begin
    close;
    SELF.ModalResult:=mrOk;
end;
procedure TFORMASPAGO.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if key=38 then CambiarControl(SELF,false);
    if key=40 then CambiarControl(SELF,true);
end;
procedure TFORMASPAGO.REGISTRO1Click(Sender: TObject);
begin
   if dmst.CDSQ_FORMAPAGO.state in [dsedit,dsinsert] then
   begin
      primero1.enabled:=false;
      anterior1.enabled:=false;
      siguiente1.enabled:=false;
   end
   else
   begin
       primero1.enabled:=dmst.CDSQ_FORMAPAGO.bof=false;
       anterior1.enabled:=primero1.enabled;
       siguiente1.enabled:=dmst.CDSQ_FORMAPAGO.eof=false;
   end;
end;
procedure TFORMASPAGO.PRIMERO1Click(Sender: TObject);
begin
    dmst.CDSQ_FORMAPAGO.first;
end;

procedure TFORMASPAGO.ANTERIOR1Click(Sender: TObject);
begin
    dmst.CDSQ_FORMAPAGO.prior;
end;

procedure TFORMASPAGO.SIGUIENTE1Click(Sender: TObject);
begin
    dmst.CDSQ_FORMAPAGO.next;
end;
procedure TFORMASPAGO.BAltasClick(Sender: TObject);
begin
    WITH dmst.CDSQ_FORMAPAGO  DO
    BEGIN
     IF NOT Active THEN
     BEGIN
        dmst.FPBGRID  :='**';
        OPEN;
     END;
     APPEND;
    END;
    dbedit1.setfocus;
end;
procedure TFORMASPAGO.BBajasClick(Sender: TObject);
begin
    if (dmst.CDSQ_FORMAPAGO.recordcount>0) then
    begin
      dmst.CDSQ_FORMAPAGO.delete;
      dmst.CDSQ_FORMAPAGOafterpost(dmst.CDSQ_FORMAPAGO);
    end;
end;
procedure TFORMASPAGO.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    if dmst.CDSQ_FORMAPAGO.State in [dsedit,dsinsert] then
       dmst.CDSQ_FORMAPAGO.Post;
    Action := caFree;
//    self.Free; // Cual es la diferencia????
end;
procedure TFORMASPAGO.BModificacionesClick(Sender: TObject);
begin
    if dmst.CDSQ_FORMAPAGO.recordcount>0 then
    begin
        dmst.CDSQ_FORMAPAGO.edit;
        dbedit1.setfocus;
    end;
end;
procedure TFORMASPAGO.FORMAS1Click(Sender: TObject);
begin
    altas1.enabled:=baltas.enabled;
    bajas1.enabled:=bbajas.enabled;
    consultas1.enabled:=bconsultas.enabled;
    modificaciones1.enabled:=bmodificaciones.enabled;
end;

procedure TFORMASPAGO.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
  IF dmst.CDSQ_FORMAPAGO.Eof THEN
  try // para evitar el error de memoria bloqueada en el server.
     dmst.CDSQ_FORMAPAGO.GetNextPacket ;
  except
  end;
end;
procedure TFORMASPAGO.DSFORMASPAGOStateChange(Sender: TObject);
begin
    EstadoBotones;
end;
procedure TFORMASPAGO.EstadoBotones;
begin
    PDatos.enabled:=dmst.CDSQ_FORMAPAGO.state in [dsedit,dsinsert];
    BAltas.enabled:=dmst.CDSQ_FORMAPAGO.state IN [dsbrowse,DSINACTIVE];
    BConsultas.enabled:=dmst.CDSQ_FORMAPAGO.state IN [dsbrowse,DSINACTIVE];
    BModificaciones.enabled:=(dmst.CDSQ_FORMAPAGO.state IN [dsbrowse]) and (dmst.CDSQ_FORMAPAGO.recordcount>0);
    BBajas.enabled:=(dmst.CDSQ_FORMAPAGO.state IN [dsbrowse]) and (dmst.CDSQ_FORMAPAGO.recordcount>0);
end;

end.




