Actualizar una presentación uno a varios según un valor de lista
Cuando el usuario decide ir a un registro eligiendo un valor de una lista, puede tener una relación de uno a varios que necesite reflejar el puntero de registro modificado en la tabla primaria. Puede implementar esta funcionalidad con tablas locales y vistas locales o remotas.
Tablas locales
Si la propiedad RowSourceType de la lista es 2–Tabla o 6–Campos y la propiedad RowSource es una tabla local con una relación establecida en el entorno de datos del formulario, ejecute THISFORM.Refresh
cuando el usuario elija un nuevo valor. La parte varios de una relación de uno a varios muestra de forma automática únicamente aquellos registros que coinciden con la expresión de la tabla primaria que participa en la relación.
Vistas
La actualización de una presentación uno a varios es ligeramente diferente si la propiedad RowSource del cuadro de lista es una vista local o remota. El siguiente ejemplo describe la creación de un formulario con un cuadro de lista y una cuadrícula. El cuadro de lista muestra los valores del campo cust_id
en la tabla TESTDATA!Customer
. La cuadrícula muestra los pedidos asociados al campo cust_id
seleccionado en el cuadro de lista.
En primer lugar, en el Diseñador de vistas cree una vista parametrizada para los pedidos. Cuando cree la vista en el Diseñador de vistas, establezca el criterio de selección para la clave externa a una variable. En el ejemplo siguiente, la variable se llama m.cCust_id
.
Vista parametrizada con una variable
A continuación, cuando diseñe el formulario, siga los pasos del procedimiento siguiente. Observe que la vista requiere un valor para el parámetro que no está disponible cuando se carga el formulario. Si establece la propiedad NoDataOnLoad del objeto cursor de la vista como verdadero (.T.), impide que la vista se ejecute hasta que se llame a la función REQUERY( ), momento en que el usuario habría seleccionado un valor para la variable utilizada en la vista parametrizada.
Para diseñar una lista de uno a varios basada en vistas locales o remotas
Agregue la tabla y la vista parametrizada al entorno de datos.
En la ventana Propiedades para el objeto cursor de vista del Entorno de datos, establezca la propiedad NoDataOnLoad en verdadero (.T.).
Establezca la propiedad RowSourceType del cuadro de lista como 6 - Campos y establezca su propiedad RowSource al campo al que se hace referencia como clave externa en el parámetro de la vista.
En el ejemplo, establezca la propiedad RowSource en
customer.cust_id
.Establezca la propiedad RecordSource de la cuadrícula al nombre de la vista que ha creado antes.
En el código de evento InteractiveChange del cuadro de lista, almacene el valor del cuadro de lista en la variable y, a continuación, vuelva a consultar la vista, como en este ejemplo:
m.cCust_id = THIS.Value *assuming the name of the view is orders_view =REQUERY("orders_view")
Para obtener más información acerca de las vistas locales y remotas, consulte Crear vistas.
Vea también
Permitir a los usuarios agregar elementos a un cuadro de lista | Mostrar registros secundarios en una lista | Agregar imágenes a elementos de una lista | Usar controles | Controles y objetos