Formatação para numero de telefone

20/10/2017

0

Bom dia, Uso o Fast report para impressão de relatórios, mas preciso criar uma formatação para apresentação dos números de telefone, para que quando seja celular com 12 dígitos, ele formate (999)99999-9999 e quando seja telefone Fixo ou celular que ainda não tenha o 9, ele formate para 11 dígitos (999)9999-9999, fiz da seguinte maneira, mas apresenta "PARÂMETROS DEMAIS".

procedure Memo77OnBeforePrint(Sender: TfrxComponent);
var
FON : String;
begin
FON :=<aCliente."CL_FON1">;
case Length(FON) of
11 : Memo77.text :=Copy(FON,1,2,3)+'.'+Copy(FON,3,4,5,6)+ '-' +Copy(FON,7,8,9,10);
12 : Memo77.text :=Copy(FON,1,2,3)+'.'+Copy(FON,3,4,5,6,7)+ '-' +Copy(FON,8,9,10,11);
end;
end;
Caio Tiago

Caio Tiago

Responder

Post mais votado

20/10/2017

Creio que esteja incorreta a sintaxe da função "Copy".
Sintaxe:
function copy (Source : string; StartChar, Count : Integer ) : string;


Primeiro parâmetro é a string original (source);
Segundo parâmetro é o primeiro caracter que será copiado (startchar);
Terceiro parâmetro é a quantidade de caracteres que serão copiados (count);

Teste seu código assim:
procedure Memo77OnBeforePrint(Sender: TfrxComponent);
var
  FON: String;
begin
  FON := <aCliente."CL_FON1">;
  case Length(FON) of
    11:
      Memo77.text := Copy(FON, 1, 3) + '.' + Copy(FON, 4, 4) + '-' + Copy(FON, 8, 4);
    12:
      Memo77.text := Copy(FON, 1, 3) + '.' + Copy(FON, 4, 4) + '-' + Copy(FON, 8, 5);
  end;
end;

Natanael Ferreira

Natanael Ferreira
Responder

Mais Posts

20/10/2017

Caio Tiago

Bom dia, Uso o Fast report para impressão de relatórios, mas preciso criar uma formatação para apresentação dos números de telefone, para que quando seja celular com 12 dígitos, ele formate (999)99999-9999 e quando seja telefone Fixo ou celular que ainda não tenha o 9, ele formate para 11 dígitos (999)9999-9999, fiz da seguinte maneira, mas apresenta "PARÂMETROS DEMAIS".

procedure Memo77OnBeforePrint(Sender: TfrxComponent);
var
FON : String;
begin
FON :=<aCliente."CL_FON1">;
case Length(FON) of
11 : Memo77.text :=Copy(FON,1,2,3)+'.'+Copy(FON,4,5,6,7)+ '-' +Copy(FON,8,9,10,11);
12 : Memo77.text :=Copy(FON,1,2,3)+'.'+Copy(FON,4,5,6,7)+ '-' +Copy(FON,8,9,10,11,12);
end;
end;


Corrijindo as partes.
11 : Memo77.text :=Copy(FON,1,2,3)+'.'+Copy(FON,4,5,6,7)+ '-' +Copy(FON,8,9,10,11);
12 : Memo77.text :=Copy(FON,1,2,3)+'.'+Copy(FON,4,5,6,7)+ '-' +Copy(FON,8,9,10,11,12);
Responder

20/10/2017

Caio Tiago

Acredito que tenha localizado o erro, colocando dessa forma saindo de manira correta, mas caso tenham alguma informação por favor me fala.

procedure Memo77OnBeforePrint(Sender: TfrxComponent);
var
FON : String;
begin
FON := <aCliente."CL_FON1">;
case Length(FON) of
11: Memo77.text :='('+Copy(FON,1,3)+')'+Copy(FON,4,4)+ '-' +Copy(FON,8,4);
12: Memo77.text :='('+Copy(FON,1,3)+')'+Copy(FON,4,5)+ '-' +Copy(FON,9,4);
end;
end;
Responder

20/10/2017

Caio Tiago

Creio que esteja incorreta a sintaxe da função "Copy".
Sintaxe:
function copy (Source : string; StartChar, Count : Integer ) : string;


Primeiro parâmetro é a string original (source);
Segundo parâmetro é o primeiro caracter que será copiado (startchar);
Terceiro parâmetro é a quantidade de caracteres que serão copiados (count);

Teste seu código assim:
procedure Memo77OnBeforePrint(Sender: TfrxComponent);
var
  FON: String;
begin
  FON := <aCliente."CL_FON1">;
  case Length(FON) of
    11:
      Memo77.text := Copy(FON, 1, 3) + '.' + Copy(FON, 4, 4) + '-' + Copy(FON, 8, 4);
    12:
      Memo77.text := Copy(FON, 1, 3) + '.' + Copy(FON, 4, 4) + '-' + Copy(FON, 8, 5);
  end;
end;


Exatamente, havia informado de maneira incorreta, quando coloquei assim deu certo...
Obrigado

referente ao com 12 acredito que a melhor maneira seja:
12: Memo77.text :='('+Copy(FON,1,3)+')'+Copy(FON,4,5)+ '-' +Copy(FON,9,4);
Responder

20/10/2017

Natanael Ferreira

Isso mesmo, Caio.

Que bom que funcionou.

Abraço.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar