Cargar datos de la BD en función de la selección realizada por el usuario

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Tutoriales > Bases de datos simples >

Cargar datos de la BD en función de la selección realizada por el usuario

Los registros de la BD de modelos de automóvil aparecerán en una tabla y en ella solo se cargarán los modelos que pertenezcan al fabricante elegido por el usuario final (en el cuadro combinado). En este apartado del tutorial aprenderá a crear una tabla para presentar los registros y a definir la selección de los registros que se deben cargar en la estructura $DB1 y su presentación.

 

Tabla para presentar los registros

En la base de datos cada registro (o fila) corresponde a un modelo de automóvil distinto. Por tanto, la mejor manera de presentar estos registros sería agregar al diseño una tabla con filas extensibles (cada fila corresponderá a una fila de la base de datos). La tabla debería tener tres columnas (para el fabricante, el modelo y la potencia del automóvil) y una fila de encabezado (imagen siguiente). Cuando el usuario cambie de selección en el cuadro combinado, en la tabla se cargarán y aparecerán los modelos del nuevo fabricante.

MTDDBSimulation01

Para insertar una tabla que tenga las propiedades descritas más arriba, añadiremos un control de tabla con la especificación que aparece en esta imagen:

Clic para ampliar

Dentro de la tabla debe seguir estos pasos:

 

Vincule la fila extensible de la tabla con la fila de la BD. Esto se hace arrastrando el elemento $DB1/DB/RowSet/Row hasta el icono de fila extensible de la tabla. Esto especifica que, por cada fila (registro) de la estructura $DB1, habrá una fila en la tabla.
Arrastre controles de tipo etiqueta hasta cada una de las tres celdas de encabezado y póngales el título correspondiente: fabricante, modelo y potencia (imagen siguiente).
Para el contenido de las tres columnas arrastre hasta el diseño estos nodos de atributo del elemento Row desde el panel Fuentes de página: Manufacturer, Model, Horsepower (imagen siguiente). Con ellos deberá crear controles de tipo etiqueta.

 

Cuando termine, la tabla del diseño debería tener este aspecto:

MTDDBTableDesign01

 

Seleccionar qué registros de la BD se cargan y se presentan

La tabla que acaba de crear presentará todos los registros que se carguen de la base de datos. Ahora mismo, la definición de la estructura $DB1 implica que se carguen todos los registros de la BD, es decir, en la tabla aparecerán todos los modelos de automóvil de todos los fabricantes. Sin embargo, nuestro objetivo es cargar y presentar los modelos del fabricante seleccionado por el usuario en el cuadro combinado.

 

Para cargar los modelos de automóvil del fabricante seleccionado debe crear la instrucción SELECT en la estructura $DB1:

 

1.En el panel Fuentes de página haga clic en el icono de BD situado a la derecha de la entrada $DB1 (imagen siguiente).

MTDDBPageSourcesDBIcon

2.Aparece el cuadro de diálogo "Insertar objetos de la base de datos" (imagen siguiente). Haga clic en el botón Agregar/Editar instrucción SELECT.

MTDDBSelectCarsTable

3.Aparece el cuadro de diálogo "Introducir una instrucción SELECT de SQL". Introduzca esta instrucción SELECT: SELECT [Manufacturer], [Model], [Horsepower] FROM Cars WHERE Manufacturer = :Manufacturer. Esta instrucción selecciona (y por tanto carga) los campos Manufacturer, Model y Horsepower de los registros cuyo campo Manufacturer coincida con el valor aportado por el parámetro :Manufacturer. Como la instrucción SELECT contiene un parámetro (:Manufacturer), se añadirá automáticamente una línea para la definición de parámetro en el panel inferior del cuadro de diálogo (imagen siguiente).

Clic para ampliar

4.Introduzca esta expresión XPath como definición del valor de parámetro :Manufacturer: $PERSISTENT/Root/@Manufacturer. Esto configura la instrucción SELECT para que seleccione los registros de la BD cuyo campo Manufacturer coincida con el valor actual del nodo $PERSISTENT/Root/@Manufacturer (que es la selección realizada por el usuario).

 

Es importante recordar que la instrucción SELECT que se define en la fuente de página $DB1 selecciona los datos que se cargan desde la BD en la estructura $DB1. Así es como funciona este mecanismo:

 

En cuanto el usuario cambia el valor en el cuadro combinado, la acción Volver a cargar del evento AlTerminarDeEditar vuelve a cargar la estructura $DB1 (consulte la definición del cuadro combinado).
La estructura $DB1 se carga en función del resultado de la instrucción SELECT.
Esta instrucción SELECT utiliza un parámetros que tiene como valor el valor del atributo $PERSISTENT/Root/@Manufacturer, que almacena la nueva selección del usuario. El parámetro hace que solo se seleccionen las filas de la BD cuyo campo Manufacturer tenga un valor idéntico al del fabricante seleccionado por el usuario final.
Todas las filas de la BD que se carguen en la estructura $DB1 aparecerán en la tabla. Pero como en la estructura $DB1 solo se cargaron las filas que corresponden a la selección del usuario, la tabla solo presentará los modelos de automóvil que coincidan con la selección del usuario.

MTDDBSimulation02

 


© 2019 Altova GmbH