Combobox Subindexado...comboview?


([N1] Giuseppe::Komenco) #1

Hola a todos,

Estoy volviéndome loco con el ComboView, y debe ser una tontería, pero no lo veo.

Tengo un formulario Tareas, que tiene un campo Maestro a la tabla Cajas. Mi intención, es, que las distintas Cajas, aparezcan en un combobox, pero subindexadas a partir del proyecto seleccionado al inicio de la aplicación.

Me he creado un ComboView, con Tabla Asociada "Cajas" y contenido #NAME.
Ahora, en el formulario en cuestión, tengo un control combobox donde mostraba las cajas, y lo cambio a "Vista de Datos", pero en "Objeto 1", sólo me aparece para seleccionar el formulario Tareas.

He mirado el tutor de TheSeed y el oficial de Velneo, pero no me aclaran mucho.

Alguien tiene una guía "Combobox subindexado para tontos"?

Gracias.


([N4] eic) #2

Hola.

Piensa en un comboview (o el listview, pues en ese sentido funcionan igual) como una rejilla, porque es (casi) lo mismo. Si fueras a poner una rejilla, entonces pondrías:
- Como Objeto 1, un proceso con origen Tarea (ficha) y salida Cajas (lista)
- Como Objeto 2, la rejilla de Cajas
Pues en este caso igual: el objeto 1 será el mismo proceso que con una rejilla, y el objeto 2 es el comboview.

Eso sí, tienes que preocuparte de:
- Al mostrar el formulario, hacer que se seleccione el registro adecuado del comboview
- Cuando cambie la selección del comboview (Item: cambio de seleccionado), aplicar el registro seleccionado al campo de tu tabla.

Y la subindexación la haces tú mismo en el propio proceso que muestra los registros de Cajas.

Si todo esto te parece un rollo, siempre puedes hacer un localizador subindexado, que hace lo mismo de manera más simple... pero que quizá no queda tan bien como el combo.

Saludos,

Fran Varona


([N1] Giuseppe::Komenco) #3

Ok, luego lo chequeo, gracias Fran.


([N1] Giuseppe::Komenco) #4

Y, ignorante yo, pregunto.....

Si teóricamente, el ComboView salió como una solución a la falta de subindexación del combobox, e igualmente hay que hacerlo todo a mano, entonces, cuales la gracia del ComboView?


([N1] Giuseppe::Komenco) #5

A ver, porque no doy con la tela, como le digo al Comboview el registro que debe mostrar?

Repito el ejemplo mejor, a ver qué es lo que se me escapa.
Por un lado, tengo una tabla Proyectos y una Tabla Cajas, ambas son maestras, y Cajas, tiene un enlace a Proyectos
Al abrir la aplicación, se selecciona un proyecto sobre el que se va a trabajar. Si presionamos en Tareas, podemos asignar una tarea nueva...esta tarea, debe ser asignada a una caja de una lista de cajas que intento mostrar en un combobox (deben aparecerme sólo las cajas del proyecto en cuestión seleccionado. el ID del proyecto seleccionado lo tengo en una global)

De momento, lo he "resuelto" con un proceso (O: Ficha Tareas, D: Lista Cajas) que hace un Cargar Lista (Proyectos) resolviendo el índice Proyectos por la global $PRO y añadiendo la lista a la salida. En el combo, sólo me aparecen las cajas del proyecto seleccionado al inicio en cuestión. Que no sé si es lo más óptimo, pero al menos, con mis pocos conocimientos de Velneo lo he hecho funcionar. Pero, al abrir una tarea ya creada, no veo como puedo moverme por el ComboView para mostrar la Caja en cuestión que está realmente seleccionada

He probado con el siguiente proceso, pero no me deja lo de "Seleccionar ficha por posicion" (por eso he puesto el Set Retorno NO, por si así, quizás, parando de buscar, me seleccionaba donde se había quedado.

http://img202.imageshack.us/img202/6215/pantallazo1py.png

En fin, que ando perdisísimo.


([N4] eic) #6

Hola.

Si te fijas en el tutor de comboview (el oficial de Velneo), tiene un evento al inicializar el formulario que hace:

Interfaz: Procesar VISOR_DATOS
Seleccionar ficha por posicion, 1

En tu caso, no te deja usar "Seleccionar ficha por posición" porque es un comando de lista, y tú ya estás en una "zona" de ficha, al haber hecho un "Recorrer lista". Con esas instrucciones, selecciona la primera ficha de la lista del comboview. En tu caso, tendrás que seleccionar la ficha que corresponda al valor que ya tenga ese campo en la ficha. La manera más "pedestre" es recorrer lista, encontrar la ficha que es, guardar la posición y después, fuera ya del "Recorrer lista", haces un "Seleccionar ficha por posición". O bien, cambias el orden de la lista en el proceso anterior, pones como primer elemento el que realmente está en ese campo, y luego pones los demás después, así puedes seleccionar el primero.

Sí, el comboview es un poco "manual", y un poco "rollo" de gestionar. Pero te aporta (como el listview) una manera sencilla de manejar listas con un icono y un texto (muy habituales), sin necesidad de usar un casillero (en el que hay que currarse un formulario) o una rejilla (en la que tienes que pegarte con los colores de las líneas, etc.). A mi entender, primero surge el listview, y luego evoluciona hacia el comboview. Pero coincido contigo en que su gestión es un poco engorrosa, comparada con el control de edición + localizador subindexado.

Otra cosa: con el comboview puedes poner "cualquier" lista, no sólo una lista relacionada con la tabla, o con subindexación, sino simplemente cualquier lista, ya que eres tú, en el proceso, el que decides qué registros colocar en el comboview. Libertad total... pero más engorro en situaciones "comunes".

Saludos,

Fran Varona