You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1433 lines
44 KiB

unit ucadCredor;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, umstCadastro, Data.DB, Vcl.ExtCtrls,
Vcl.DBCtrls, Vcl.StdCtrls, Vcl.Mask, Vcl.ComCtrls, Vcl.Grids, Vcl.DBGrids,
Vcl.Buttons, StrUtils, Types, System.ImageList, Vcl.ImgList, ACBrBase,
ACBrSocket, ACBrCEP, rDBComponents, Vcl.Menus, System.UITypes, ClipBrd,
ZAbstractRODataset,
ZDataset;
// Tentando "Hackear" o TDBNavigator
type
THackDBNavigator = class(TDBNavigator);
type
TcadCredor = class(TmstCadastro)
lbl_cidade: TLabel;
dblucmbox_cidade: TDBLookupComboBox;
lbl_bairro: TLabel;
dbedt_bairro: TDBEdit;
dbedt_tel: TDBEdit;
lbl_tel: TLabel;
dbedt_email: TDBEdit;
lbl_email: TLabel;
dbedt_website: TDBEdit;
lbl_website: TLabel;
dbedt_fantasia: TDBEdit;
lbl_fantasia: TLabel;
lbl_cnpj: TLabel;
lbl_inscriest: TLabel;
dbedt_inscriest: TDBEdit;
lbl_inscrimuni: TLabel;
dbedt_inscrimuni: TDBEdit;
dbedt_cep: TDBEdit;
lbl_cep: TLabel;
dbedt_end: TDBEdit;
lbl_end: TLabel;
dbedt_num: TDBEdit;
lbl_num: TLabel;
dbedt_compl: TDBEdit;
lbl_compl: TLabel;
dblucmbox_uf: TDBLookupComboBox;
lbl_uf: TLabel;
ImageList1: TImageList;
spdbtn_pesquisa: TSpeedButton;
tabTabelas: TTabSheet;
lbl_dtinicio: TLabel;
lbl_faixa: TLabel;
lbl_dtfim: TLabel;
gb_politica: TGroupBox;
lbl_fdias: TLabel;
dbedt_diai: TDBEdit;
dbedt_diaf: TDBEdit;
lbl_extra1: TLabel;
gb_encargos: TGroupBox;
lbl_multa: TLabel;
dbedt_multa: TDBEdit;
lbl_juros: TLabel;
dbedt_juros: TDBEdit;
gb_desc: TGroupBox;
gb_faixas: TGroupBox;
tabObservacoes: TTabSheet;
dbmemo_obs: TDBMemo;
btn_clearmemo: TButton;
navSecundario: TDBNavigator;
dbl_poli: TDBLookupComboBox;
dbl_faixa: TDBLookupComboBox;
dtsPol: TDataSource;
dtsFaixa: TDataSource;
spdbtn_verIE: TSpeedButton;
ACBrCEP1: TACBrCEP;
dbedt_cnpj: TDBEdit;
dbdate_politicai: TrDBDateTimePicker;
dbdate_politicaf: TrDBDateTimePicker;
gb_listcredores: TGroupBox;
navFaixas: TDBNavigator;
lbl_nomepoli: TLabel;
dbedt_nomepoli: TDBEdit;
lbl_nomefaixa: TLabel;
dbedt_nomefaixa: TDBEdit;
pnl_poli: TPanel;
pnl_encargos: TPanel;
pnl_faixa: TPanel;
mmnuCredor: TMainMenu;
Novo1: TMenuItem;
Credor: TMenuItem;
N1: TMenuItem;
Poltica1: TMenuItem;
Faixa1: TMenuItem;
dtsCidades: TDataSource;
dtsEstados: TDataSource;
PopupMenu1: TPopupMenu;
Copiar1: TMenuItem;
dblucb_repasse: TDBLookupComboBox;
lbl_repasse: TLabel;
dbgrd_credoreslist: TDBGrid;
pcTarifas: TPageControl;
tabBasico: TTabSheet;
tabPolitica: TTabSheet;
GroupBox1: TGroupBox;
dbedt_taxabasicaentradamin: TDBEdit;
lbl_taxabasicaentrada: TLabel;
dbedt_taxabasicamulta: TDBEdit;
lbl_taxabasicamulta: TLabel;
dbedt_taxabasicajuros: TDBEdit;
lbl_taxabasicajuros: TLabel;
dbedt_nparcelasbasico: TDBEdit;
lbl_nparcelasbasico: TLabel;
GroupBox3: TGroupBox;
gb_descquitbasico: TGroupBox;
lbl_descquitencbasico: TLabel;
dbedt_descquitindfinbasico: TDBEdit;
lbl_descquitprinbasico: TLabel;
dbedt_descquitprinbasico: TDBEdit;
lbl_descquitmultabasico: TLabel;
lbl_descquitjurosbasico: TLabel;
dbedt_descquitmultabasico: TDBEdit;
dbedt_descquitjurosbasico: TDBEdit;
gb_descfinbasico: TGroupBox;
lbl_descfintencbasico: TLabel;
dbedt_descfinindfinbasico: TDBEdit;
lbl_descfintprinbasico: TLabel;
dbedt_descfinprinbasico: TDBEdit;
lbl_descfintmultabasico: TLabel;
dbedt_descfinmultabasico: TDBEdit;
lbl_descfintjurosbasico: TLabel;
dbedt_descfinjurosbasico: TDBEdit;
tabIndicador: TTabSheet;
dtsIndicadorFinanceiro: TDataSource;
navIndicadorFinanceiro: TDBNavigator;
pnl_indicadorfinanceiro: TPanel;
dbgrd_indicadorfinanceiro: TDBGrid;
lbl_indfinpr: TLabel;
dbedt_indfinpr: TDBEdit;
dbedt_indfinatrasomin: TDBEdit;
lbl_indfinatrasomin: TLabel;
dbedt_indfinvlfix: TDBEdit;
lbl_indfinvlfix: TLabel;
dbedt_indfinatrasomax: TDBEdit;
lbl_indfinatrasomax: TLabel;
dbrgrp_indfintipo: TDBRadioGroup;
gb_descquitfaixa: TGroupBox;
lbl_descquitindfinfaixa: TLabel;
lbl_descquitprinfaixa: TLabel;
lbl_descquitmultafaixa: TLabel;
lbl_descquitjurosfaixa: TLabel;
dbedt_descquitindfinfaixa: TDBEdit;
dbedt_descquitprinfaixa: TDBEdit;
dbedt_descquitmultafaixa: TDBEdit;
dbedt_descquitjurosfaixa: TDBEdit;
gb_descfinfaixa: TGroupBox;
lbl_descfinindfinfaixa: TLabel;
lbl_descfinprinfaixa: TLabel;
lbl_descfinmultafaixa: TLabel;
lbl_descfinjurosfaixa: TLabel;
dbedt_descfinindfinfaixa: TDBEdit;
dbedt_descfinprinfaixa: TDBEdit;
dbedt_descfinmultafaixa: TDBEdit;
dbedt_descfinjurosfaixa: TDBEdit;
lbl_taxabasicaindfin: TLabel;
dbedt_taxabasicaindfin: TDBEdit;
dbedt_descquitcorbasico: TDBEdit;
Label1: TLabel;
dbedt_descfincorbasico: TDBEdit;
Label2: TLabel;
dbedt_descquitcorfaixa: TDBEdit;
Label3: TLabel;
dbedt_descfincorfaixa: TDBEdit;
Label4: TLabel;
Label5: TLabel;
DBEdit2: TDBEdit;
Pesquisa: TGroupBox;
edt_procura: TEdit;
dbrg_tpentrada: TDBRadioGroup;
Label6: TLabel;
dbedt_taxabasicaentradamax: TDBEdit;
GroupBox4: TGroupBox;
dbrg_din: TDBRadioGroup;
dbrg_che: TDBRadioGroup;
dbrg_cred: TDBRadioGroup;
rDBDateTimePicker1: TrDBDateTimePicker;
rDBDateTimePicker2: TrDBDateTimePicker;
Label7: TLabel;
dbrg_tpfaixa: TDBRadioGroup;
DBLookupComboBox1: TDBLookupComboBox;
Label8: TLabel;
tabRepasses: TTabSheet;
dtsRepasse: TDataSource;
navRepasse: TDBNavigator;
dbgrdrepasse: TDBGrid;
pcRepasse: TPageControl;
tabRepassedados: TTabSheet;
tabRepasseFase: TTabSheet;
dbgrrepassedados: TDBGrid;
Label9: TLabel;
DBEdit3: TDBEdit;
Label10: TLabel;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
Label11: TLabel;
DBEdit6: TDBEdit;
Label12: TLabel;
DBEdit7: TDBEdit;
Label13: TLabel;
DBEdit8: TDBEdit;
Label14: TLabel;
DBGrid1: TDBGrid;
navrepassefase: TDBNavigator;
dtsRepasseFase: TDataSource;
DBComboBox1: TDBComboBox;
DBComboBox2: TDBComboBox;
Label15: TLabel;
Label16: TLabel;
btn_reprepasse: TButton;
DBRadioGroup1: TDBRadioGroup;
Label17: TLabel;
DBEdit9: TDBEdit;
DBRadioGroup2: TDBRadioGroup;
DBEdit10: TDBEdit;
Label18: TLabel;
zroqryTestaRepasse: TZReadOnlyQuery;
procedure FormCreate(Sender: TObject);
procedure dtsDBDataChange(Sender: TObject; Field: TField);
procedure spdbtn_pesquisaClick(Sender: TObject);
procedure btn_clearmemoClick(Sender: TObject);
procedure navSecundarioBeforeAction(Sender: TObject; Button: TNavigateBtn);
procedure dtsFaixaDataChange(Sender: TObject; Field: TField);
procedure dtsPolDataChange(Sender: TObject; Field: TField);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure spdbtn_verIEClick(Sender: TObject);
procedure ACBrCEP1BuscaEfetuada(Sender: TObject);
procedure dbedt_cepKeyPress(Sender: TObject; var Key: Char);
procedure navFaixasBeforeAction(Sender: TObject; Button: TNavigateBtn);
procedure CredorClick(Sender: TObject);
procedure Poltica1Click(Sender: TObject);
procedure Faixa1Click(Sender: TObject);
procedure dtsEstadosDataChange(Sender: TObject; Field: TField);
procedure dtsCidadesDataChange(Sender: TObject; Field: TField);
procedure Copiar1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure dtsDBStateChange(Sender: TObject);
procedure dtsPolStateChange(Sender: TObject);
procedure dtsFaixaStateChange(Sender: TObject);
procedure PopupMenu1Popup(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure navPrincipalBeforeAction(Sender: TObject; Button: TNavigateBtn);
procedure pcClientesChange(Sender: TObject);
procedure dtsIndicadorFinanceiroStateChange(Sender: TObject);
procedure navIndicadorFinanceiroBeforeAction(Sender: TObject;
Button: TNavigateBtn);
procedure FormShow(Sender: TObject);
procedure dbgrd_indicadorfinanceiroTitleClick(Column: TColumn);
procedure edt_procuraChange(Sender: TObject);
procedure dbrg_tpentradaClick(Sender: TObject);
procedure dtsRepasseStateChange(Sender: TObject);
procedure dtsRepasseFaseStateChange(Sender: TObject);
procedure btn_reprepasseClick(Sender: TObject);
procedure navRepasseBeforeAction(Sender: TObject; Button: TNavigateBtn);
procedure pcRepasseChange(Sender: TObject);
private
old_id: integer;
function FindSubcontrolAtPos(AControl: TControl;
AScreenPos, AClientPos: TPoint): TControl;
function FindControlAtPos(AScreenPos: TPoint): TControl;
procedure SetupHackedNavigator(const Navigator: TDBNavigator;
const Glyphs: TImageList; S: string);
procedure WMMoving(var Msg: TWMMoving); message WM_MOVING;
procedure ChecaPermissoes;
{ Private declarations }
public
pos: TPoint;
primeiro_cad: Boolean;
{ Public declarations }
end;
var
cadCredor: TcadCredor;
implementation
{$R *.dfm}
uses udtmSystem, ufrmPesquisa, ufrmVerIE, ufrmCobranca, ufrmLiberaPermissao;
procedure TcadCredor.CredorClick(Sender: TObject);
begin
// add um novo beneficiário
pcClientes.TabIndex := 0;
navPrincipal.DataSource.DataSet.Append;
end;
procedure TcadCredor.btn_clearmemoClick(Sender: TObject);
begin
inherited;
// limpa as linhas do memo box
dbmemo_obs.Lines.Clear;
end;
procedure TcadCredor.btn_reprepasseClick(Sender: TObject);
var
i, ano: integer;
pr, multa, juros, enc, cor: double;
begin
inherited;
with dtmSystem do
begin
if not tblEmpresaRepasse.IsEmpty then
begin
if Messagedlg
('Deseja repetir este repasse ao longo do ano a que ele pertence?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
pr := tblEmpresaRepassePR_PRINCIPAL.AsFloat;
multa := tblEmpresaRepassePR_MULTA.AsFloat;
juros := tblEmpresaRepassePR_JUROS.AsFloat;
enc := tblEmpresaRepassePR_ENCARGOS.AsFloat;
cor := tblEmpresaRepassePR_CORRIGIDO.AsFloat;
ano := tblEmpresaRepasseID_ANO.AsInteger;
tblEmpresaRepasse.Filtered := false;
tblEmpresaRepasse.Filter := 'ID_ANO = ' +
tblEmpresaRepasseID_ANO.AsString;
tblEmpresaRepasse.Filtered := True;
for i := 1 to 12 do
begin
if not tblEmpresaRepasse.Locate('ID_MES', i, []) then
begin
tblEmpresaRepasse.Append;
tblEmpresaRepassePR_PRINCIPAL.AsFloat := pr;
tblEmpresaRepassePR_MULTA.AsFloat := multa;
tblEmpresaRepassePR_JUROS.AsFloat := juros;
tblEmpresaRepassePR_ENCARGOS.AsFloat := enc;
tblEmpresaRepassePR_CORRIGIDO.AsFloat := cor;
tblEmpresaRepasseID_MES.AsInteger := i;
tblEmpresaRepasseID_ANO.AsInteger := ano;
tblEmpresaRepasseTX_NOME.AsString := inttostr(i) + '/' +
inttostr(ano);
tblEmpresaRepasse.Post;
end;
end;
tblEmpresaRepasse.Filtered := false;
tblEmpresaRepasse.Filter := '';
Showmessage('Processo terminado!');
end;
end;
end;
end;
procedure TcadCredor.ChecaPermissoes;
begin
with dtmSystem do
begin
navPrincipal.Enabled := VerificarPermissao('CBR.02.02.01');
if not VerificarPermissao('CBR.02.02.01.01') then
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons - [nbInsert];
if not VerificarPermissao('CBR.02.02.01.02') then
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons - [nbEdit];
if not VerificarPermissao('CBR.02.02.01.03') then
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons - [nbDelete];
tabTabelas.Enabled := VerificarPermissao('CBR.02.02.01.04');
navSecundario.Enabled := VerificarPermissao('CBR.02.02.02');
navFaixas.Enabled := VerificarPermissao('CBR.02.02.03');
navIndicadorFinanceiro.Enabled := VerificarPermissao('CBR.02.02.04');
end;
end;
procedure TcadCredor.Copiar1Click(Sender: TObject);
var
Control: TControl;
begin
// usa duas funções que achei na net pra pegar o controle na pos do mouse pra poder copiar o conteúdo dele mesmo desabilitado
Control := FindControlAtPos(pos);
if Control is TDBEdit then
begin
Clipboard.AsText := (Control as TDBEdit).Text;
end;
if Control is TDBLookupComboBox then
begin
Clipboard.AsText := (Control as TDBLookupComboBox).Text;
end;
if Control is TrDBDateTimePicker then
begin
Clipboard.AsText := formatdatetime('dd/mm/yyyy',
(Control as TrDBDateTimePicker).Date);
end;
if Control is TDBMemo then
begin
(Control as TDBMemo).SelectAll;
(Control as TDBMemo).CopyToClipboard;
end;
end;
procedure TcadCredor.dbedt_cepKeyPress(Sender: TObject; var Key: Char);
begin
// busca endereço pelo cep ao apertar enter
if (Key = #13) then
begin
ACBrCEP1.BuscarPorCEP(dbedt_cep.Text);
end;
end;
procedure TcadCredor.dbgrd_indicadorfinanceiroTitleClick(Column: TColumn);
begin
inherited;
dtmSystem.OrganizaPorColuna
(dbgrd_indicadorfinanceiro.DataSource.DataSet, Column);
end;
procedure TcadCredor.dbrg_tpentradaClick(Sender: TObject);
begin
inherited;
if dbrg_tpentrada.ItemIndex = 0 then
begin
dbedt_taxabasicaentradamin.Enabled := True;
dbedt_taxabasicaentradamax.Enabled := True;
end
else
begin
dbedt_taxabasicaentradamin.Enabled := false;
dbedt_taxabasicaentradamax.Enabled := false;
end;
end;
procedure TcadCredor.dtsCidadesDataChange(Sender: TObject; Field: TField);
begin
// arruma o combo box com o id da cidade se existir
if (dtmSystem.tblEnderecosID_CIDADE.AsVariant >= 0) then
begin
dblucmbox_cidade.KeyValue := dtmSystem.tblEnderecosID_CIDADE.AsVariant;
end;
end;
procedure TcadCredor.dtsDBDataChange(Sender: TObject; Field: TField);
var
new_id: integer;
mes, ano, name: string;
begin
// acontece sempre que muda algum dado no dtsDB desta janela
if dbrg_tpentrada.ItemIndex = 0 then
begin
dbedt_taxabasicaentradamin.Enabled := True;
dbedt_taxabasicaentradamax.Enabled := True;
end
else
begin
dbedt_taxabasicaentradamin.Enabled := false;
dbedt_taxabasicaentradamax.Enabled := false;
end;
stbStatus.Panels[0].Text := 'Nº de Credores cadastrados: ' +
inttostr(dtsDB.DataSet.RecordCount) + '.';
// new_id := dtmSystem.tblCHGEmpresaID_EMPRESA.AsInteger;
// if (old_id <> new_id) and (self.Active) then
// begin
navSecundario.Enabled := not(dtsDB.DataSet.IsEmpty);
new_id := dtmSystem.tblCHGEmpresaID_EMPRESA.AsInteger;
if (old_id <> new_id) and (self.Active) then
begin
if old_id <> -1 then
begin
mes := copy(formatdatetime('yyyy-mm-dd', Date), 6, 2);
ano := copy(formatdatetime('yyyy-mm-dd', Date), 1, 4);
zroqryTestaRepasse.SQL.Text :=
'select * from chg_empresa_repasse where id_empresa = ' +
QuotedStr(inttostr(old_id)) + ' and id_mes = ' + QuotedStr(mes) +
' and id_ano = ' + QuotedStr(ano);
zroqryTestaRepasse.Open;
if zroqryTestaRepasse.IsEmpty then
begin
Showmessage('A empresa ' + name +
' não possui repasse para este mês. Isso impedirá a geração de recibos de títulos dessa empresa.');
end;
end;
old_id := new_id;
name := dtmSystem.tblCHGEmpresaTX_FANTASIA.AsString;
ChecaPermissoes;
end;
end;
procedure TcadCredor.dtsDBStateChange(Sender: TObject);
begin
// grpDescricao.Enabled := dtsDB.State in [dsEdit, dsInsert];
// tabCadastro.Enabled := grpDescricao.Enabled;
inherited;
// dbgrd_credoreslist.Enabled := not(dtsDB.DataSet.IsEmpty);
// tabCadastro.Enabled := dtsDB.State in [dsEdit, dsInsert];
tabBasico.Enabled := dtsDB.State in [dsEdit, dsInsert];
edt_procura.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
tabObservacoes.Enabled := grpDescricao.Enabled;
dbmemo_obs.Enabled := grpDescricao.Enabled;
tabPolitica.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
tabIndicador.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
tabRepasses.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
// tabTabelas.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
end;
procedure TcadCredor.dtsEstadosDataChange(Sender: TObject; Field: TField);
begin
// arruma o combo box da cidade e do estado
if (dtmSystem.tblEnderecosID_ESTADO.AsVariant >= 0) then
begin
dblucmbox_uf.KeyValue := dtmSystem.tblEstadosID_ESTADO.AsVariant;
end;
if (dtmSystem.tblEnderecosID_CIDADE.AsVariant >= 0) then
begin
dblucmbox_cidade.KeyValue := dtmSystem.tblCidadesID_CIDADE.AsVariant;
end;
end;
procedure TcadCredor.dtsFaixaDataChange(Sender: TObject; Field: TField);
begin
if (dtmSystem.tblFaixasID_FAIXA.AsVariant >= 0) and
(dtsFaixa.State in [dsBrowse]) then
begin
dbl_faixa.KeyValue := dtmSystem.tblFaixasID_FAIXA.AsVariant;
end;
end;
procedure TcadCredor.dtsFaixaStateChange(Sender: TObject);
begin
// acontece sempre que tiver mudança nos dados do db de faixas, mesma coisa de ali em cima
pnl_faixa.Enabled := dtsFaixa.State in [dsEdit, dsInsert];
gb_encargos.Enabled := dtsFaixa.State in [dsEdit, dsInsert];
gb_desc.Enabled := dtsFaixa.State in [dsEdit, dsInsert];
gb_politica.Enabled := not(dtsFaixa.State in [dsEdit, dsInsert]);
edt_procura.Enabled := not(dtsFaixa.State in [dsEdit, dsInsert]);
// tabCadastro.Enabled := not (dtsFaixa.State in [dsEdit, dsInsert]);
navPrincipal.Enabled := not(dtsFaixa.State in [dsEdit, dsInsert]);
if pcTarifas.ActivePage <> tabBasico then
begin
tabBasico.Enabled := not(dtsFaixa.State in [dsEdit, dsInsert]);
end;
if dtsFaixa.State in [dsEdit, dsInsert] then
begin
tabObservacoes.Enabled := false;
end;
navSecundario.Enabled := not(dtsFaixa.State in [dsEdit, dsInsert]);
end;
procedure TcadCredor.dtsIndicadorFinanceiroStateChange(Sender: TObject);
begin
inherited;
pnl_indicadorfinanceiro.Enabled := dtsIndicadorFinanceiro.State
in [dsEdit, dsInsert];
navPrincipal.Enabled := not(dtsIndicadorFinanceiro.State
in [dsEdit, dsInsert]);
edt_procura.Enabled := not(dtsIndicadorFinanceiro.State
in [dsEdit, dsInsert]);
navSecundario.Enabled := not(dtsIndicadorFinanceiro.State
in [dsEdit, dsInsert]);
navFaixas.Enabled := not(dtsIndicadorFinanceiro.State in [dsEdit, dsInsert]);
end;
procedure TcadCredor.dtsPolDataChange(Sender: TObject; Field: TField);
begin
navFaixas.Enabled := not(dtsPol.DataSet.IsEmpty);
if (dtmSystem.tblPoliticasID_POLITICA.AsVariant >= 0) and
(dtsPol.State in [dsBrowse]) then
begin
dbl_poli.KeyValue := dtmSystem.tblPoliticasID_POLITICA.AsVariant;
end;
if (dtmSystem.tblFaixasID_FAIXA.AsVariant >= 0) and
(dtsFaixa.State in [dsBrowse]) then
begin
dbl_faixa.KeyValue := dtmSystem.tblFaixasID_FAIXA.AsVariant;
end;
end;
procedure TcadCredor.dtsPolStateChange(Sender: TObject);
begin
// //mesmo de ali em cima, só que com o dbPoliticas
pnl_poli.Enabled := dtsPol.State in [dsEdit, dsInsert];
dbl_poli.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
edt_procura.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
gb_encargos.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
gb_faixas.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
gb_desc.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
// tabCadastro.Enabled := not (dtsPol.State in [dsEdit, dsInsert]);
tabObservacoes.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
tabIndicador.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
navPrincipal.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
end;
procedure TcadCredor.dtsRepasseFaseStateChange(Sender: TObject);
begin
inherited;
if (dtsRepasseFase.State in [dsEdit, dsInsert]) then
begin
DBGrid1.Options := DBGrid1.Options + [dgEditing];
end
else
begin
DBGrid1.Options := DBGrid1.Options - [dgEditing];
end;
end;
procedure TcadCredor.dtsRepasseStateChange(Sender: TObject);
begin
inherited;
tabRepasseFase.Enabled := not(dtsRepasse.State in [dsEdit, dsInsert]);
tabRepassedados.Enabled := (dtsRepasse.State in [dsEdit, dsInsert]);
end;
procedure TcadCredor.edt_procuraChange(Sender: TObject);
begin
inherited;
dtmSystem.tblCHGEmpresa.Locate('TX_NOME', edt_procura.Text,
[loCaseInsensitive, loPartialKey]);
end;
procedure TcadCredor.Faixa1Click(Sender: TObject);
begin
// add faixa
pcClientes.TabIndex := 1;
navFaixas.DataSource.DataSet.Append;
end;
function TcadCredor.FindControlAtPos(AScreenPos: TPoint): TControl;
var
i: integer;
f, m: TForm;
p: TPoint;
r: TRect;
begin
// acha controle na posição do mouse
Result := nil;
for i := Screen.FormCount - 1 downto 0 do
begin
f := Screen.Forms[i];
if f.Visible and (f.Parent = nil) and (f.FormStyle <> fsMDIChild) and
TRect.Create(f.Left, f.Top, f.Left + f.Width, f.Top + f.Height)
.Contains(AScreenPos) then
Result := f;
end;
Result := FindSubcontrolAtPos(Result, AScreenPos, AScreenPos);
if (Result is TForm) and (TForm(Result).ClientHandle <> 0) then
begin
Winapi.Windows.GetWindowRect(TForm(Result).ClientHandle, r);
p := TPoint.Create(AScreenPos.X - r.Left, AScreenPos.Y - r.Top);
m := nil;
for i := TForm(Result).MDIChildCount - 1 downto 0 do
begin
f := TForm(Result).MDIChildren[i];
if TRect.Create(f.Left, f.Top, f.Left + f.Width, f.Top + f.Height)
.Contains(p) then
m := f;
end;
if m <> nil then
Result := FindSubcontrolAtPos(m, AScreenPos, p);
end;
end;
function TcadCredor.FindSubcontrolAtPos(AControl: TControl;
AScreenPos, AClientPos: TPoint): TControl;
var
i: integer;
C: TControl;
begin
Result := nil;
C := AControl;
if (C = nil) or not C.Visible or not TRect.Create(C.Left, C.Top,
C.Left + C.Width, C.Top + C.Height).Contains(AClientPos) then
Exit;
Result := AControl;
if AControl is TWinControl then
for i := 0 to TWinControl(AControl).ControlCount - 1 do
begin
C := FindSubcontrolAtPos(TWinControl(AControl).Controls[i], AScreenPos,
AControl.ScreenToClient(AScreenPos));
if C <> nil then
Result := C;
end;
end;
procedure TcadCredor.FormClose(Sender: TObject; var Action: TCloseAction);
begin
with dtmSystem do
begin
tblCHGEmpresa.Close;
tblCidades.Close;
tblEstados.Close;
tblPoliticas.Close;
tblFaixas.Close;
tblRepasse.Close;
tblIndicadorFinanceiro.Close;
end;
cadCredor := nil;
Action := caFree;
end;
procedure TcadCredor.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if (navSecundario.DataSource <> nil) or (navFaixas.DataSource <> nil) or
(navPrincipal.DataSource <> nil) then
begin
if (navSecundario.DataSource.State in [dsInsert, dsEdit]) or
(navFaixas.DataSource.State in [dsInsert, dsEdit]) or
(navPrincipal.DataSource.State in [dsInsert, dsEdit]) then
begin
Messagedlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
CanClose := false;
end;
end;
end;
procedure TcadCredor.FormCreate(Sender: TObject);
begin
inherited;
// abre tabelas usadas nesta janela
with dtmSystem do
begin
if not tblCHGEmpresa.Active then
begin
tblCHGEmpresa.Open;
end;
if not tblEmpresaRepasse.Active then
begin
tblEmpresaRepasse.Open;
end;
if not tblEstados.Active then
begin
tblEstados.Open;
end;
if not tblCidades.Active then
begin
tblCidades.Open;
end;
if not tblPoliticas.Active then
begin
tblPoliticas.Open;
end;
if not tblFaixas.Active then
begin
tblFaixas.Open;
end;
if not tblRepasse.Active then
begin
tblRepasse.Open;
end;
if not tblIndicadorFinanceiro.Active then
begin
tblIndicadorFinanceiro.Open;
end;
end;
if dtsDB.DataSet.IsEmpty then
begin
dbgrd_credoreslist.Enabled := false;
end
else
begin
dbgrd_credoreslist.Enabled := True;
end;
// função usada pra "hackear" o navigator e torná-lo customizável
SetupHackedNavigator(navPrincipal, ImageList1, 's');
SetupHackedNavigator(navSecundario, ImageList1, 's');
SetupHackedNavigator(navFaixas, ImageList1, 's');
SetupHackedNavigator(navIndicadorFinanceiro, ImageList1, 's');
SetupHackedNavigator(navRepasse, ImageList1, 's');
SetupHackedNavigator(navrepassefase, ImageList1, 's');
navSecundario.Enabled := not(dtsDB.DataSet.IsEmpty);
navFaixas.Enabled := not(dtsPol.DataSet.IsEmpty);
ChecaPermissoes;
// navPrincipal.Enabled := dtmSystem.VerificarPermissao('BENCBR.01');
// navSecundario.Enabled := dtmSystem.VerificarPermissao('BENCBR.01');
// navFaixas.Enabled := dtmSystem.VerificarPermissao('BENCBR.01');
pcTarifas.TabIndex := 0;
pcRepasse.TabIndex := 0;
primeiro_cad := false;
old_id := -1;
if dtmSystem.id_grupo = 1 then
begin
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons + [nbDelete];
btn_reprepasse.Visible := True;
btn_reprepasse.Enabled := True;
end;
end;
procedure TcadCredor.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
// inherited;
if Key = VK_ESCAPE then
begin
Key := 0;
Close;
end;
if (Key = 75) and (Shift = [ssCtrl]) then
begin
// ShowMessage('Ctrl+k is pressed!');
frmLiberaPermissao := TfrmLiberaPermissao.Create(self);
with frmLiberaPermissao do
begin
level := 3;
string_permissoes.Add('CBR.02.02.01');
string_permissoes.Add('CBR.02.02.01.01');
string_permissoes.Add('CBR.02.02.01.02');
string_permissoes.Add('CBR.02.02.01.03');
string_permissoes.Add('CBR.02.02.01.04');
string_permissoes.Add('CBR.02.02.02');
string_permissoes.Add('CBR.02.02.03');
string_permissoes.Add('CBR.02.02.04');
ShowModal;
if ModalResult = mrOk then
begin
case dtmSystem.cod_liberapermissao of
0:
navPrincipal.Enabled := True;
1:
begin
navPrincipal.Enabled := True;
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons +
[nbInsert];
end;
2:
begin
navPrincipal.Enabled := True;
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons
+ [nbEdit];
end;
3:
begin
navPrincipal.Enabled := True;
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons +
[nbDelete];
end;
4:
tabTabelas.Enabled := True;
5:
navSecundario.Enabled := True;
6:
navFaixas.Enabled := True;
7:
navIndicadorFinanceiro.Enabled := True;
end;
end;
end;
end;
end;
procedure TcadCredor.FormShow(Sender: TObject);
begin
inherited;
if not(dtmSystem.tblCHGEmpresa.Active) then
begin
dtmSystem.tblCHGEmpresa.Open;
end;
if dtmSystem.tblCHGEmpresa.IsEmpty then
begin
// navPrincipal.VisibleButtons := navPrincipal.VisibleButtons + [nbInsert];
dtsDB.DataSet.Append;
primeiro_cad := True;
end;
end;
procedure TcadCredor.navFaixasBeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
// acontece sempre antes de qualquer ação do navigator
// primeiro o meu código, depois o obtido pela herança pq o inherited tá lá no final
case Button of
nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbRefresh:
if navFaixas.DataSource.State in [dsInsert, dsEdit] then
begin
Messagedlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
Abort;
end;
nbPost:
begin
if dbedt_nomefaixa.Text = '' then
begin
Messagedlg('Por favor insira um nome para a Faixa.', mtWarning,
[mbOK], 0);
Abort;
end;
if dbedt_descquitprinfaixa.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre principal ao quitar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descquitmultafaixa.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre multa ao quitar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descquitjurosfaixa.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre juros ao quitar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descquitcorfaixa.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre corrigido ao quitar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descquitindfinfaixa.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre indicador financeiro ao quitar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descfinprinfaixa.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre principal ao financiar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descfinmultafaixa.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre multa ao financiar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descfinjurosfaixa.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre juros ao financiar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descfincorfaixa.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre corrigido ao financiar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descfinindfinfaixa.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre indicador financeiro ao financiar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbrg_tpfaixa.ItemIndex < 0 then
begin
Messagedlg('Por favor escolha o tipo de Faixa.', mtWarning,
[mbOK], 0);
Abort;
end;
SelectNext(ActiveControl as TWinControl, True, True);
end;
nbDelete:
begin
if navFaixas.DataSource.State in [dsInsert, dsEdit] then
begin
Messagedlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
Abort;
end;
if Messagedlg('Deseja apagar este registro?', mtConfirmation,
[mbYes, mbNo], 0) = mrNo then
Abort;
try
dtsFaixa.DataSet.Delete;
except
Showmessage
('Este registro está sendo utilizado pelo sistema ou contém dependências e não pode ser apagado');
end;
Abort;
end;
nbCancel:
if Messagedlg('Deseja cancelar as modificações?', mtConfirmation,
[mbYes, mbNo], 0) = mrNo then
Abort;
end;
end;
procedure TcadCredor.navIndicadorFinanceiroBeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
inherited;
// acontece sempre antes de qualquer ação do navigator
// primeiro o meu código, depois o obtido pela herança
case Button of
nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbRefresh:
if navIndicadorFinanceiro.DataSource.State in [dsInsert, dsEdit] then
begin
Messagedlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
Abort;
end;
nbPost:
begin
SelectNext(ActiveControl as TWinControl, True, True);
end;
nbDelete:
begin
if navIndicadorFinanceiro.DataSource.State in [dsInsert, dsEdit] then
begin
Messagedlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
Abort;
end;
if Messagedlg('Deseja apagar este registro?', mtConfirmation,
[mbYes, mbNo], 0) = mrNo then
Abort;
try
dtsIndicadorFinanceiro.DataSet.Delete;
except
Showmessage
('Este registro está sendo utilizado pelo sistema ou contém dependências e não pode ser apagado');
end;
Abort;
end;
nbCancel:
if Messagedlg('Deseja cancelar as modificações?', mtConfirmation,
[mbYes, mbNo], 0) = mrNo then
Abort;
end;
end;
procedure TcadCredor.navPrincipalBeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
case Button of
nbPost:
begin
if DBEdit1.Text = '' then
begin
Messagedlg
('Por favor insira uma Razão Social antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_fantasia.Text = '' then
begin
Messagedlg
('Por favor insira um Nome Fantasia antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_taxabasicamulta.Text = '' then
begin
Messagedlg
('Por favor insira um valor para multa antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_taxabasicajuros.Text = '' then
begin
Messagedlg
('Por favor insira um valor para juros antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbrg_tpentrada.ItemIndex < 0 then
begin
Messagedlg
('Por favor selecione o tipo de entrada a ser utilizada para parcelamento antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbrg_din.ItemIndex < 0 then
begin
Messagedlg
('Por favor selecione o tipo de juros para parcelameto em Dinheiro antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbrg_che.ItemIndex < 0 then
begin
Messagedlg
('Por favor selecione o tipo de juros para parcelameto em Cheque antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbrg_cred.ItemIndex < 0 then
begin
Messagedlg
('Por favor selecione o tipo de juros para parcelameto em Crédito antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if (dbedt_taxabasicaentradamin.Text = '') and
(dbrg_tpentrada.ItemIndex = 0) then
begin
Messagedlg
('Por favor insira um valor para entrada mínima antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if (dbedt_taxabasicaentradamax.Text = '') and
(dbrg_tpentrada.ItemIndex = 0) then
begin
Messagedlg
('Por favor insira um valor para entrada máxima antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descquitprinbasico.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre principal ao quitar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descquitmultabasico.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre multa ao quitar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descquitjurosbasico.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre juros ao quitar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descquitindfinbasico.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre indicador financeiro ao quitar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descquitcorbasico.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre corrigido ao quitar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descfinprinbasico.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre principal ao financiar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descfinmultabasico.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre multa ao financiar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descfinjurosbasico.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre juros ao financiar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descfinindfinbasico.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre indicador financeiro ao financiar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
if dbedt_descfincorbasico.Text = '' then
begin
Messagedlg
('Por favor insira um valor para desconto sobre corrigido ao financiar antes de finalizar o cadastro do Credor.',
mtWarning, [mbOK], 0);
Abort;
end;
primeiro_cad := false;
end;
nbCancel:
begin
if primeiro_cad = True then
begin
Messagedlg('Por favor termine de cadastrar o Credor.', mtWarning,
[mbOK], 0);
Abort;
end;
end;
end;
inherited;
end;
procedure TcadCredor.navRepasseBeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
inherited;
case Button of
nbPost:
begin
if (DBComboBox1.ItemIndex < 0) or (DBComboBox2.ItemIndex < 0) then
begin
Messagedlg('Por favor indique o mês e o ano do repasse.', mtWarning,
[mbOK], 0);
Abort;
end;
end;
end;
end;
procedure TcadCredor.navSecundarioBeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
// acontece sempre antes de qualquer ação do navigator
// primeiro o meu código, depois o obtido pela herança
case Button of
nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbRefresh:
if navSecundario.DataSource.State in [dsInsert, dsEdit] then
begin
Messagedlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
Abort;
end;
nbPost:
begin
if dbedt_nomepoli.Text = '' then
begin
Messagedlg('Por favor insira um nome para a nova política.',
mtWarning, [mbOK], 0);
Abort;
end;
SelectNext(ActiveControl as TWinControl, True, True);
end;
nbDelete:
begin
if navSecundario.DataSource.State in [dsInsert, dsEdit] then
begin
Messagedlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
Abort;
end;
if Messagedlg('Deseja apagar este registro?', mtConfirmation,
[mbYes, mbNo], 0) = mrNo then
Abort;
try
dtsPol.DataSet.Delete;
except
Showmessage
('Este registro está sendo utilizado pelo sistema ou contém dependências e não pode ser apagado');
end;
Abort;
end;
nbCancel:
if Messagedlg('Deseja cancelar as modificações?', mtConfirmation,
[mbYes, mbNo], 0) = mrNo then
Abort;
end;
end;
procedure TcadCredor.pcClientesChange(Sender: TObject);
begin
if pcClientes.TabIndex = 1 then
begin
pcTarifas.TabIndex := 0;
end;
end;
procedure TcadCredor.pcRepasseChange(Sender: TObject);
begin
inherited;
if pcRepasse.TabIndex = 1 then
begin
btn_reprepasse.Enabled := false;
end
else
begin
btn_reprepasse.Enabled := True;
end;
end;
procedure TcadCredor.Poltica1Click(Sender: TObject);
begin
// add política
pcClientes.TabIndex := 1;
navSecundario.DataSource.DataSet.Append;
end;
procedure TcadCredor.PopupMenu1Popup(Sender: TObject);
begin
pos := Mouse.CursorPos;
end;
procedure TcadCredor.SetupHackedNavigator(const Navigator: TDBNavigator;
const Glyphs: TImageList; S: string);
const
Captions: array [TNavigateBtn] of string = ('Primeiro', 'Anterior', 'Próximo',
'Último', 'Adicionar', 'Excluir', 'Alterar', 'Confirmar', 'Cancelar',
'Atualizar', 'Aplicar Atualizações', 'Cancelar Atualizãções');
(* Captions : array[TNavigateBtn] of string =
('First', 'Prior', 'Next', 'Last', 'Insert',
'Delete', 'Edit', 'Post', 'Cancel', 'Refresh'); *)
Hints: array [TNavigateBtn] of string = ('Primeiro', 'Anterior', 'Próximo',
'Último', 'Adicionar', 'Apagar', 'Modificar', 'Confirmar', 'Cancelar',
'Atualizar', 'Aplicar Atualizações', 'Cancelar Atualizãções');
var
btn: TNavigateBtn;
begin
// função propriamente dita para "hackear" o navigator
for btn := Low(TNavigateBtn) to High(TNavigateBtn) do
with THackDBNavigator(Navigator).Buttons[btn] do
begin
// from the Captions const array
Hint := Hints[btn];
if LowerCase(S) = 's' then
begin
Caption := Captions[btn];
end;
// the number of images in the Glyph property
NumGlyphs := 1;
// Remove the old glyph.
Glyph := nil;
// Assign the custom one
Glyphs.GetBitmap(integer(btn), Glyph);
// gylph above text
Layout := blGlyphTop;
Font.Style := Font.Style - [fsbold];
end;
end;
procedure TcadCredor.spdbtn_pesquisaClick(Sender: TObject);
begin
inherited;
// abre janela pesquisa
TfrmPesquisa.Create(self).ShowModal;
end;
procedure TcadCredor.spdbtn_verIEClick(Sender: TObject);
begin
// verifica o IE do beneficiário
frmVerIE := TfrmVerIE.Create(self);
frmVerIE.ShowModal;
end;
procedure TcadCredor.WMMoving(var Msg: TWMMoving);
var
workArea: TRect;
begin
workArea := Screen.WorkareaRect;
with Msg.DragRect^ do
begin
if Left < workArea.Left then
OffsetRect(Msg.DragRect^, workArea.Left - Left, 0);
if Top < workArea.Top then
OffsetRect(Msg.DragRect^, 0, workArea.Top - Top);
if Right > workArea.Right then
OffsetRect(Msg.DragRect^, workArea.Right - Right, 0);
if Bottom > workArea.Bottom then
OffsetRect(Msg.DragRect^, 0, workArea.Bottom - Bottom);
end;
end;
procedure TcadCredor.ACBrCEP1BuscaEfetuada(Sender: TObject);
var
i: integer;
begin
// busca por cep
for i := 0 to ACBrCEP1.Enderecos.Count - 1 do
begin
dbedt_end.Text := ACBrCEP1.Enderecos[i].Tipo_Logradouro + ' ' +
ACBrCEP1.Enderecos[i].Logradouro;
dbedt_compl.Text := ACBrCEP1.Enderecos[i].Complemento;
dbedt_bairro.Text := ACBrCEP1.Enderecos[i].Bairro;
end;
end;
end.