GeneXus - Listado salta una linea

 
Vista:
sin imagen de perfil

Listado salta una linea

Publicado por Palbo (64 intervenciones) el 22/05/2009 13:44:14
Hola foro, resulta que estoy imprimiendo una factura en tres vias, y controlo que sean 14 lineas por via. Es un do while de lineas dentro del do while de vias, o sea que seria lo mismo para todas, la primer via sale perfecto, pero la segunda imprime dos lineas, salta una y continua, y la tercera lo hace entre la linea 11 y 12, y no tengo ninguna instruccion que lo haga saltar, Si alguien tiene idea de que puede estar pasando agradezco ayuda.
Salu2
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

RE:Listado salta una linea

Publicado por Luis Sangacha (119 intervenciones) el 23/05/2009 17:08:32
Que tal Pablo (ó Palbo),

1) no comprendo bien si via = columna, es decir tres columnas por impresión
2) ó via = impresora, es decir tres impresiones diferentes

Si es:
1) revisa el largo de cada columna puede ser que se desface a la siguiente columna por lo que ésta siguiente columna se recorra

2) En verdad sería lo mismo que la anterior pero sería bueno de que coloques parte de tu código para darte una mano.

P.D. por favor aclara generador, ambiente y dbms

Exitos
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
sin imagen de perfil

RE:Listado salta una linea

Publicado por Pablo (64 intervenciones) el 25/05/2009 15:16:45
Gracias por contestar.
Lo quiero imprimir son tres veces una misma factura (via1 para el cliente, via2 para copia y via3 para archivo), las tres iguales, el codigo seria asi:

Tengo &CantVias que es la cantidad de vias que quiero imprimir la que obtengo al buscarlo en otra tabla, y &CantLineas que es la cantidad de lineas que deben entrar en la factura antes de imprimir los totales, que tambien obtengo de otra tabla.

&via = &cantVias
do while &via <= &cantvias
for each
// obtengo los datos para el cabezal
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
sin imagen de perfil

RE:Listado salta una linea

Publicado por Pablo (64 intervenciones) el 25/05/2009 15:36:37
Perdon se me fue sin terminar

Gracias por contestar.
Lo quiero imprimir son tres veces una misma factura (via1 para el cliente, via2 para copia y via3 para archivo), las tres iguales, el codigo seria asi:

Tengo &CantVias que es la cantidad de vias que quiero imprimir la que obtengo al buscarlo en otra tabla, y &CantLineas que es la cantidad de lineas que deben entrar en la factura antes de imprimir los totales, que tambien obtengo de otra tabla.

&via = &cantVias
do while &via <= &cantvias
for each
// obtengo los datos para el cabezal
Imprimo el cabezal
Endfor

&Lineas = 1
For each
// obtengo datos para las lineas
Imprimo linea (**)
&linea += 1
endfor

if &lineas < &cantlineas
Do while &lineas <= &cantlineas
// Imprimo una linea en blanco (hasta llegar al final)
&linea += 1
enddo
endif
imprimo totales
&via += 1
enddo

(**) es acá donde salta una linea en blanco y no esta entrando en la parte de abajo porque le puse indicadores y no entra.Y le puse que me muestr la linea y las pone correlativas : 1,2,b,3,4,5 en la segunda via y en la tercera entre la 11 y 12
( 1,2,3,4,5,6,7,8,9,10,11,b,12,13,14)

espero que se entienda. Gracias
Saludos Pablo
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

RE:Listado salta una linea

Publicado por Gabriel (75 intervenciones) el 25/05/2009 16:10:50
Pablo, no entiendo porque tenes dos for each uno para el cabezal y otro para el detalle separados

for each
print block cabezal
for each
print block con el detalle
*** detro de este for each contas las lineas
&linea impresa + 1
endfor
endfor

*** para completar las lineas en blanco defino un print block vacio

if &linea impresa <= totallineas
print blockvacio
endif

*** al la salida de aca imprimis los totales de la boleta
print totalboleta

*** otra opcion para imprimir tres vias no se is la mejor pero yo en algun caso la he usado, es poner el llamado al proceso de imporesion 3 veces.

imprimofactura.call(&numerovia)
imprimofactura.call(&numerovia)
imprimofactura.call(&numerovia)

espero te sirva

*** si es papel continuo tenes que usar la opcion para definir las impresoras y el tipo de hoja, tamaño, etc
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