unit CadCliente;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ImgList, StdCtrls, DBCtrls, Mask, ExtCtrls, ComCtrls,
  ToolWin;

type
  TF_CadCliente = class(TForm)
    ToolBar1: TToolBar;
    BtnNovo: TToolButton;
    ToolButton2: TToolButton;
    BtnEditar: TToolButton;
    ToolButton1: TToolButton;
    BtnSalvar: TToolButton;
    ToolButton3: TToolButton;
    BtnCancelar: TToolButton;
    ToolButton4: TToolButton;
    BtnExcluir: TToolButton;
    ToolButton5: TToolButton;
    BtnPesquisar: TToolButton;
    ToolButton9: TToolButton;
    BtnRelatorio: TToolButton;
    ToolButton8: TToolButton;
    BtnNavegar: TDBNavigator;
    Panel3: TPanel;
    Panel2: TPanel;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label9: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label1: TLabel;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit1: TDBEdit;
    DBComboBox1: TDBComboBox;
    ImageList2: TImageList;
    ImageList1: TImageList;
    DSCliente: TDataSource;
    procedure BtnNovoClick(Sender: TObject);
    procedure BtnEditarClick(Sender: TObject);
    procedure BtnSalvarClick(Sender: TObject);
    procedure BtnExcluirClick(Sender: TObject);
    procedure BtnCancelarClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Procedure EstadoBotoes;
  end;

var
  F_CadCliente: TF_CadCliente;

implementation

uses DMConexao;

{$R *.dfm}

procedure TF_CadCliente.BtnNovoClick(Sender: TObject);
var
adiciona :Integer;
begin
 Dm.TbCliente.Last;
  adiciona := DM.TbClienteCOD_Cliente.Value + 1;
     Dm.TbCliente.Append;
      Dm.TbClienteCOD_Cliente.Value := adiciona;
      DBEdit2.SetFocus;
      estadobotoes;

end;

procedure TF_CadCliente.EstadoBotoes;
begin
With(DSCliente.DataSet)Do  // registros, de acordo com o estado atual do DataSet.
   Begin
      BtnNovo.Enabled := State = dsBrowse;
      BtnSalvar.Enabled := State In [dsInsert,dsEdit];
      BtnEditar.Enabled := ((State = dsBrowse) And (RecordCount > 0));
      BtnCancelar.Enabled := State In [dsInsert,dsEdit];
      BtnExcluir.Enabled := ((State = dsBrowse) And (RecordCount > 0));
      BtnNavegar.Enabled := State = dsBrowse;
      BtnPesquisar.Enabled := ((State = dsBrowse) And (RecordCount > 0));
      BtnRelatorio.Enabled := ((State = dsBrowse) And (RecordCount > 0));
end;
end;

procedure TF_CadCliente.BtnEditarClick(Sender: TObject);
begin
if Dm.TbClienteCOD_Cliente.Value = 0 then
 begin
 MessageBeep(64);
 showmessage('Não há registro a ser alterado');
 exit;
 end;
 Dm.TbCliente.Edit;
 DBEdit2.SetFocus;
 estadobotoes;
end;

procedure TF_CadCliente.BtnSalvarClick(Sender: TObject);
begin
if Dm.TbClienteNOME.Value = ''Then
Begin
 Messagebox(handle, 'O campo Nome não pode ficar em branco ','Atenção !!! ',MB_OK + MB_ICONERROR);
 DBEdit2.SetFocus;
 exit;
 end;
 if Dm.TbClienteRG.Value = ''Then
Begin
 Messagebox(handle, 'O campo RG não pode ficar em branco ','Atenção !!! ',MB_OK + MB_ICONERROR);
 DBEdit3.SetFocus;
 exit;
 end;
 if Dm.TbClienteCPF.Value = ''Then
Begin
 Messagebox(handle, 'O campo CPF não pode ficar em branco ','Atenção !!! ',MB_OK + MB_ICONERROR);
 DBEdit4.SetFocus;
 exit;
 end;
 if Dm.TbClienteENDERECO.Value = ''Then
Begin
 Messagebox(handle, 'O campo ENDERECO não pode ficar em branco ','Atenção !!! ',MB_OK + MB_ICONERROR);
 DBEdit5.SetFocus;
 exit;
 end;
Dm.TbCliente.Post;
Dm.TbCliente.ApplyUpdates(0);
estadobotoes;
end;

procedure TF_CadCliente.BtnExcluirClick(Sender: TObject);
begin
 If messagebox(handle, 'Deseja excluir este registro ','Atenção !!! ',MB_YESNO + MB_ICONINFORMATION) = mrYes then
  begin
  DM.TbCliente.Delete;
  DM.TbCliente.ApplyUpdates(0);
  End;
end;

procedure TF_CadCliente.BtnCancelarClick(Sender: TObject);
begin
 If messagebox(handle, 'Deseja Cancelar este registro ','Atenção !!! ',MB_YESNO + MB_ICONINFORMATION) = mrYes then
  begin
  DM.TbCliente.Cancel;
  End;
  estadobotoes;
end;

procedure TF_CadCliente.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
Dm.TbCliente.Close;
end;

procedure TF_CadCliente.FormShow(Sender: TObject);
begin
Dm.TbCliente.Open;
end;

end.
