Bom dia Quintaro,
O Crystal possui a função ToWords() que converte valores numéricos em palavras.
Saudações
Avalados por :
Boa tarde
Alguém pode me ajudar a converter o total em palavras em uma fatura criada no Crystal Reports? Eu revisei o PLD e ele faz referência a alguma variável, mas não encontrei uma maneira de fazer isso no Crystal, alguma sugestão?
Saudações.
Bom dia Quintaro,
O Crystal possui a função ToWords() que converte valores numéricos em palavras.
Saudações
Veo muy completa tu respuesta, pero sinceramente desconozco cómo aplicarla, ¿me puedes guiar, por favor?
¡Gracias!
"Olha só! Eu disse que você é um mestre!"
Experimente com esta fórmula:
if {VRetenciones.doccurr} = 'GS' THEN
stringVar monto := trim(totext({VRetenciones.impretencion}, 2, ''));
stringVar texto := '';
stringVar ytexto := '';
numberVar long := length(monto);
stringVar array Cientos := ['CIENTO', 'DOSCIENTOS', 'TRESCIENTOS', 'CUATROCIENTOS', 'QUINIENTOS',
'SEISCIENTOS', 'SETECIENTOS', 'OCHOCIENTOS', 'NOVECIENTOS', 'MIL'];
stringVar array Decenas := ['DIEZ', 'VEINTE', 'TREINTA', 'CUARENTA', 'CINCUENTA', 'SESENTA',
'SETENTA', 'OCHENTA', 'NOVENTA', ' '];
stringVar array MasDecenas := ['ONCE', 'DOCE', 'TRECE', 'CATORCE', 'QUINCE', 'DIECISEIS',
'DIECISIETE', 'DIECIOCHO', 'DIECINUEVE'];
stringVar array Unidades := ['UN ', 'DOS', 'TRES', 'CUATRO', 'CINCO', 'SEIS', 'SIETE', 'OCHO',
'NUEVE', ' '];
stringvar monto := ReplicateString('0', 15 - length(monto)) + monto;
StringVar ParteDecimal := monto[13] + monto[14] + monto[15];
StringVar Parte1 := monto[10] + monto[11] + monto[12];
StringVar Parte2 := monto[7] + monto[8] + monto[9];
StringVar Parte3 := monto[4] + monto[5] + monto[6];
StringVar Parte4 := monto[1] + monto[2] + monto[3];
StringVar Letras1 := ' ';
if Parte4 <> '000' then
if Parte4 <> '0' then
Letras1 := Letras1 + Cientos[ToNumber(Parte4[1])];
if Parte4 = '1' and Parte4[3] > '0' then
Letras1 := Letras1 + ' ' + MasDecenas[ToNumber(Parte4[3])];
if Parte4 <> '0' and Parte4[2] <> '2' THEN
Letras1 := Letras1 + ' ' + Decenas[ToNumber(Parte4[2])];
if Parte4 <> '0' AND Parte4[2] = '2' THEN
Letras1 := Letras1 + ' VEINTI';
if (Parte4[3] <> '0') and (not(Parte4[2] = '1' and Parte4[3] > '0')) then
if Letras1 <> ' ' then
if (Parte4[2] <> '0') and (Parte4[2] <> '2') then // se for diferente de vinte e
Letras1 := Letras1 + ' e ' + Unidades[ToNumber(Parte3[3])];
if (Parte4[2] <> '0') and (Parte4[2] = '2') then // se for vinte e
Letras1 := Letras1 + Unidades[ToNumber(Parte4[3])];
if Letras1 = ' ' and Parte4[3] <> '0' and Parte4[1] = '0' and Parte4[2] = '0' then // se for um bilhão, dois bilhões, etc.
Letras1 := Letras1 + Unidades[ToNumber(Parte3[3])];
if Parte4 <> '000' then
Letras1 := Letras1 + ' MIL MILHÕES ';
if Parte3 <> '000' then
if Parte3 <> '0' then
Letras1 := Letras1 + Cientos[ToNumber(Parte3[1])];
if Parte3 = '1' and Parte3[3] > '0' then
Letras1 := Letras1 + ' ' + MasDecenas[ToNumber(Parte3[3])];
if Parte3 <> '0' and Parte3[2] <> '2' then
Letras1 := Letras1 + ' ' + Decenas[ToNumber(Parte3[2])];
if Parte3 > '0' and Parte3[2] = '2' then
Letras1 := Letras1 + ' VINTI';
contacto@primeconsultor.com
+1 (305) 285-8622
© 2025 Todos los derechos reservados.
Desarrollado por Prime Consultor