DDDW GRID : pais - dpto
Publicado por Luis (16 intervenciones) el 01/04/2007 09:32:41
Un saludo cordial, revisando el foro encontre un codigo que sirve para seleccionar pais-dpto-provi (que lo muestro a continuacion), LO PROBE Y RESULTA, ....PERO MI PROBLEMA ES CUANDO LO APLICO EN DW GRID, CUANDO INGRESO DATOS DE ACUERDO A UN MISMO PAIS EN EL DW ME LO PRESENTA RELACIONADO CON EL DPTO: ES DECIR
pais dpto
PERU LIMA
PERU AREQUIPA
PERU TRUJILLO
PERO EL PROBLEMA VIENE CUANDO AGREGO CON OTRO TIPO DE PAIS, LOS DEMAS ITEM INGRESADO SE PRESENTA CON DPTO DE OTRO PAIS.. SOLO SE PRESENTA EN PANTALLA XQ EN BD SI ME GUARDA, COMO PUEDO MEJORA DICHA PRESENTACION EN DW GRID
GRACIAS
/*----------------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------------*/
dddw_pais (Sin Argumentos)
dddw_dpto (cod_pais)
dddw_provi (cod_pais,cod_dpto)
dddw_dist (cod_pais,cod_dpto,cod_provi)
Primero programas en el evento retrieveend del dw donde se encuentran tus dddw.
//Esto es para recuperar los datos segun los guardaste.
datawindowchild dwc
if not rowcount >0 then return //Retornamos en caso q no haya filas
//primero filtramos los departamentos
getchild('cod_dpto',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(getitemstring(getrow(),'cod_pais'))
//segundo filtramos las provincias
getchild('cod_provi',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(getitemstring(getrow(),'cod_pais'),getitemstring(getrow(),'cod_dpto'))
//Por último filtramos los distritos
getchild('cod_dist',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(getitemstring(getrow(),'cod_pais'),getitemstring(getrow(),'cod_dpto'),getitemstring(getrow(),'cod_provi'))
Luego hay q programar en el evento itemChanged de tu dw
datawindowchild dwc
string ls_null
setnull(ls_null)
if not row>0 then return
accepttext( )
choose case this.getcolumnname()
case 'cod_pais'
setitem(row,'cod_dpto',ls_null)
setitem(row,'cod_provi',ls_null)
setitem(row,'cod_dist',ls_null)
getchild('cod_dpto',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(data)
getchild('cod_provi',dwc)
dwc.settransobject(sqlca)
dwc.reset()
getchild('cod_dist',dwc)
dwc.settransobject(sqlca)
dwc.reset()
case 'cod_dpto'
setitem(row,'cod_provi',ls_null)
setitem(row,'cod_dist',ls_null)
getchild('cod_provi',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(getitemstring(row,'cod_pais'),data)
getchild('cod_dist',dwc)
dwc.settransobject(sqlca)
dwc.reset()
case 'cod_provi'
setitem(row,'cod_dist',ls_null)
getchild('cod_dist',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(getitemstring(row,'cod_pais'),getitemstring(row,'cod_dpto'),data)
end choose
pais dpto
PERU LIMA
PERU AREQUIPA
PERU TRUJILLO
PERO EL PROBLEMA VIENE CUANDO AGREGO CON OTRO TIPO DE PAIS, LOS DEMAS ITEM INGRESADO SE PRESENTA CON DPTO DE OTRO PAIS.. SOLO SE PRESENTA EN PANTALLA XQ EN BD SI ME GUARDA, COMO PUEDO MEJORA DICHA PRESENTACION EN DW GRID
GRACIAS
/*----------------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------------*/
dddw_pais (Sin Argumentos)
dddw_dpto (cod_pais)
dddw_provi (cod_pais,cod_dpto)
dddw_dist (cod_pais,cod_dpto,cod_provi)
Primero programas en el evento retrieveend del dw donde se encuentran tus dddw.
//Esto es para recuperar los datos segun los guardaste.
datawindowchild dwc
if not rowcount >0 then return //Retornamos en caso q no haya filas
//primero filtramos los departamentos
getchild('cod_dpto',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(getitemstring(getrow(),'cod_pais'))
//segundo filtramos las provincias
getchild('cod_provi',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(getitemstring(getrow(),'cod_pais'),getitemstring(getrow(),'cod_dpto'))
//Por último filtramos los distritos
getchild('cod_dist',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(getitemstring(getrow(),'cod_pais'),getitemstring(getrow(),'cod_dpto'),getitemstring(getrow(),'cod_provi'))
Luego hay q programar en el evento itemChanged de tu dw
datawindowchild dwc
string ls_null
setnull(ls_null)
if not row>0 then return
accepttext( )
choose case this.getcolumnname()
case 'cod_pais'
setitem(row,'cod_dpto',ls_null)
setitem(row,'cod_provi',ls_null)
setitem(row,'cod_dist',ls_null)
getchild('cod_dpto',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(data)
getchild('cod_provi',dwc)
dwc.settransobject(sqlca)
dwc.reset()
getchild('cod_dist',dwc)
dwc.settransobject(sqlca)
dwc.reset()
case 'cod_dpto'
setitem(row,'cod_provi',ls_null)
setitem(row,'cod_dist',ls_null)
getchild('cod_provi',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(getitemstring(row,'cod_pais'),data)
getchild('cod_dist',dwc)
dwc.settransobject(sqlca)
dwc.reset()
case 'cod_provi'
setitem(row,'cod_dist',ls_null)
getchild('cod_dist',dwc)
dwc.settransobject(sqlca)
dwc.retrieve(getitemstring(row,'cod_pais'),getitemstring(row,'cod_dpto'),data)
end choose
Valora esta pregunta
0