Buscador de varias opciones

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
palopas2
Mensajes: 7
Registrado: Mar Oct 23, 2018 8:14 am

Buscador de varias opciones

Mensaje por palopas2 »

Me explico. Necesito crear una macro para un buscador. Pongamos que tengo 3 cuadros de texto donde el usuario introducirá distintos parámetros de búsqueda, la cuál se realizará sobre una tabla. Conozco el código para un cuadro y una tabla, pero no he encontrado forma de que la búsqueda combine varios parámetros (es decir, poder filtrar "Bebidas" y "Con limón" en las columnas "Tipo" y "Añadidos" en una carta de restaurante, por decir algo, y que me salgan solo las bebidas con limón). En caso de que un solo botón no pueda combinar varios parámetros, me interesaría también poder filtrar sucesivamente en una tabla (dicho de otra manera, poder filtrar primero con "Bebidas" y luego que, al añadir "Con limón" en otro cuadro de texto, filtre sobre las bebidas y, entonces, de forma equivalente, me saque solo las filas de la tabla que cumplen ser Bebidas como Tipo y Con limón como Añadido. Espero haberme explicado.
LibreOffice 5.4 en Windows 7
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Buscador de varias opciones

Mensaje por fornelasa »

Debes enviar un archivo ejemplo con avances de tu trabajo, de este modo la persona que desee ayudarte no empezará desde cero, y de ser necesario por favor da más detalles de la consulta.
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
palopas2
Mensajes: 7
Registrado: Mar Oct 23, 2018 8:14 am

Re: Buscador de varias opciones

Mensaje por palopas2 »

Bien, veamos.

Código: Seleccionar todo

Sub buscadorpoblacion
dim oFilter as object
dim oFormCtl as object

oFormCtl = ThisComponent.Drawpage.Forms.getbyName("FormTablaBase")
oFilter = oFormCtl.getByName("TextBoxSearch3")

if oFilter.Text <> " " then
oFormCtl.Filter = " UPPER(Población) LIKE " + "UPPER('%"+oFilter.Text+"%')"
oFormCtl.ApplyFilter = True
else
oFormCtl.ApplyFilter = False
end if

oFormCtl.Reload
End Sub
Tengo este código replicado para cinco parámetros de búsqueda distintos (Expediente, Año...), lo que me lleva a cinco cuadros de texto y cinco botones diferentes sobre la misma tabla, pero me gustaría tener una macro que filtrase según varios parámetros a la vez o, en su defecto, poder aplicar sucesivamente estos filtros sobre lo ya filtrado previamente.

Pongamos que quiero buscar un expediente y sé el año en que lo hice y la población en la que se realizó la obra. Ahora mismo, con lo mío, o filtro por uno o filtro por otro, pero hay varios expedientes que se hicieron el mismo año, así como muchas obras en la misma ciudad, de manera que me interesa poder filtrar por ambos parámetros y que me muestre las obras que se hicieron en el año 2008 en Sevilla, por ejemplo, y no verme limitado a ir buscando entre las obras de 2008 o entre todas las obras hechas en Sevilla.

Si no se entiende, intento explicarlo mejor.
LibreOffice 5.4 en Windows 7
RMG
Mensajes: 3878
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Buscador de varias opciones

Mensaje por RMG »

Hola,

Te has explico bien, el tema esta es que para acertar lo que quieres hacer siempre se trabaja mejor con datos o campos buenos y es por eso por lo que te piden un pequeño archivo ejemplo.

En el foro hay bastantes ejemplos de crear filtros de donde puedes sacar ejemplos, en este enlace dejo otro ejemplo que quizás te pueda servir o en su caso donde puedes ver como trabaja para su aplicación en tu BD.

https://mega.nz/#!Nx1G1aoC!tMYT9SS2CLiv ... oDlAPbSBBw

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
palopas2
Mensajes: 7
Registrado: Mar Oct 23, 2018 8:14 am

Re: Buscador de varias opciones

Mensaje por palopas2 »

Hola, muy buenas. Vuelvo a comentar porque, por más que lo he intentado, no he sido capaz de hacerlo. Os adjunto un ejemplo (con 4 entradas solo) de mi base de datos. Cada número de expediente es único, pero la gracia sería, en "Consultas", poder filtrar por Población y, al mismo tiempo, también por nombre. Quiero decir, "Hicimos un puente en Badajoz en 2008", y poder encontrarlo poniendo "Puente" en Nombre y "Badajoz" en Municipio, por ejemplo.
Adjuntos
BASE DE DATOS ALTERNATIVA - copia.7z
(56.92 KiB) Descargado 208 veces
LibreOffice 5.4 en Windows 7
RMG
Mensajes: 3878
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Buscador de varias opciones

Mensaje por RMG »

Hola,

Con la BD que te adjunte, se puede hacer lo que quieres, solo hay que entender un poco el proceso, de todas formas te adjunto tu BD funcionando con los filtros.

Ha tener en cuenta, municipio y nombre tienen un tipo de filtro y actúan juntos o individualmente con el botón buscar y quitar filtro 1. Los otros tres campos tienen distinto filtro, actúan al pulsar una tecla y para restaurar los datos con botón quitar filtro 2. También funcionan con la palabra empieza (Expediente, Finalizado) o contiene (SBDG), esto lo puedes cambiar cambiando el nombre del control, y el nombre del campo donde busca esta en el tag del control (información adicional).

Saludos
Adjuntos
BASE DE DATOS ALTERNATIVA - 1copia.7z
(60.45 KiB) Descargado 230 veces
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Responder