¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo convertir el total en letras en una factura de Crystal Reports

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 67 Vistas
0
Cargando...

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.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Buenos días Quintaro,

Crystal cuenta con la función ToWords() que convierte valores numéricos a letras.

Saludos

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Veo muy completa tu respuesta, pero sinceramente desconozco cómo aplicarla, ¿me puedes guiar, por favor?

¡Gracias!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¡Mira un poco! ¡Yo decía que eres un maestro!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

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

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?