unit uFormCadCidades;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uFormModelodeCadastro, Mask, DBCtrls, daDBEdit, StdCtrls, daEdit,
  Menus, DB, Buttons, ExtCtrls, FMTBcd, SqlExpr, DBClient, Provider, jpeg;

type
  TfrmCadCidades = class(TfrmModelodeCadastro)
    edtEstado: TdaDBEdit;
    Label3: TLabel;
    edtCidade: TdaDBEdit;
    Label5: TLabel;
    edtCodCid: TdaEdit;
    Label2: TLabel;
    SDSCadCidades: TSQLDataSet;
    DSPCadCidades: TDataSetProvider;
    CDSCadCidades: TClientDataSet;
    qryCidades: TSQLQuery;
    SDSCadCidadesID_CIDADE: TIntegerField;
    SDSCadCidadesCIDADE: TStringField;
    SDSCadCidadesUF: TStringField;
    SDSCadCidadesFLAG: TSmallintField;
    CDSCadCidadesID_CIDADE: TIntegerField;
    CDSCadCidadesCIDADE: TStringField;
    CDSCadCidadesUF: TStringField;
    CDSCadCidadesFLAG: TSmallintField;
    procedure btnNovoClick(Sender: TObject);
    procedure btnSalvarClick(Sender: TObject);
    procedure btnExcluirClick(Sender: TObject);
    procedure btnAlterarClick(Sender: TObject);
    procedure btnCancelarClick(Sender: TObject);
    procedure CDSCadCidadesAfterPost(DataSet: TDataSet);
    procedure CDSCadCidadesBeforePost(DataSet: TDataSet);
    procedure btnPesquisarClick(Sender: TObject);
    procedure F10Click(Sender: TObject);
    procedure Novo1Click(Sender: TObject);
  private
    procedure LimpaFormulario;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCadCidades: TfrmCadCidades;

implementation

uses uDM, uFuncoes, uFormPesqCidades;

{$R *.dfm}

procedure TfrmCadCidades.btnAlterarClick(Sender: TObject);
begin
  inherited;
  edtCidade.SetFocus;
  btnAlterar.Enabled := False;
end;

procedure TfrmCadCidades.btnCancelarClick(Sender: TObject);
begin
  inherited;
  LimpaFormulario;
end;

procedure TfrmCadCidades.btnExcluirClick(Sender: TObject);
begin
  inherited;
  if Confirma then
  begin
    Confirma := False;
    edtCodCid.Clear;
    btnNovo.SetFocus;
  end;
end;

procedure TfrmCadCidades.btnNovoClick(Sender: TObject);
begin
  inherited;
  qryCidades.Close;
  qryCidades.Open;
  edtCodCid.Text := qryCidades.FieldByName('id_cidade').AsString;
  edtCidade.SetFocus;
end;

procedure TfrmCadCidades.btnPesquisarClick(Sender: TObject);
begin
  inherited;
  if btnPesquisar.Enabled = True then
    begin
      Application.CreateForm(TfrmPesqCidades,frmPesqCidades);
      if frmPesqCidades.ShowModal = mrOk then
      begin
        SDSCadCidades.Close;
        CDSCadCidades.Close;
        SDSCadCidades.ParamByName('id_cidade').AsInteger := frmPesqCidades.CDSPesqCidadesID_CIDADE.AsInteger;
        CDSCadCidades.Open;

        edtCodCid.Text := frmPesqCidades.CDSPesqCidadesID_CIDADE.AsString;

        AtivarBotoes(True);   
        btnSalvar.Enabled := False;  

        edtCodCid.Enabled := False;
        frmPesqCidades.CDSPesqCidades.Close;
        PanelCenter.Enabled := False;
        btnAlterar.SetFocus;

      end;
      FreeAndNil(frmPesqCidades);
    end;
end;

procedure TfrmCadCidades.btnSalvarClick(Sender: TObject);
begin
  inherited;
  TRY
    dstGenerico.DataSet.Post;
    AtivarBotoes(False);
    CaixadeMensagemAviso('Registro Gravado com Sucesso!');
    LimpaFormulario;
  Except
    ON EDataBaseError DO
      BEGIN
        CaixadeMensagemAviso('Campo [ CIDADE ou UF ] deve ser Preenchido!');
      END;
  END;
end;

procedure TfrmCadCidades.CDSCadCidadesAfterPost(DataSet: TDataSet);
begin
  inherited;
  CDSCadCidades.ApplyUpdates(-1);
end;

procedure TfrmCadCidades.CDSCadCidadesBeforePost(DataSet: TDataSet);
begin
  inherited;
  CDSCadCidadesID_CIDADE.AsInteger := StrToInt(edtCodCid.Text);
end;

procedure TfrmCadCidades.F10Click(Sender: TObject);
begin
  inherited;
  btnPesquisarClick(btnPesquisar);
end;

procedure TfrmCadCidades.LimpaFormulario;
begin
  CDSCadCidades.Close;
  edtCodCid.Clear;
  PanelCenter.Enabled := False;
  btnNovo.SetFocus;
end;

procedure TfrmCadCidades.Novo1Click(Sender: TObject);
begin
  inherited;
  btnNovoClick(btnNovo);
end;

end.
