Formatação para numero de telefone
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;
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
Curtidas 0
Melhor post
Natanael Ferreira
20/10/2017
Creio que esteja incorreta a sintaxe da função "Copy".
Sintaxe:
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:
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;
GOSTEI 1
Mais Respostas
Caio Tiago
20/10/2017
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;
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);
GOSTEI 0
Caio Tiago
20/10/2017
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;
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;
GOSTEI 0
Caio Tiago
20/10/2017
Creio que esteja incorreta a sintaxe da função "Copy".
Sintaxe:
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:
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);
GOSTEI 0
Natanael Ferreira
20/10/2017
Isso mesmo, Caio.
Que bom que funcionou.
Abraço.
Que bom que funcionou.
Abraço.
GOSTEI 1