Buenos días Quintaro,
Crystal cuenta con la función ToWords() que convierte valores numéricos a letras.
Saludos
Avalados por :
Buenas tardes
¿Alguien puede ayudarme a convertir el total en letras en una factura creada en Crystal Reports? Revisé el PLD y hace referencia a alguna variable, pero no he encontrado una forma de hacerlo en Crystal, ¿alguna sugerencia?
Saludos.
Buenos días Quintaro,
Crystal cuenta con la función ToWords() que convierte valores numéricos a letras.
Saludos
Veo muy completa tu respuesta, pero sinceramente desconozco cómo aplicarla, ¿me puedes guiar, por favor?
¡Gracias!
¡Mira un poco! ¡Yo decía que eres un maestro!
Prueba con 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 // si es distinto de veinte y
Letras1 := Letras1 + ' y ' + Unidades[ToNumber(Parte3[3])];
if (Parte4[2] <> '0') and (Parte4[2] = '2') then // si es veinte y
Letras1 := Letras1 + Unidades[ToNumber(Parte4[3])];
if Letras1 = ' ' and Parte4[3] <> '0' and Parte4[1] = '0' and Parte4[2] = '0' then // si es un mil millones, dos mil millones, etc.
Letras1 := Letras1 + Unidades[ToNumber(Parte3[3])];
if Parte4 <> '000' then
Letras1 := Letras1 + ' MIL MILLONES ';
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 + ' VEINTI';
if (Parte3[3] <> '0') and (not(Parte3[2] = '1' and Parte
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute