Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo introducir datos que pueden no estar contenidos en la lista desplegable control ComboBox y, a continuación, cambiar un valor de campo en una tabla con el valor especificado en el cuadro combinado.
Versión original del producto: Visual FoxPro
Número de KB original: 140652
Resumen
Visual FoxPro permite usar cuadros combinados en formularios para seleccionar o introducir datos dentro del formulario. Los cuadros combinados permiten derivar datos de los orígenes siguientes:
- Valor
- Alias (Nombre ficticio)
- Instrucciones SQL
- Consultas
- Matrices
- Campos
- Archivos
- Estructuras
- Elementos emergentes
En este artículo se describe cómo introducir información que puede no estar contenida en la lista desplegable control ComboBox y, a continuación, cambiar un valor de campo en una tabla con el valor especificado en el cuadro combinado.
Más información
Para introducir datos en un control ComboBox y, a continuación, almacenarlos en un campo de una tabla si el valor ha cambiado, siga estos pasos:
Cree un nuevo formulario y coloque el código siguiente en su procedimiento de evento Load:
PUBLIC ARRAY aTitle(1) SELECT DISTINCT(customer.contact) FROM customer ; INTO ARRAY aTitle
Agregue la tabla de clientes del
\Data
directorio al entorno de datos del formulario. Puede encontrar el\Data
directorio en una de las siguientes ubicaciones:Visual FoxPro 3.x: VFP\Samples\Mainsamp Visual FoxPro 5.x: VFP\Samples Visual FoxPro 6.0: \MSDN98\98VS\1033\Samples Visual FoxPro 7.0,8.0,9.0: \Samples\Data
Coloque un cuadro de texto en el formulario y establezca su
ControlSource
propiedad en:Customer.Contact
Coloque un cuadro combinado en el formulario. Establezca su
RowSource
propiedad en aTitle y suRowSourceType
propiedad en 5-Array.En el
InteractiveChange
procedimiento, escriba las siguientes líneas de código:IF Customer.Contact != Thisform.combo1.DisplayValue REPLACE Customer.Contact WITH Thisform.combo1.DisplayValue Thisform.Text1.Refresh SELECT DISTINCT(customer.contact) FROM customer ; INTO ARRAY aTitle ENDIF
En el
LostFocus
procedimiento, escriba las siguientes líneas de código:IF Customer.Contact != Thisform.combo1.DisplayValue REPLACE Customer.Contact WITH Thisform.combo1.DisplayValue Thisform.Text1.Refresh SELECT DISTINCT(customer.contact) FROM customer ; INTO ARRAY aTitle ENDIF thisform.combo1.displayvalue=""
Agregue un botón de comando al formulario y escriba el código siguiente en su
Click
procedimiento de evento:SKIP ThisForm.Combo1.DisplayValue=Customer.Contact ThisForm.Refresh
Agregue otro botón de comando al formulario y coloque el código siguiente en su
Click
procedimiento de evento:SKIP -1 ThisForm.Combo1.DisplayValue=Customer.Contact ThisForm.Refresh
Guarde y ejecute el formulario. Cambie el valor del cuadro combinado y recorra la tabla mediante los botones de control. Cierre el formulario y examine la tabla de Clientes. Examine el campo Contacto . Los cambios que se introduzcan en el cuadro combinado se reflejarán en el campo.