Proceso repetitivo cambiando solo una variable


([N1] albertomr) #1

Buenos días
Os pido ayuda por que no se como hacer este tema.
Quiero poner en un formulario 5 semanas x 7 días/sem = 35 rejillas simulando un calendario, de forma que cada rejilla reflejara los pedidos que tienen fecha prevista de entrega en ese día.
De momento tengo en el formulario una Variable array con las 35 fechas, eso ha sido fácil, pero ahora viene lo complicado para mi.
Cada una de las rejillas ha de estar alimentada por un proceso que filtre for la fecha correspondiente (en el Array). Puedo hacer 35 procesos iguales pero cambiando la posición de la variable array y todo solucionado, pero, y aquí viene mi preguntas:

  • ¿hay alguna manera de usar un solo proceso para las 35 rejillas usando la variable array como parámetro para filtar? Es decir como puedo pasar a un proceso la fecha de filtrado como un parámetro. Lo he intentado con una Función pero no soy capaz de conseguirlo.

Un detalle importante es que dado que son 35 rejillas cargándose a la vez, me interesa que el proceso se ejecute en 3º o 4ª plano, en servidor para optimizar el tiempo de carga.

Si alguien tiene una idea o una alternativa mejor, sera bienvenida y agradecida por mi parte.

Un saludo.


([N3] pacosatu) #2

Hola albertomr.

  • Quieres mostrar 35 Rejillas de una misma tabla (Pedidos) en un formulario
  • Cada Rejilla mostrará los Pedidos de una determinada Fecha (Fecha de Entrega)

Yo haría lo siguiente:

  • Define en el proyecto una sola Rejilla REJ_PEDIDOS
  • Define un solo Proceso PRO_PEDIDOS sin Origen y con Salida la Lista de Tabla Pedidos. No tiene código por lo que devuelve una Lista vacía.
  • En el formulario situas las 35 Vistas de datos con el Proceso PRO_PEDIDOS y la Rejilla REJ_PEDIDOS
  • En el evento POST_INI del formulario tendrás 35 rejillas vacías que habrá que rellenar una tras otra mediante el uso de una Cesta local y los comandos de Velneo relacionados con Cestas y traspaso de Listas a las Vistas de datos.
  • Esto te lo dejo que lo hagas tú ya que no tiene más complicación que repetir lo mismo 35 veces (copia y pega)

Hazlo primero todo en 1º plano, luego pásalo a 3º plano y mides la diferencia de tiempos.

  • Con el API se podría simplificar el código, pero eso es otro tema.

Saludos
Paco Satué


([N1] albertomr) #3

Gracias Paco. Voy a probarlo.

Perdona no haber contestado antes, pero no he recibido la notificación de tu mensaje.

Un saludo