Prezados,
Segue abaixo o Desenvolvimento do comando Picture
Nessa postagem estarei montando o código da procedure Picture do Clarion usando o Windev, quem quiser contribuir sinta-se a vontade em criar um adendo a essa postagem. A ideia é ter um comando que uma vez passado um valor ele ja formate de forma inteligente o texto.
Procedure Picture(Texto is string, Mascara)
sRetorno is string
Valor is string = Texto
IF Valor <> "" AND Mascara <> "" THEN
IF Length(Valor) = 8 AND Upper(Mascara) = "D10"
IF Middle(Valor,1,4) < 2000 AND Middle(Valor,5,4) > 2000
sDia is string = Middle(Valor,1,2)
sMes is string = Middle(Valor,3,2)
sAno is string = Middle(Valor,5,4)
Valor = sAno +""+ sMes +""+ sDia
END
sRetorno = DateToString(Valor,"DD/MM/YYYY")
ELSE IF (Length(Valor) = 6 AND Upper(Mascara) = "D10") OR
(Length(Valor) = 5 AND Upper(Mascara) = "D10")
IF Length(Valor) = 5 THEN
Valor = "0"+Valor
END
sDia is string = Middle(Today(),7,2)
sMes is string = Middle(Valor,1,2)
sAno is string = Middle(Valor,3,4)
Valor = sAno +""+ sMes +""+ sDia
sRetorno = DateToString(Valor,"DD/MM/YYYY")
ELSE IF Length(Valor) = 4 AND Upper(Mascara) = "D10"
sDia is string = Middle(Today(),7,2)
sMes is string = NumToString(CurrentMonth(),"02d")
sAno is string = Valor
Valor = sAno +""+ sMes +""+ sDia
sRetorno = DateToString(Valor,"DD/MM/YYYY")
ELSE IF (Length(Valor) = 2 AND Upper(Mascara) = "D10") OR
(Length(Valor) = 1 AND Upper(Mascara) = "D10")
IF Length(Valor) = 1 THEN
Valor = "0"+Valor
END
sDia is string = Valor
sMes is string = NumToString(CurrentMonth(),"02d")
sAno is string = NumToString(CurrentYear(),"04d")
Valor = sAno +""+ sMes +""+ sDia
sRetorno = DateToString(Valor,"DD/MM/YYYY")
ELSE
sRetorno = Valor
END
IF Upper(Mascara) = "CPF" THEN
IF Length(Valor) = 11
sRetorno = ""
ELSE IF Length(Valor) = 10
Valor = "0"+Valor
ELSE IF Length(Valor) = 9
Valor = "00"+Valor
ELSE
Valor = ""
END
sRetorno = Middle(Valor,1,3) +"."+ Middle(Valor,4,3) +"."+ Middle(Valor,3,3) +"-"+ Middle(Valor,10,2)
END
IF Upper(Mascara) = "CNPJ" THEN
IF Length(Valor) = 14
sRetorno = ""
ELSE IF Length(Valor) = 13
Valor = "0"+Valor
ELSE IF Length(Valor) = 12
Valor = "00"+Valor
ELSE
Valor = ""
END
sRetorno = Middle(Valor,1,2) +"."+ Middle(Valor,3,3) +"."+ Middle(Valor,6,3) +"/"+ Middle(Valor,9,4) +"-"+ Middle(Valor,13,2)
END
END
RESULT sRetorno
--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/Message modifié, 10 septembre 2019 - 22:53