Your browser does not support CSS. If images appear below, please disregard them.
Ingreso

Foro de Scientia® Soluciones Informáticas

Obviar

FAQ Registrate

Numeros a Letras

Work panels, web panels, reports, etc.

Numeros a Letras

Notapor IvanGabriel » Jue Sep 03, 2009 1:30 pm

Buenos dias:
Primero que nada muchas felicidadezs por el foro, por que hay muy escasos sobre esta herramienta.

Me gustaria saber si podrian auxiliarme, con un problema que tengo,
Soy nuevo en Genexus, la verdad es que no se ni donde debo de comenzar a hacerlol, ya estoy algo desesperado ya que no he encontrado nada, o casi nada de como hacerlo, y en el trabajo ya me estan precionand, ojala que pudieran ayudarme,

Estoy generando un sistema de facturacion, y bueno un atrivuto se llama "Cantidad en letra" ese numero en letra lo debe tomar de otro atributo que se llama "Total de la factura" automaticamente, se que es con un algoritmo y que debe de ir en un Objeto Precedure,

pero no se nada sobre el codigo Genexus, o el proceso para poder llegar a que se convierta el numero a cantidad,
Ojala que puedan ayudarme lo agradeceria mucho!!!

De antemano muchas gracias, y espero su respuesta,


SAludos cordiales;
IvanGabriel
 
Posts: 3
Registrado: Jue Sep 03, 2009 11:55 am

Re: Numeros a Letras

Notapor g.cantero » Jue Sep 03, 2009 1:38 pm

Ivan:
En el GXOpen hay varios proyectos con el código para bajarse y, precisamente, en esta URL: http://www.gxopen.com/gxopen/servlet/pr ... rmation?43 hay un proyecto para convertir letras a número. Aquí hay otro: http://www.gxopen.com/gxopen/servlet/pr ... mation?267, pero está en inglés.
Para bajar los proyectos de GXOpen antes deberás registrarte, pero es gartis.
Espero que esta información te sea de utilidad.
Cualquier otra cosa no dudes en escribir nuevamente.
Saludos.
Gustavo A. Cantero
MCP - MCSD - MCTS - MCPD
Scientia® Soluciones Informáticas
http://www.scientia.com.ar
http://www.programandoamedianoche.com
Avatarde Usuario
g.cantero
 
Posts: 10
Registrado: Dom Sep 07, 2008 4:45 pm
Ubicación: Argentina

Re: Numeros a Letras

Notapor g.cantero » Jue Sep 03, 2009 1:39 pm

Aquí hay otro proyecto más: http://www.gxopen.com/gxopen/servlet/pr ... mation?225.
Saludos.
Gustavo A. Cantero
MCP - MCSD - MCTS - MCPD
Scientia® Soluciones Informáticas
http://www.scientia.com.ar
http://www.programandoamedianoche.com
Avatarde Usuario
g.cantero
 
Posts: 10
Registrado: Dom Sep 07, 2008 4:45 pm
Ubicación: Argentina

Re: Numeros a Letras

Notapor IvanGabriel » Jue Sep 03, 2009 4:34 pm

Hola buenas tardes!

Muchas gracias por la respuesta!

Me ha sido de mucha ayuda!... Y abusando, me podrian ayudar con lo que me surgio despues de esto?,

Quisiera saber si me pueden ayudar de nueva cuenta!...

En mi sistema de facturacion, ya tengo creados tres objetos, 1-. TransaccionClientes, 2-. TransaccionFacturas y un Procedure ( que es donde se encuentra el codigo que transformara numeros a letras), y mi duda es , como hacer para conectar el objeto procedure con la transaccion facturas, y poder hacer que cuando se ingrese un total, en automatico caiga en el atributo total con letra?... Habrian ciertos pasoslos cuales pueda seguir para llegar al punto en donde ya pueda ingresar un total y ese total se genere con letras, practicamente al final del problema??... Ojala que me puedan ayudar!, de cualquier forma agradesco la anterior respuesta me fue de mucha ayuda, GRACIAS!!

