Cambiar valor campo con una busqueda


([N3] Servinfor) #1

Hola quiero primero filtrar los registros de una tabla y luego modificar un campo de esos registros
Para ello primero creo la busqueda y luego un proceso que llame a la busqueda y modifique esos registros
En el proceso pongo

Busqueda (asientos)
Recorrer lista lectura/escritura
Modificar campo (periodo, 1)

Y lo que me hace es que en vez de modificar en los registros de la busqueda me lo modifica en los registros de toda la tabla


([N1] wikan) #2

Habría que ver el proceso, no tiene sentido lo que comentas.


([N2] AyudaVelneo) #3

Hola:

O en la búsqueda te devuelve todos los registros… o el recorrer lista no lo tienes dentro de la rama de los registros que te devuelve la búsqueda.

Un saludo


([N3] Servinfor) #4

Uff esto si que ya es muy raro, la busqueda esta bien, trae los registros correctos, pero si ejecuto el proceso desde el servidor (3ºplano) lo hace mal y cambia el valor en todos los registros, en cambio si cojo el proceso lo pongo en un manejador de evento del formulario y lo disparo en local entonces lo hace bien


([N3] Servinfor) #5

¿ Puede ser porque en la busqueda en el indice de fechas lo condiciono a 2 variables globales y al hacer la busqueda en el servidor por eso no lo hace bien?

Que tendría que hacerlo como un manejador de evento, como seria entonces? Algun ejemplo?


([N1] wikan) #6

Claro, las variables no serán las mismas entre el servidor y el cliente, tienen ambitos distintos.

  • Cambia la búsqueda para que use variables locales.
  • Crea las mismas variables en el proceso que ya tienes
  • En ese proceso, la búsqueda la llamas con un manejador de objetos y la alimentas con variables locales del proceso.
  • Ahora en el cliente, creas un manejador de objeto del proceso y lo lanzas en el servidor.

No se si me explico.


([N2] AyudaVelneo) #7

Hola:

Aquí te dejo un ejemplo de búsquedas en tercer plano.

UN saludo


([N3] Servinfor) #8

Hola Manuel a ver te adjunto imagenes, tengo un formulario donde elijo la fecha inicial y final mediante 2 variables en memoria,
La busqueda la he hecho con variables locales y entiendo que en manejador de evento deberia alimentar las variables locales con las globales pero no me funciona





([N4] Infortic) #9

¿Pero el proceso RECALCULAR_SUMAS_Y_SALDOS lo estás ejecutando en 1er o en 3er plano?

Porque si lo estás ejecutando en 3er plano las globales ya no tienen valor, lo mismo da que las pases a locales porque ya están vacías.

Si la respuesta es afirmativa:

  • Tienes que tener creadas las variables locales FECHAINICIAL y FECHAFINAL en el proceso RECALCULAR_SUMAS_Y_SALDOS.
  • Para lanzar el proceso debes usar un manejador de objeto DESDE EL PRIMER PLANO pasándole el valor de las variables globales a las locales del proceso.
  • El proceso ejecuta la búsqueda pasándole a la misma el valor de sus variables locales, que ha recibido desde el primer plano donde sí tienen valor.

Un saludo.