Registrar un dato con combobox

Estoy desarrollando una aplicación en vfp 9 conectada a Mysql, lo que necesito hacer es, guardar unicamente el campo "código" a una tabla.
=sqlexec(con,"select * from clientes","curClientes") &&traigo los datos
thisform.combo1.rowsourcetype = 6
thisform.combo1.rowsource = "curClientes.nombre,codigo"
En la ahora de insertar solamente el código no se como hacerla, osea optener el campo del value del combobox

1 Respuesta

Respuesta
1
Claro, tu ejemplo lo dice todo.
En tu combobox muestras primero el campo nombre y luego el campo código. Para obtener el valor del campo código tomando tu propio ejemplo tienes dos opciones:
1) Utiliza la propiedad boundcolumn de tu combobox para vincular el código a la propiedad value del control. En tu ejemplo sería la 2:
thisform.combo1.boundcolumn=2
2) Tomar el valor diréctamente del cursor.
lCodigo=alltrim(curClientes.codigo) && si es caracter
lCodigo=curClientes.codigo && si es numérico.
Genial la respuesta, gracias muy amable, tengo una duda. Puedo hacer esto:
=sqlexec(con,"select * from clientes","curClientes") &&traigo los datos
thisform.combo1.rowsourcetype = 6
thisform.combo1.rowsource = "curClientes.nombre,codigo"
thisform.combo4.BoundColumn = 2
lcli = thisform.combo4.BoundColumn = 2
poner en una variable para luego insertar?
Gracias..
Pero mi respuesta se debe a que tú hiciste tu pregunta en forma clara y precisa.
En cuanto a tu duda te respondo lo siguiente:
1) En tu ejemplo, supongo que la variable en la que quieres almacenar el código del cliente es "lcli". Siendo así me permito hacerte la siguiente recomendación a fin de que en el futuro te evites confisiones. Existe "digamos" una convención para los nombres de variables que ayudan al programador a saber qué tipo de datos contiene la variable. De esta forma, si el dato que vas a almacenar en alfanumérico tu variable debería llamarse "cCli", si fuera numérico "nCli", y si fuera un valor lógico (.t. / .f.) se llamará "lCli". Por otra parte, si la variable es local será "lcCli", si es pública pcCli, y así sucesivamente.
2) No sólo es posible hacer lo que preguntas, sino que es lo más indicado generalmente ya que te permite almacenar el dato aunque el cursor no esté disponible, e inclusive utilizar la variable como parámetro para otros selects o filtrados Where.
3) Lo único es que tu código no es correcto en el siguiente punto:
Tú pones:
lcli = thisform.combo4.BoundColumn = 2
Debes poner:
lcli = thisform.combo4.value && si el dato es numérico
lcli = alltrim(thisform.combo4.value) && si el dato es alfanumerico.
Obs:
La función alltrim quita todos los espacios en blanco
Recuerda que la propiedad "boundcolumn" sólo sirve para indicar qué columna de un combobox con varias columnas está asociada a la propiedad "value"
Para obtener el valor seleccionado en el combobox debes utilizar en tu sintaxis pa propiedad VALUE.
lcli = thisform.combo4.value && si el dato es numérico
lcli = alltrim(thisform.combo4.value) && si el dato es alfanumerico.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas