Como siempre cuando no consigo salirme con lo que deseo hacer acudo a los sabios del foro.
La cuestión que me lleva hoy es la siguiente:
Como podréis ver en la imagen que adjunto e creado una ventana en la cual se pueden seleccionar todas aquellas facturas que se desean imprimir una detrás de la otra, es decir, una multi-selección de las facturas disponibles y cuando se pulsa el botón [ IMPRIMIR RELACIÓN ] se deberían imprimir todas aquellas facturas seleccionadas.
Lo que hay en la ventana actualmente, es decir, la selección o de-selección individual y colectivamente funciona bien, el PROBLEMA viene cuando pulso el botón [ IMPRIMIR RELACIÓN ] y ejecuto el proceso para imprimir no he conseguido que funcione, bueno no he conseguido realmente nada, para hacer un proceso que me imprima solo aquellas facturas que se han seleccionado.
Así pues, os pido si alguno de vosotros me puede indicar como poderlo hacer, o si en algunas de las app’s disponibles alguno de vosotros sabe donde encontrar un ejemplo para poderlo aplicar a mis necesidades.
Yo estado buscando en algunas de las app’s y no he sabido encontrar una que tuviera un ejemplo.
Interfaz: Procesar (,seleccionadas) –> Multipartir (ID) // Aqui ejecutara las lineas a continuacion por cada factura seleccionada –>-->Cargar plurales(LINEAS FACTURAS) // Aqui carga las lineas de las facturas –>-->–>Imprimir informe (LINEAS FACTURAS) // Aqui imprime el informe que tendras creado con las lineas de una factura
Entiendo que el informe seran las lineas de la factura (TABLA LINEAS FACTURAS), y la cabecera de la misma
Ten en cuenta que el informe se imprimira por la salida por defecto que tengas indicada en las propiedades del mismo
No hay problema en quitar y deshacer lo que yo había montado.
Efectivamente si escojo la opción de “la selección múltiple de las rejillas” más el código que GeGeo ha indicado funciona totalmente la opción que tenia preparada.
Muchas gracias de verdad lo digo.
Dejo una imagen con el código ya puesto en el editor de formulas, por si otro usuario le hiciera falta.
Otra cosa, y si en vez de hacer { Imprimir Informe } hacemos { Exportar Informe } como puedo obtener el número de factura.
Lo pregunto por que después del { Multipartir lista (ID) } he puesto un { SET(num_factura, #NUM_FACTURA) } para poder exportar las facturas con su número de factura + “.pdf” a través del comando Exportar Informe, donde tienes que poner la senda y el nombre del nuevo archivo.
Pero aquí viene el posible fallo: De una lista en la rejilla escojo por ejemplo tres facturas para Exportar y como bien sabéis se tiene que poner la senda + en nombre del archivo + “.pdf” y lo que quería hacer es que el nombre del archivo fuera = al número de la factura, y me encuentro con dos cosas.
1 - En el primer movimiento tras pasar por { Multipartir lista (ID) } y por el { SET(num_factura, #NUM_FACTURA) } consigo obtener el valor cero 0
2 - En el segundo y en adelante tras pasar por { Multipartir lista (ID) } y { SET(num_factura, #NUM_FACTURA) } consigo obtener siempre el número de factura del movimiento anterior.
Es decir, si el primer movimiento en realidad el número de factura era 100 y el programa me da 0, en la segunda pasada me da el valor 100 en vez de 101, y así consecutivamente.
Espero haberme explicado.
Ahora viene la solicitud:
¿Como puedo obtener el número de factura correctamente?
¿Es correcto que el { Multipartir lista (ID) } de en el primer movimiento un cero o valor nulo?
El subproceso del comando “Multipartir lista” te devuelve una sublista de la lista principal. Por lo tanto, para leer datos de una ficha tendrás que seleccionarla y leerla previamente.
Completa el código con lo siguiente:
Multipartir lista
// El origen es un lista
–Seleccionar ficha por posicion 1
–Leer ficha selecionada
----Set (num_factura, …
De todas formas en este caso, y debido a que los ID’s siempre son únicos, puedes sustituir “Multipartir lista” por:
Recorrer lista solo lectura
// El origen es una ficha
– Set (num_factura, …
Viendo tu solución puedo decirte que casi yo hacia los mismo pero ponía antes “Cargar Lista”, después de ver tu propuesta he entendido porque no funcionaba, y es que el origen ya es una lista.
Esto es lo que yo hacia:
Multipartir lista -Cargar Lista
–Seleccionar ficha por posicion 1
–Leer ficha selecionada
—Set (num_factura, …
Ahora bien, una vez entendido he hecho lo siguiente para conseguir modificar un campo de fecha y para poder obtener el número de factura. He utilizado dos veces seguidas el comando: “Seleccionar ficha por posición 1”
Multipartir lista
// Para modificar un campo fecha fecha -Seleccionar ficha por posición 1
–Modificar ficha seleccionada
—Modificar campo(
// Para obtener el número de factura vuelvo a … -Seleccionar ficha por posición 1
–Leer ficha seleccionada
—Set (num_factura, …
Cargar plurales (…
Si eso ya lo se, lo que me extraña es que sin indicar si es Lectura o Lectura/Escritura funciona, es decir, primero modificar un campo de fecha que necesito actualizar y luego obtengo el número de factura que es el que are servir para dar nombre al PDF que genero a través del Exportar Informe.
Si te fijas en mi anterior entrada, no utilizo el comando …sólo lectura o lectura/escritura
Por eso pregunto, por que funciona y me gustaría saber es correcta la forma de hacer.
No había visto tu entrada Manuel, y efectivamente, si pongo el comando SET( después del Modificar campo, también obtengo el mismo resultado que esperaba.