En este grupo En todos

Foro de PowerBuilder



Ayuda con filtro

Escrito por Giselle
el 21/05/2007

Que tal, agradeceria mucho si pudiera ayudarme con lo siguiente:

Yo tengo un datawindow que contiene tres dddw
ddw_provincia()
ddw_distrito(cod_provincia)
ddw_corregimiento(cod_provincia,cod_distrito)

Lo que necesito es que cuando escojo una provincia , se me carguen los distritos de esa provincia y de igual forma cuando escojo distrito se carguen los corregimientos de ese distrito.
En el evento itemchanged tengo el siguiente codigo:

Datawindowchild dwc
string ls_null

//if not row > 0 then return
accepttext( )
setnull(ls_null)

//messagebox('',getcolumnname())
 
choose case getcolumnname() 

case 'cod_provincia'
 
 setitem(row,'cod_distrito',ls_null)
 setitem(row,'cod_corregimiento',ls_null)


 getchild('cod_distrito',dwc)
 dwc. Settransobject(sqlca)
 dwc. Retrieve(integer(data))
  
 getchild('cod_corregimiento',dwc)
 dwc. Settransobject(sqlca)
 dwc. Reset()
  
case 'cod_distrito'
 setitem(row,'cod_corregimiento',ls_null)
 getchild('cod_corregimiento',dwc)
 dwc. Settransobject(sqlca)
 dwc. Retrieve(getitemNumber(row,'cod_provincia'),integer(data))

End choose

Y en el evento retrieveend

Datawindowchild dwc
getchild('cod_distrito',dwc)
//messagebox('',getchild('cod_distrito',dwc))
dwc. Settransobject(sqlca)
dwc. Retrieve(getitemNumber(getrow(),'cod_provincia'))


getchild('cod_corregimiento',dwc)
//messagebox('',getchild('cod_corregimiento',dwc))
dwc. Settransobject(sqlca)
dwc. Retrieve(getitemNumber(getrow(),'cod_provincia'),getitemNumber(getrow(),'cod_distrito'))

Al escoger la provincia se me cargan los distritos correspondientes a esta pero cuando selecciono un distrito me manda este error: Selent error: SQLSTATE=01004 [Sybase] [ODBC Driver] Data Truncated

Gracias y espero su respuesta.

Escrito por Alberto
el 23/05/2007

Por qué necesitas hacer el retrieve de cada uno de los objetos dddw?

Te sugiero que hagas lo siguiente.

Hay un evento que se ejecuta en el momento de hacer click en la flecha del dropdown. Cargá ahi tus DDDW

Escrito por Giselle
el 01/06/2007

Hola Alberto

Gracias por responder, pero yo soy nueva en powerbuilder y te agradeceria si pudieras explicarme un poco como hacer esto que me dices... Nuevamente gracias

Escrito por Omar Sanchez
el 21/06/2007

Lo que debes hacer es en el evento itemchanged, crear un choose case, para determinar cual columna estas clickeando, paso seguido crear hay mismo dos datawindowschild, para que cuando escojan en la primera opcion tomes esa refernccia y/o codigo para realizar un filtro sobreel segundo dropdawn que tienes.

Setfilter()

Filter()