Que tipo de variable uso aca, quien me ayuda???
Publicado por Ricardo Ríos (20 intervenciones) el 25/04/2007 14:28:22
Buenos Dias
Antes que nada
Muchas Gracias por leer mi post
Tengo un problemilla que es el siguiente:
Tengo una ventana (w_ing_caso) con 2 dropdownlisbox (ddlb) y un boton de guardar (cb_1)
donde en el evento open de la ventana (w_ing_caso) hago un cursor con select de la tabla "areas" para llenar uno de los dropdownlisbox (ddlb_3) ahora necesito saber como hago o que codigo creo para que cuando seleccione un campo en el dropdownlistbox haga un select en el otro dropdownlistbox (ddlb_4) con la tabla de las "subareas" segun el area que se haya seleccionado en el anterior dropdownlistbox (ddlb_3)
el codigo de la ventana con el evento open es el siguiente:
DECLARE puntero_areas CURSOR FOR SELECT area, id_area FROM area1;
OPEN puntero_areas;
fetch puntero_areas into :v_area, :v_id_area;
DO WHILE sqlca.sqlcode = 0
ddlb_3.AddItem(''+v_id_area+'.) '+v_area)
ll_i++
Fetch puntero_areas Into :v_area, :v_id_area;
Loop
If Sqlca.Sqlcode <> 0 Then
Return
Else
Close puntero_areas;
Return
End If
Y ete es el codigo que cree en el ddlb_3 con el evento modified (por su puesto no me funciona bien)
string vs1, vs2, vs3, vs4, vs5, vs6, vs7, vs8, vs9, vs10, v_area
v_area = ddlb_3.text
SELECT "subareas"."subarea1",
"subareas"."subarea2",
"subareas"."subarea3",
"subareas"."subarea4",
"subareas"."subarea5",
"subareas"."subarea6",
"subareas"."subarea7",
"subareas"."subarea8",
"subareas"."subarea9",
"subareas"."subarea10"
INTO :vs1,
:vs2,
:vs3,
:vs4,
:vs5,
:vs6,
:vs7,
:vs8,
:vs9,
:vs10
FROM "subareas"
WHERE "subareas"."area" = :v_area ;
IF SQLCA.SQLCODE <> 0 THEN
MessageBox('ERROR','No se encontraron los valores o ha ocurrido un error en la base de datos.',StopSign!)
rollback;
ELSE
ddlb_4.additem(vs1)
ddlb_4.additem(vs2)
ddlb_4.additem(vs3)
ddlb_4.additem(vs4)
ddlb_4.additem(vs5)
ddlb_4.additem(vs6)
ddlb_4.additem(vs7)
ddlb_4.additem(vs8)
ddlb_4.additem(vs9)
ddlb_4.additem(vs10)
END IF
Pienso que deberia traer la variable desde el cursor del evento open pero mi duda es como hacerlo y como especifico cual "area" o campo del ddlb fue seleccionada por el usuario, espero sus respuestas y gracias por su ayuda.
Saludos desde Venezuela
Antes que nada
Muchas Gracias por leer mi post
Tengo un problemilla que es el siguiente:
Tengo una ventana (w_ing_caso) con 2 dropdownlisbox (ddlb) y un boton de guardar (cb_1)
donde en el evento open de la ventana (w_ing_caso) hago un cursor con select de la tabla "areas" para llenar uno de los dropdownlisbox (ddlb_3) ahora necesito saber como hago o que codigo creo para que cuando seleccione un campo en el dropdownlistbox haga un select en el otro dropdownlistbox (ddlb_4) con la tabla de las "subareas" segun el area que se haya seleccionado en el anterior dropdownlistbox (ddlb_3)
el codigo de la ventana con el evento open es el siguiente:
DECLARE puntero_areas CURSOR FOR SELECT area, id_area FROM area1;
OPEN puntero_areas;
fetch puntero_areas into :v_area, :v_id_area;
DO WHILE sqlca.sqlcode = 0
ddlb_3.AddItem(''+v_id_area+'.) '+v_area)
ll_i++
Fetch puntero_areas Into :v_area, :v_id_area;
Loop
If Sqlca.Sqlcode <> 0 Then
Return
Else
Close puntero_areas;
Return
End If
Y ete es el codigo que cree en el ddlb_3 con el evento modified (por su puesto no me funciona bien)
string vs1, vs2, vs3, vs4, vs5, vs6, vs7, vs8, vs9, vs10, v_area
v_area = ddlb_3.text
SELECT "subareas"."subarea1",
"subareas"."subarea2",
"subareas"."subarea3",
"subareas"."subarea4",
"subareas"."subarea5",
"subareas"."subarea6",
"subareas"."subarea7",
"subareas"."subarea8",
"subareas"."subarea9",
"subareas"."subarea10"
INTO :vs1,
:vs2,
:vs3,
:vs4,
:vs5,
:vs6,
:vs7,
:vs8,
:vs9,
:vs10
FROM "subareas"
WHERE "subareas"."area" = :v_area ;
IF SQLCA.SQLCODE <> 0 THEN
MessageBox('ERROR','No se encontraron los valores o ha ocurrido un error en la base de datos.',StopSign!)
rollback;
ELSE
ddlb_4.additem(vs1)
ddlb_4.additem(vs2)
ddlb_4.additem(vs3)
ddlb_4.additem(vs4)
ddlb_4.additem(vs5)
ddlb_4.additem(vs6)
ddlb_4.additem(vs7)
ddlb_4.additem(vs8)
ddlb_4.additem(vs9)
ddlb_4.additem(vs10)
END IF
Pienso que deberia traer la variable desde el cursor del evento open pero mi duda es como hacerlo y como especifico cual "area" o campo del ddlb fue seleccionada por el usuario, espero sus respuestas y gracias por su ayuda.
Saludos desde Venezuela
Valora esta pregunta


0