[RESUELTO] Relacionar entradas de ListBox con clave primaria

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Relacionar entradas de ListBox con clave primaria

Notapor PabloBerugo » Dom Sep 06, 2015 11:29 pm

Hola a todos,

Estoy con el siguiente problema:
Estoy llenando un listbox en un dialogo de Calc desde una tabla de una base de datos de Base. Cuando el usuario selecciona un item del listbox, me gustaría obtener el ID del elemento seleccionado en la tabla de origen. Quiero saber si el Listbox cuenta con alguna propiedad en la que se pueda cargar este ID, y así obtenerlo sin tener que hacer otra consulta a la base de datos.

Ejemplo:

Id NmProducto
131 Producto1
135 Producto2

Mi idea es que al seleccionar el Producto1, obtener el valor 131 para así, en caso de necesitar editar el registro, apunte directamente a su PK.

Si no me explico, pido disculpas,
Desde ya, muchas gracias.
Pablo
Última edición por mauricio el Mar Sep 22, 2015 8:52 pm, editado 3 veces en total
Razón: Marcar icono de resuelto
Solo viviendo absurdamente se podria romper alguna vez este absurdo infinito
LibreOffice 4.3.5.2 en Windows XP
PabloBerugo
 
Mensajes: 8
Registrado: Mar Feb 10, 2015 4:13 am

Re: Relacionar entradas de ListBox con clave primaria

Notapor mauricio » Lun Sep 07, 2015 4:57 am

Creo recordar que no es posible guardar más de un valor en un ListBox... pero, si no son muchos datos, siempre puedes guardar una matriz de los datos en memoria, solo de los ID, el seleccionado en el ListBox, corresponderá con el mismo indice en la matriz...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5877
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Relacionar entradas de ListBox con clave primaria

Notapor PabloBerugo » Lun Sep 07, 2015 4:24 pm

Hola Mauricio, gracias por contestar. Se me había ocurrido eso, pero creí que había una forma más "prolija" de hacerlo.

Investigando un poco, encontré que dentro del modelo del objeto, hay una propiedad llamada AllItems, que es un array de pares de String: Para el cada elemento del ListBox tiene un First = [Valor en el listbox] y un Second = "". Se me ocurrió que podía rellenar ese Second con el ID a guardar, pero no logré hacerlo, es decir logré modificar el Second pero cuando quise recuperarlo no traía valor, pese a que fue correctamente modificado.

Capaz se te ocurre algo con esto, sino, de nuevo muchas gracias.
Saludos
Solo viviendo absurdamente se podria romper alguna vez este absurdo infinito
LibreOffice 4.3.5.2 en Windows XP
PabloBerugo
 
Mensajes: 8
Registrado: Mar Feb 10, 2015 4:13 am

Re: Relacionar entradas de ListBox con clave primaria

Notapor mauricio » Lun Sep 07, 2015 4:43 pm

Pues yo no la veo: https://www.openoffice.org/api/docs/com ... Model.html

No tengo claro cual sería la diferencia en "prolijidad", si usas una matriz, incluso, usar la misma consulta a la base de datos...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5877
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: [RESUELTO] Relacionar entradas de ListBox con clave prim

Notapor mauricio » Mar Sep 22, 2015 8:51 pm

Compañero... si marcas como resuelto un tema, es importante mencionar que solución usaste para futuras referencias... ojala puedas comentarlo...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5877
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado