SoloCodigo

Programación General => Power Builder => Mensaje iniciado por: girl18 en Jueves 29 de Junio de 2006, 18:40

Título: Dropdown
Publicado por: girl18 en Jueves 29 de Junio de 2006, 18:40
Les escribo porque tengo un problema en cargar unos dropdown. El problema es el siguiente:tengo un datawindow que utiliza dos dropdown una es cuenta y el otro es especificaciones, entonces yo quiero que seleccionar un nmero de cuenta en el primer dropdown, el segundo de especificacion, solo me cargue las especificaciones que pertenecen a esa cuenta. Yo estoy utilizando argumentos de recuperacion uno es id_cuentas y el otro es id_especificacion. pero el script que coloque los eventos retrieveend y Itemchanged no me funcionan pues a la hora seleccionar la cuenta no me carga el segundo dropdown.. Espero me puedan ayudar con esto. please..
Título: Re: Dropdown
Publicado por: ramz en Jueves 29 de Junio de 2006, 20:13
Buen dia, lo que debes ahcer es algo asi: el prime DDDW esta ok pero al segundo le debes pasar  el parametro del primero, entones para eso yo lo hago de la sigueinte forma:

declaro una funcion : y le envio 4 parametros

of_rcpra_dtos_dddw_param (nombre dw dond esta el DDW,"nombre de la columan donde esta el DDDW",objeto de transacion,constante 0)

la funcion tiene el sgten codigo:

///////////////////////////////////////////////////////////////////////
//
//   Function : of_rcpra_dtos_dddw
//
//   Purpose : Simplifica el proceso de recuperar datos en un dddw para
//             ser utilizados en un datawindow
//
//   Argumentos : dw : datawindow control; Datawindow que sera afectado
//               column : string ; Columna que contiene el dddw
//               tr_object : transaction; Transaction object a ser usado
//               long: con el argumento de recuperacion
//   Retorna : boolean indicando si la operacion fallo
//
////////////////////////////////////////////////////////////////////////////


datawindowchild child_dddw
int li_rspsta
// Si no hay una columna dddw retorna false
li_rspsta = dw.GetChild(column,child_dddw)
if li_rspsta = -1 then return false
// Si no existe el  transaction object retura false
li_rspsta = child_dddw.setTransObject(tr_object)
if li_rspsta = -1 then return false
// Si no encuentra registro o ocurre un error retura false
li_rspsta = child_dddw.Retrieve(as_prmtro)
if li_rspsta <=0 then return false

return true
// got here ok so return true

espero te ayude y me comentas en todo caso.

Ricardo Muñoz.
Título: Re: Dropdown
Publicado por: leoandres en Viernes 30 de Junio de 2006, 23:49
Saludos...  
estas equivocado en los eventos que se disparan, el retrieveend se "dispara" solamente al finalizar de cargar la data cuando hay un retrieve, el itemchanged se "dispara" cuando hay cambios de datos en la fila (tupla) de la data, puedes controlarlo preguntando por el dato que haya sido modificado con las instrucciones choose case... end case, etc. (para tu conocimiento), para que se "dispare" la búsqueda en el segundo datawindow debes programar el evento "ROWFOCUSCHANGED" que se activará cuando te desplaces en la línea para hacer la búsqueda... espero que te sirva...
Título: Re: Dropdown
Publicado por: ramz en Martes 4 de Julio de 2006, 16:24
estas en lo cierto, lo que quize decir y no me explique es que solo basta con utilizar el itemchanged .