FoxPro/Visual FoxPro - Combobox en Grid6 cargar un dato desde una tabla desde Grid7

 
Vista:
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Combobox en Grid6 cargar un dato desde una tabla desde Grid7

Publicado por José (166 intervenciones) el 07/09/2018 20:12:00
Estimados tengo un grid (grid6)con datos y a uno de los campos de ese grid6 le agregué un combobox.-
Necesito que ese combobox me traiga un dato de una tabla que ya la levanté en otro grid (grid7).-

El grid7 carga bien la tabla pero al hacer doble click donde elijo el dato a pasar con el combo al grid6 me da el error "no existe la propiedad value"

les paso el código donde está el error,
Dentro del doble click del grid7:
SELECT 10
USE usuario IN 10 ALIAS xusu shared
SET ORDER TO usuario
wusuario=usuario
thisform.grid6.column5.value=wusuario
*aqui me da el error, si fuera un campo dentro del formulario no hubiera problemas, pero el campo a pasar el dato está dentro de un grid (grid6)
Como paso el dato dentro del campo del grid?

thisform.grid7.Visible=.f.
SELECT 21

Aguardo respuesta , gracias.-

PD: Ya he utilizado el mismo método para cargar del grid7 a un campo del formulario y funciona bien, el tema es cargar el dato de un campo de TABLA del GRID7 al GRID6.
eL COMBOBOX DEL GRID6 ESTÁ BIEN.-falta poder pasar el dato del GRID7 .-
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Combobox en Grid6 cargar un dato desde una tabla desde Grid7

Publicado por Fidel José (657 intervenciones) el 07/09/2018 22:38:51
1) El objeto column es un contenedor, por lo que la referencia debe estar dirigida a uno de los objetos contenidos (Header1, Text1, Combo1, etc)
thisform.grid6.column5.Text1.value=wusuario && reemplazar Text1 por el objeto que corresponda

Sin embargo, lo que debes atacar es el cursor (o tabla) soportado por el control grid y luego refrescar el control.
Como desconozco nombre del cursor y campo, lo deduzco a partir de los datos aportados:
1
2
3
4
5
6
7
8
LOCAL lcField,;
	lcControlSource
 
lcControlSource = thisform.Grid6.Column5.ControlSource
lcField = IIF(EMPTY(AT(".",m.lcControlSource)),m.lcControlSource,STREXTRACT(m.lcControlSource,".",""))
SELECT (thisform.grid6.recordSource)
replace (m.lcField) WITH wUsuario
Thisform.grid6.Refresh

2) No debes usar esto
SELECT 10
USE usuario IN 10 ALIAS xusu shared
SET ORDER TO usuario

Lo correcto es
USE usuario IN 0 ALIAS XUSU SHARED
SELECT xusu
SET ORDER TO USUARIO
wusuario=usuario

Dicho sea de paso:
Si la tabla USUARIO (xusu) tiene un solo registro, no necesitas establecer un orden de indexado.
Si la tabla USUARIO tiene más de un registro, siempre tomará el primero
Si la tabla USUARIO está asociada al grid7 y abres el alias xusu para evitar el conflicto, sospecho que el resultado puede ser incorrecto ya que los punteros de registro se desplazan con absoluta independencia. Salvo que Usuario tenga un solo registro.
SI la tabla USUARIO es la que está asociada al grid7, el valor de wUsuario es simplemente:
wUsuario = Usuario.Usuario && porque parece que la tabla usuario tiene un campo que se llama "usuario".

3) Tampoco pongas SELECT 21 o SELECT 32 para seleccionar un área de trabajo. En lugar de ello, selecciona el alias de la tabla o cursor
SELECT USUARIO

o, si el nombre de la tabla o cursor está alojado en una variable:
lcCursor = "USUARIO"
SELECT (m.lcCursor)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Combobox en Grid6 cargar un dato desde una tabla desde Grid7

Publicado por José (166 intervenciones) el 09/09/2018 01:11:15
Gracias Sr Fidel , modifiqué el contenedor y lo solucioné de éste ,modo (programando como combo1 como ud me indicó)
El resto lo programé de la siguiente forma , funciona y graba bien:
En el Grid7, dobleclick....
SELECT 10
SET ORDER TO usuario
(Ordeno porque son varios registros)
thisform.grid6.column5.combo1.value=usuario
Thisform.grid6.Refresh
thisform.grid7.Visible=.f.

En el init del formulario tengo definido el cursor de la tabla que aquí la llamo como SELECT 10 (siempre programo los select asi y me funcionan correctamente)
(Es la única forma que me funcionó , el resto de la programación como LOCAL lcField,; no hizo falta escribirla)
Nuevamente gracias por la atención.-
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar