GeneXus - Ceros a la izquierda

   
Vista:

Ceros a la izquierda

Publicado por Julio Amador (1 intervención) el 09/02/2012 22:20:24
Hola,
Tengo el siguiente problema tengo dos campos que conforman el Numero de una factura, son numero de sucursal (numeric 4) y numero de factura (numeric 8) trabajo con gx9 .net y sql server. Necesitaria saber como hacer para que aparecezcan los ceros a la izquierda en los 2 campos mencionados. Muchas Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ceros a la izquierda

Publicado por Daniel (11 intervenciones) el 09/02/2012 22:40:27
la solucion seria ponerlo como C(14) ej: "A0001-00547701" y haces funciones para extraer sucursal, numFac, letra. Por matemática básica los ceros a la izquierda no tienen validez. Saludos

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ceros a la izquierda

Publicado por Julio (301 intervenciones) el 10/02/2012 03:35:55
No sé si quieres guardarlo así como mencionas o solo presentarlo en la pantalla o en la impresión.

Si quieres guardarlo como campo numérico este deberá ser N(12) de largo, en las propiedades del atributo deberás configurar el atributo para que rellene con ceros a la izquierda.
En cuanto al armaje podrías emplear la función PadL y hacerlo así:
1
2
3
4
&FactNo = str(FactNo ,8 )  // &FactNo C(8)
&Factura2 = concat(str(SucId , 4) ,PadL(&FactNo , &b, "0") ,'')  // &Factura2 C(12)
FacturaId = val(&Factura2)
// En la variable &b hay que indicar la cantidad de ceros que faltan para rellenar a la izquierda de &FactNo. (deberás averiguar cuantos ceros necesitas llenar sacando la diferencia entre el ancho y 8)

Otra forma sería:
Asumiendo que SucId sea igual a 1 y que el ancho del número de factura inicial es 8
Tenemos: SucId * 100000000 + FacturaInicial
1 * 100000000 = 100000000
100000000 + 1 = 100000001
Cachaste ?
Bueno, seguramente habrán otras formas
Coméntanos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar