Power Builder - ¿No Refresca El Displaycolumn Al Cambiar Un Dropdown Porque?

   
Vista:

¿No Refresca El Displaycolumn Al Cambiar Un Dropdown Porque?

Publicado por Ivan (2 intervenciones) el 05/07/2012 18:57:59
Buenas a todos quienes puedan colaborar y de antemano las gracias por ello
Miren tengo un datawindow form del cual uno de los campos llamado "cod_profesion" lo he definido como un dropdown le llamaré D_DDDW_PROF1 que carga el contenido de una tabla; para efectos de la pregunta le diré tabla Tprofesion1 con campos:
cod_prof1, des_prof1
Por necesidad necesito que debido a una condición dentro del script de un botón en el dadatwindow se cambie el llamado del dropdown en ese campo por otro dropdown al cual llamaré D_DDDW_PROF2 que carga el contenido de otra tabla; para efectos de la pregunta le diré tabla Tprofesion2 con campos:
cod_prof2, des_prof2
Ambos dropwdown no reciben parámetros.
Así pues he aplicado lo que en otras ayudas indican y he puesto algo así:
evento buttonclicked
IF condición THEN
//cambio dropdown
dw_1.Modify("cod_profesion.dddw.name=D_DDDW_PROF2" )
dw_1.Modify("cod_profesion.dddw.displaycolumn='des_prof2'")
dw_1.Modify("cod_profesion.dddw.datacolumn='cod_prof2'")
dw_1.Modify("cod_profesion.dddw.autoretrieve=no")
dw_1.GetChild('cod_profesion',ldwc_prof)
ldwc_prof.SetTransObject(xtrans_obj)
ldwc_prof.InsertRow(0)
ldwc_prof.Retrieve()
ELSE//se mantiene
dw_1.Modify("cod_profesion.dddw.name=D_DDDW_PROF1 " )
dw_1.Modify("cod_profesion.dddw.displaycolumn='des_prof1'")
dw_1.Modify("cod_profesion.dddw.datacolumn='cod_prof1'")
//dw_1.Modify("cod_profesion.dddw.autoretrieve=yes")
dw_1.GetChild('cod_profesion',ldwc_prof)
ldwc_prof.SetTransObject(xtrans_obj)
ldwc_prof.InsertRow(0)
ldwc_prof.Retrieve()
END IF
Entonces cuando se cumple la condición de cambiar el dropdown, veo que en efecto al hacer click en el campo se despliega la lista cargada de la otra tabla Tprofesion2, selecciono y antes de cambiar a otro campo el el formulario se observa el contenido (display column) que viene a ser des_prof2, PERO al pasar a otro campo no sé porque me muestra el código de la tabla (el datacolumn).
He probado quitando:
ldwc_prof.InsertRow(0)
ldwc_prof.Retrieve()
y nada..
Alguien me dijo que había que referscar el datawindow con dw_1.SETREDRAW(TRUE) o no sé si al mismo campo. pero si esa es la solución no sé en cual ubicación ponerlo o si debe hacerse en el itemchanged() o el itemfocuschanged().
Si no es esa la solución es por la cual acudo a uds.
Como dato adicional en la pestaña EDIT en las propiedades para dicho campo he seleccionado ALWAYS SHOW ARROW, V SCROLLBAR, y bueno el ddrop D_DDDW_PROF1 con sus respectivos display y data ya mencionados lineas arriba.
Quería subir imágenes al respecto pero no sé como usar la opción ya que pide que sea subido a una URL.
NOTA ADICIONAL:
Intenté no declara un dropdown en el campo del datawindow y se muestra el mismo resultado.

Espero su gentil respuesta..
Saludos...
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

¿No Refresca El Displaycolumn Al Cambiar Un Dropdown Porque?

Publicado por Leopoldo Taylhardat (690 intervenciones) el 11/07/2012 00:40:42
Saludos...
POR LO QUE ENTIENDO....
en el evento itemchanged debes colocar esto...

long (o integer, string, etc) il_profesion
choose case dwo.name

case 'cod_prof1'
il_profesion=long(data)
// il_profesion=integer(data)... en caso de integer
//il_profesion=data.... en caso de string
...y hacer el proceso con el valor de il_profesion....
case 'cod_prof2'
.....
end choose

Espero que te sirva...
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

¿No Refresca El Displaycolumn Al Cambiar Un Dropdown Porque?

Publicado por Iván (2 intervenciones) el 16/07/2012 16:51:48
Buenos dias
Leopoldo no sirvió de ayuda
en sí lo mencionado en el itemchanged si uso el data como parte de mi condición, pero falta como controlar lo expuesto.
click en el dropdown y busco mi eleccion
http://www.subirimagenes.net/show-image.php?id=396335c97432578fd0d77fdab012bae3

lo selecciono y se muestra el nombre(displaycolumn)
haciendo debug llega a pasar todo el evento itemchanged
http://www.subirimagenes.net/show-image.php?id=effc4ab0c66c9fdf3839d49389302f97

hago click en cualquier otro campo del formulario y desaparece el nombre y muestra su respectivo valor de campo (datacolumn).
http://www.subirimagenes.net/show-image.php?id=cfbdd5fa2f252a067d0f3bc28e45eecd
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