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.
167 lines
4.4 KiB
167 lines
4.4 KiB
unit ufrmDigito9;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
|
|
System.Classes, Vcl.Graphics, System.Math,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, umstMaster, Vcl.ComCtrls, Vcl.StdCtrls,
|
|
Data.DB, Vcl.ExtCtrls, Vcl.Grids, Vcl.DBGrids, ZAbstractRODataset,
|
|
ZAbstractDataset, ZDataset;
|
|
|
|
type
|
|
TfrmDigito9 = class(TmstMaster)
|
|
dtsTelefones: TDataSource;
|
|
ProgressBar1: TProgressBar;
|
|
lbl_tel: TLabel;
|
|
lbl_tel2: TLabel;
|
|
Timer1: TTimer;
|
|
DBGrid1: TDBGrid;
|
|
qryTelefones: TZQuery;
|
|
qryTelefonesID_TELEFONE: TIntegerField;
|
|
qryTelefonesID_DEVEDOR: TIntegerField;
|
|
qryTelefonesNR_DDD: TWideStringField;
|
|
qryTelefonesNR_NUMERO: TWideStringField;
|
|
qryTelefonesTP_ATIVO: TWideStringField;
|
|
qryTelefonesTP_TIPOTEL: TWideStringField;
|
|
qryTelefonesTX_DESC: TWideStringField;
|
|
qryTelefonesTX_OBS: TWideMemoField;
|
|
qryTelefonesID_ULTIMO_USUARIO: TIntegerField;
|
|
qryTelefonesDT_HORA_ULTIMA_ATT: TDateTimeField;
|
|
procedure Timer1Timer(Sender: TObject);
|
|
private
|
|
procedure Arrumatel;
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
frmDigito9: TfrmDigito9;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses udtmSystem;
|
|
|
|
procedure TfrmDigito9.Arrumatel;
|
|
var
|
|
numero: string;
|
|
a, b: Integer;
|
|
begin
|
|
Screen.Cursor := crHourGlass;
|
|
lbl_tel.Caption := 'Abrindo tabela de Telefones...';
|
|
lbl_tel.Left := 192 - floor(lbl_tel.Width / 2);
|
|
with dtmSystem do
|
|
begin
|
|
if tblDevedores.Active then
|
|
begin
|
|
tblDevedores.Close;
|
|
end;
|
|
qryTelefones.Open;
|
|
qryTelefones.First;
|
|
b := qryTelefones.RecordCount;
|
|
ProgressBar1.Max := b;
|
|
ProgressBar1.Step := 1;
|
|
ProgressBar1.Position := 0;
|
|
a := 1;
|
|
lbl_tel.Caption := 'Processando...';
|
|
lbl_tel.Left := 192 - floor(lbl_tel.Width / 2);
|
|
lbl_tel2.Caption := 'Telefone ' + inttostr(a) + ' de ' + inttostr(b);
|
|
lbl_tel2.Left := 192 - floor(lbl_tel2.Width / 2);
|
|
while not qryTelefones.Eof do
|
|
begin
|
|
lbl_tel2.Caption := 'Telefone ' + inttostr(a) + ' de ' + inttostr(b);
|
|
lbl_tel2.Left := 192 - floor(lbl_tel2.Width / 2);
|
|
numero := qryTelefonesNR_NUMERO.AsString;
|
|
|
|
try
|
|
numero := FormatTelefone(numero);
|
|
qryTelefones.Edit;
|
|
qryTelefonesNR_NUMERO.AsString := numero;
|
|
if length(numero) = 9 then
|
|
begin
|
|
qryTelefonesTP_TIPOTEL.AsString := 'F';
|
|
end;
|
|
if length(numero) = 10 then
|
|
begin
|
|
qryTelefonesTP_TIPOTEL.AsString := 'M';
|
|
end;
|
|
qryTelefones.Post;
|
|
except
|
|
on E: Exception do
|
|
begin
|
|
qryTelefones.Edit;
|
|
qryTelefonesTX_OBS.AsString := qryTelefonesTX_OBS.AsString +
|
|
sLineBreak + 'Número possivelmente inválido';
|
|
qryTelefones.Post;
|
|
end;
|
|
end;
|
|
qryTelefones.Next;
|
|
a := a + 1;
|
|
ProgressBar1.Position := a;
|
|
Application.ProcessMessages;
|
|
end;
|
|
qryTelefones.Close;
|
|
end;
|
|
lbl_tel.Caption := 'Terminou.';
|
|
lbl_tel.Left := 192 - floor(lbl_tel.Width / 2);
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
|
|
//function TfrmDigito9.FormatTelefone(telefone: string): string;
|
|
//var
|
|
// digito: Integer;
|
|
//begin
|
|
// telefone := StringReplace(telefone, '(', '', [rfReplaceAll, rfIgnoreCase]);
|
|
// telefone := StringReplace(telefone, ')', '', [rfReplaceAll, rfIgnoreCase]);
|
|
// telefone := StringReplace(telefone, '-', '', [rfReplaceAll, rfIgnoreCase]);
|
|
// telefone := StringReplace(telefone, ' ', '', [rfReplaceAll, rfIgnoreCase]);
|
|
// if length(telefone) = 8 then
|
|
// begin
|
|
// digito := strtoint(copy(telefone, 1, 1));
|
|
// case digito of
|
|
// 2, 3, 4, 5:
|
|
// begin
|
|
// telefone := copy(telefone, 1, 4) + '-' + copy(telefone, 5, 4);
|
|
// end;
|
|
// 6, 7, 8, 9:
|
|
// begin
|
|
// telefone := '9' + copy(telefone, 1, 4) + '-' + copy(telefone, 5, 4);
|
|
// end;
|
|
// 1:
|
|
// begin
|
|
// telefone := '';
|
|
// end;
|
|
// end;
|
|
// end
|
|
// else
|
|
// begin
|
|
// if strtoint(copy(telefone, 1, 1)) = 9 then
|
|
// begin
|
|
// telefone := copy(telefone, 1, 5) + '-' + copy(telefone, 6, 4);
|
|
// end
|
|
// else
|
|
// begin
|
|
// telefone := '';
|
|
// end;
|
|
// end;
|
|
// if telefone <> '' then
|
|
// begin
|
|
// Result := telefone;
|
|
// end
|
|
// else
|
|
// begin
|
|
// raise Exception.Create('Número de telefone inválido.');
|
|
// end;
|
|
//end;
|
|
|
|
procedure TfrmDigito9.Timer1Timer(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
Timer1.Enabled := False;
|
|
Arrumatel;
|
|
end;
|
|
|
|
end.
|