PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 24 → Desenvolvimento do comando Picture
Desenvolvimento do comando Picture
Iniciado por BOLLER, set., 10 2019 10:23 PM - Sem resposta
Membro registado
2.949 mensagems
Popularité : +89 (91 votes)
Publicado em setembro, 10 2019 - 10:23 PM
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

//12/03/2019 <= 12032019 @D10

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

//mes ano
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"

//ano
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

//dia
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

//CPF 92554148953
// 12345678901
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

//CNPJ 14421060000192 14.421.060/0001-92
// 12345678901234
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/
Mensagem modificada, setembro, 10 2019 - 10:53 PM