Pessoal estou precisando de uma máscara para telefone na consulta… pois o lugarzinho tenso para máscara…
No formulário eu uso:
(99)9-9999-9999;(99)9999-9999
Aqui utilizo: ZZXXX-XXXX
Não utilizo o DDD junto ao campo do telefone, mas acredito que poderá utilizar: (ZZ)ZZXXX-XXXX
estou usando esta funcao e funciona bem …
no meu caso utilizo da seguinte maneira:
Ex. mascara_string("(###)###-####",variavel);
0| <?php
1|
2| function mascara_string($mascara,$string)
3| {
4| $string = str_replace(" “,”",$string);
5| for($i=0;$i<strlen($string);$i++)
6| {
7| $mascara[strpos($mascara,"#")] = $string[$i];
8| }
9| return $mascara;
10| }
Use a mesma máscara do Formulário também na Grid.
Agradeço à todos… mas a única que funcionou foi uma dica aqui do fórum…
https://forum.scriptcase.com.br/index.php/topic,5496.msg40313.html#msg40313
Coloquei no onRecord
[code]$_telefone = {fone_fixo};
switch (strlen(trim($_telefone))) {
case 8:
{fone_fixo}="() “.substr($_telefone,0,4).”-".substr($_telefone,4,4);
break;
case 10:
{fone_fixo}="(".substr($_telefone,0,2).") “.substr($_telefone,2,4).”-".substr($_telefone,6,4);
break;
case 11:
{fone_fixo}="(".substr($_telefone,0,2).") “.substr($_telefone,2,5).”-".substr($_telefone,7,4);
break;
}[/code]
a documentação está totalmente falha nessa questão.
Não aceita mais de uma mascara em grid e só funciona bem com “x”.
Ao clicar no ? para ver o help aponta para:
Realmente, perdi um bom tempo pra perceber que a documentação não bate com a realidade… mas somente depois que testei tudo que contém lá… complicado!!!
Sofri bastante mas achei essa solução aqui faz um tempo , acho que do Alexandre Buler , para o Jorge e comecei usar e foi ótimo
Jorgepopel! Para contornar a situação atual retire a máscara do campo e coloque este código no evento onrecord da aplicação consulta (grid):
switch (strlen(trim("{TELEFONE}"))) {
case 8:
{TELEFONE}="() “.substr(”{TELEFONE}",0,4)."-".substr("{TELEFONE}",4,4);
break;
case 10:
{TELEFONE}="(".substr("{TELEFONE}",0,2).") “.substr(”{TELEFONE}",2,4)."-".substr("{TELEFONE}",6,4);
break;
case 11:
{TELEFONE}="(".substr("{TELEFONE}",0,2).") “.substr(”{TELEFONE}",2,5)."-".substr("{TELEFONE}",7,4);
break;
}
Obs: onde {TELEFONE}= deverá ser substituido pelo nome do seu campo com os telefones.
Estava sofrendo para mostrar telefone com máscara até recorrer ao fórum. Encontrei este artigo que resolveu o problema, mas como é um cadastro/relatório da recepcionista, precisei alterar para mostrar as ligações solicitadas/feitas para 0800.
O código ficou assim:
$_telefone = {telefone};
switch (strlen(trim($_telefone))) {
case 8:
{telefone}="() “.substr($_telefone,0,4).”-".substr($_telefone,4,4);
break;
case 10:
if((substr($_telefone,0,2))==‘08’)
{
{telefone}=substr($_telefone,0,4)."-".substr($_telefone,4,2)."-".substr($_telefone,6,4);
}
else
{
{telefone}="(".substr($_telefone,0,2).") “.substr($_telefone,2,4).”-".substr($_telefone,6,4);
}
break;
case 11:
if((substr($_telefone,0,2))==‘08’)
{
{telefone}=substr($_telefone,0,4)."-".substr($_telefone,4,3)."-".substr($_telefone,7,4);
}
else
{
{telefone}="(".substr($_telefone,0,2).") “.substr($_telefone,2,5).”-".substr($_telefone,7,4);
}
break;
}
Resultado db e relatório.
-
Obrigado.