VFP Combobox dependiente de otro

PARA LOS TROME

Tengo 2 combos Combo1 y Combo2 en un mismo formulario

Combo1 Carga datos de la tabla tipo_documentos. Tipo donde hay 3 opciones(LICENCIAS, CERTIFICADOS, PASES)

Necesito que:

Combo2 "Este combo es de una sola columna" cargue datos de la tabla Documentos.doc1, Documentos.doc2, Documentos.doc3

Y dependiendo de la opción que seleccione en el Combo1 me muestre uno de los campos de la tabla Documentos

Es decir si selecciono la opción "LICENCIAS" en Combo1 el Combo 2 me muestre los datos de la columna Documentos.doc1

Y si selecciono la opción "CERTIFICADOS" en combo 1 el Combo2 me muestre los datos de la columna Documentos.doc2 y asi sucesivamente.
Llevo buen rato intentando y no e tenido suerte.

2

2 respuestas

Respuesta
2

También existe la posibilidad de lograrlo sin crear matriz..

Combo2:  RowSourceType=6.
Combo1: En el evento "InteractiveChange", copias lo siguiente.

Do Case
    Case This.Value = "LICENCIAS"
        Thisform.Combo2.RowSource = "doc1"
    Case This.Value = "CERTIFICADOS"
        Thisform.Combo2.RowSource = "doc2"
    Case This.Value = "PASES"
        Thisform.Combo2.RowSource = "doc3"
Endcase

Nota: En el ejemplo supongo que el Combo2 se encuentra ubicado en el mismo formulario y no dentro de un contenedor; si es así perfecto, sino arrojará un error por no hallar el objeto.

Sysgen Argentina gracias por la respuesta lo probé y en un inicio me daba error frase /verb no reconocida, ahora lo corregí y me sale mensaje no se encuentra la frase campo el código lo puse así.

DO CASE
CASE this.value = "LICENCIAS"
thisform.pageframe1.page3.Combo2.RowSource = documento_personal.Licencias
CASE this.value="CERTIFICADOS"
thisform.pageframe1.page3.Combo2.RowSource=documento_personal.Certificad
CASE this.value="PASES"
thisform.pageframe1.page3.Combo2.RowSource=documento_personal.Pases
ENDCASE

Que podría estar haciendo mal

Solo faltan las comillas..

DO CASE
CASE this.value = "LICENCIAS"
thisform.pageframe1.page3.Combo2.RowSource = "documento_personal.Licencias"
CASE this.value="CERTIFICADOS"
thisform.pageframe1.page3.Combo2.RowSource = "documento_personal.Certificad"
CASE this.value="PASES"
thisform.pageframe1.page3.Combo2.RowSource = "documento_personal.Pases"
ENDCASE

¡Gracias!

Eres un capo, como lo dijiste faltaban las comillas

Una vez más gracias...

Gracias Daniel.

Respuesta

Adecua el siguiente código a la forma en que identificas el valor elegido en el combo1 (arrC2 es una matriz declarada en modo público):

* RowSourceType de Combo2 debe consignar el valor 5 (matriz)

* Evento Click del Combo1

thisform.combo2.value = ""
DO case
CASE this.value = "LICENCIAS"
SELECT doc1 FROM Documentos WHERE ! EMPTY(doc1) INTO ARRAY arrC2
CASE this.value = "CERTIFICADOS"
SELECT doc2 FROM Documentos WHERE ! EMPTY(doc2) INTO ARRAY arrC2
CASE this.value = "PASES"
SELECT doc3 FROM Documentos WHERE ! EMPTY(doc3) INTO ARRAY arrC2
ENDCASE
thisform.combo2.Requery 

Suerte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas