Inducir ficha en vista de datos formulario


([N1] sergi.esteve) #1

Hola a todos.

Tengo una duda, que pienso que es bastante chorra pero no doy con la tecla.

Tengo un formulario para buscar artículos por código de barras.

Es un formulario sin origen, con un textbox para introducir el código de barras a buscar, y una vista de datos de tipo formulario para mostrar los datos del artículo en cuestión.

Una vez tengo el registro buscado en el manejador de evento, no sé como inducirlo en la vista de datos, con listas y rejillas no tengo problemas, pero no sé como inducir una ficha en un formulario “incrustado”.

¿Cómo puedo hacerlo?, no me importa que sea en V7 o en JS, pero alguna forma habrá!

Gracias por adelantado.


([N3] pacosatu) #2

Hola Sergi.

Es fácil.
Puedes usar una variable Global ($ID_TEMP) donde guardas el ID del artículo localizado en el Manejador y Recalculas la Vista de Datos

El proceso que alimenta el Formulario de la Vista de Datos es Sin Origen:


Set ( ID_BUS, $ID_TEMP@0PS_Ejercicios_dat.dat )
Rem ( Reiniciamos la Variable Global temporal para otros usos)
Modificar variable global ( ID_TEMP@0PS_Ejercicios_dat, 0, )
Cargar lista ( ARTICULOS@0PS_Ejercicios_dat, ID, ID_BUS, , , )
Seleccionar ficha por posición ( 1 )
Leer ficha seleccionada
Añadir ficha a la salida

Cuando la búsqueda no devuelve nada pones el $ID_TEMP a 0 para que la Vista de Datos quede en blanco. La pega es que realmente el formulario se pone en modo Alta y muestra los valores iniciales de los campos si los tuviese.
No sé como evitar esto y que el formulario quede en blanco.

Saludos
Paco Satué


([N1] ramon) #3

Hola Sergi,

Hasta ahora con codigo V7 en la vista de datos solo se manejar listas, por consecuencia hay que poner un objeto lista.
Así si quieres visualizar un formulario en una vista de datos, yo lo soluciono creando un casillero de 1 fila por 1 columna.
Lo malo es que si la lista no tiene elementos no se visualiza el formulario vacio.

Saludos


([N1] sergi.esteve) #4

Gracias a los 2, es cierto que contado es sencillo, pero no caía en cómo hacerlo.

voy a probarlo, para que quede en blanco, intentaré una condición de visibilidad y te cuento.


([N1] sergi.esteve) #5

Lo he hecho como dice seh, perfecto, para evitar ver los datos de alta he condicionado la visibilidad de la vista de datos, el problema es que tengo que buscar el artículo desde el formulario principal antes de recalcular el “hijo”, con lo que repito la búsqueda, no es óptimo pero funciona.

Muchas gracias a los 2.


([N1] tcvsi) #6

Esta mañana he querido enviarte esta respuesta pero no se ha subido al foro. A ver si ahora se sube.
Puedes utilizar un objeto splitter o pila de formularios (a tu gusto). Con el comando interfaz:set variable local vista de datos puedes pasarle al formulario el codigo a cargar y en el init del formulario cargar el registro que quieres mostrar.

Suelo utilizar este tipo de combinaciones para hacer formularios complejos que requieren mostrar múltiples formularios dentro de uno inicial. Es importante utilizar el onshow para las cargas de datos, sobre todo en el caso de que tengas múltiples “subformularios” y se tengan que mostrar unos u otros según diferentes condiciones.


([N1] sergi.esteve) #7

Gracias.

Habían muchas posibilidades!!