Hasta pronto:

Saludos.
IvanGabriel
 
Posts: 3
Registrado: Jue Sep 03, 2009 11:55 am

Re: Numeros a Letras

Notapor g.cantero » Jue Sep 03, 2009 4:48 pm

Ivan:
Podrias poner en las reglas (rules) de la transacción algo como lo siguiente:

Código: Seleccionar todo
AttributoLetras = udp(ProcedimientoNumerosLetras, AtributoNumero) ON AfterInsert , AfterUpdate;


Espero que se entiendo el código.
Cualquier cosa no dudes en escribir de nuevo.
Saludos.
Gustavo A. Cantero
MCP - MCSD - MCTS - MCPD
Scientia® Soluciones Informáticas
http://www.scientia.com.ar
http://www.programandoamedianoche.com
Avatarde Usuario
g.cantero
 
Posts: 10
Registrado: Dom Sep 07, 2008 4:45 pm
Ubicación: Argentina

Re: Numeros a Letras

Notapor IvanGabriel » Lun Sep 07, 2009 3:42 pm

Hola! primero que nada muchas gracias por la ayuda Gustavo!!

Me ha sido de mucha ayuda tu ayuda, y ha sido muy rapido!... Muchas gracias, abusando de tus respuestas y de tu experiencia en todas las aplicaciones que manejas, no se si habra manera de que pudieras ayudarme con lo siguiente se que es algo largo pero si pudieras ayudarme seria de mucha utilidad. Mira tengo este algoritmo,

&TxtImp2 = '' // Pone variable en blanco
&MndTxt = lower(&Moneda) // convierte texto de moneda a minusculas

&UX ="uno dos tres cuatro cinco seis siete ocho nueve" // asigna valores a variable
&D1X ="once doce trece catorce quince "
&DX0 ="diez veinte treinta cuarenta cincuenta sesenta setenta ochenta noventa "
&CX00 ="cien docientos trecieentos cuatrocientos quinientos seisientos novecientos "
&Unidad = " "
&Centena = " "
&Decena = " "

&E_NUM = int(&IMPORTE) //convierte el importe a entero

&D_NUM = &IMPORTE - &E_NUM //resta la variable

&D_NUM = &D_NUM * 100
&CIFRA = trim(str(&E_NUM))
&CIFRA = ltrim(&CIFRA)
&L = len(&CIFRA)
&VALOR = 0
&LET = " "
if &L > 6
&VECES=3
else
if &L>3
&VECES=2
else
&VECES=1
endif
endif

do while &VECES <> 0
if &L=9 .OR. &L=6 .OR. &L=3
&CENTENA=substr(&CIFRA,1,1)
&DECENA =substr(&CIFRA,2,1)
&UNIDAD =substr(&CIFRA,3,1)
&VALOR =val(substr(&CIFRA,1,3))
endif
if &L=8 .OR. &L=5 .OR. &L=2
&CENTENA=" "
&DECENA =substr(&CIFRA,1,1)
&UNIDAD =substr(&CIFRA,2,1)
&VALOR =val(substr(&CIFRA,1,2))
endif
if &L=7 .OR. &L=4 .OR. &L=1
&CENTENA=" "
&DECENA =" "
&UNIDAD =substr(&CIFRA,1,1)
&VALOR =val(&UNIDAD)
endif
if &CENTENA<>" " .AND. &CENTENA<>"0"
&DESDE=(13*val(&CENTENA))-12
&VERSO=trim(substr(&CX00,&DESDE,13))
if &VALOR=100
&VERSO="cien"
endif
&LET=&LET+&VERSO+" "
endif
&VERSO=""
if &DECENA<>" " .AND. &DECENA<>"0"
&DESDE=(9*val(&DECENA))-8
&VERSO=trim(substr(&DX0,&DESDE,9))+" "
if &DECENA="1" .AND. &UNIDAD<>"0"
if &UNIDAD<"6"
&DESDE=(8*val(&UNIDAD))-7
&VERSO=trim(substr(&D1X,&DESDE,8))+" "
else
Do Case
Case &Unidad = 6
&Verso = 'diesiseis '
Case &Unidad = 7
&Verso = 'diesisiete '
Case &Unidad = 8
&Verso = 'disiocho '
Case &Unidad = 9
&Verso = 'diesinueve '
EndCase
endif
else
if &UNIDAD<>"0"
if &DECENA="2"
&VERSO="veinte "
else
&VERSO=&VERSO
endif
endif
endif
&LET=&LET+&VERSO
endif
&VERSO=""
if &UNIDAD<>"0"
if &DECENA<>"1"
&DESDE=(6*val(&UNIDAD))-5
&VERSO=trim(substr(&UX,&DESDE,6))+" "
if &UNIDAD="1" .AND. &VECES<>1
&VERSO="uno "
endif
else
if &UNIDAD>"5"
&DESDE=(6*val(&UNIDAD))-5
&VERSO1 = trim(substr(&UX,&DESDE,6))+" "
&VERSO=&VERSO
endif
endif
&LET=&LET+&VERSO
endif
if &VALOR=0 .AND. &IMPORTE<1000
&LET=&LET+"zero "
endif

if &VECES = 3
if &VALOR = 1
&LET=&LET+"millon "
else
&LET=&LET+"millones "
endif
&I = &L - 5
&CIFRA = substr(&CIFRA,&I ,6)
&L=6
else
if &VECES = 2
if &VALOR<>0
&LET=&LET+"mil "
endif
&I = &L - 2
&CIFRA = substr(&CIFRA,&I ,3)
&L=3
else
if &VECES = 1
if &D_Num > 0
if &D_Num > 9
&LET=&LET+"and "+trim(substr(str(&D_NUM),9,2))+"/100"
else
&LET=&LET+"and 0"+trim(substr(str(&D_NUM),9,2))+"/100"
endif
else
&LET = trim(&LET)
endif
endif
endif
endif
&VECES=&VECES-1
enddo
&L=len(&LET)

&LET1 = ""
&LET2 = ""
&LET3 = ""
if &L>50
&I=50
do while substr(&LET,&I,1)<>" "
&I=&I-1
enddo
&N = &I + 1
&LET1=substr(&LET,1,&I)
&L = len(&LET )- len(&LET1 )
&LET2=substr(&LET,&N ,&L)
&L = len(&LET2)
if &L>50
&I=50
do while substr(&LET2,&I,1)<>" "
&I=&I-1
enddo
&LET=&LET2
&N =&I +1
&LET2=substr(&LET,1,&I)
&L = len(&LET )- len(&LET2 )
&LET3=substr(&LET,&N,&L )
endif
else
&LET1=&LET
endif
&xVerso1 = &LET1
&xVerso2 = &LET2
&xVerso3 = &LET3

&TxtImp = trim(&MndTxt)+' '+trim(&xVerso1)+' '+trim(&xVerso2)+' '+trim(&xVerso3)
&I = 80
do while substr(&TxtImp,&I,1) <> ' '
&I = &I - 1
enddo
&TxtImp1 =substr(&TxtImp,1,&I)
&I = &I + 1
&N = 160 - &I
&TxtImp2 = substr(&TxtImp,&I,&N)

&LitNum = trim(&TxtImp1 )+' '+trim(&TxtImp2 )
Return

....Y bueno lo he bajado de internet para lo que te comente del trabajo que tengo que hacer, pero no me gustaria saber y profundizar mas sobre el algoritmo, y me preguntaba si tu podrias ayudarme a razonar las lineas de el mismo, entender por que es cada cosa, no se si esto se pueda pero de cualquier forma te agradesco mucho tu ayuda ya proporcionada en los otros casos, MUCHAS GRACIAS! bueno cuidate mucho, suerte,

Saludos.
IvanGabriel
 
Posts: 3
Registrado: Jue Sep 03, 2009 11:55 am


Volver a GeneXus

¿Quién está conectado...?

Usuarios navegando este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron