Power Builder - Problema con DDDW Ayuda

 
Vista:

Problema con DDDW Ayuda

Publicado por jesus ramon (2 intervenciones) el 25/03/2006 20:43:45
Buenos tardes.
Tengo una ventana , en ella tengo 2 dw, una que es dw_empresas en donde en el evento click de esta dw, guardo la empresa clickeada, esta empresa me sirve para hacer un filtro a la segnda dw, para que me muestre solo aquellos registros donde aparezca la empresa escogida. En esta segunda ventana tengo una columna llamada nombre en la cual tengo un dddw en la cual me debe solo de mostrar los empleados de la empresa escogida en la dw_empresas.
Hasta aqui todo va bien, el detalle es que cuando yo inserto una nueva fila y selecciono el nombre de un empleado X, me cambia los nombres de los registros anteriores que hubiera arrojado el filtro, ya he estado buscando cual es la falla o porque hace esto , pero aun no se porque, estoy apenas iniciando enPB.
Aqui les muestro el codigo y en qu eventos esta>

Evento clicked de la primera dw_empresas--------

ls_empresa=getitemstring(row,this.getcolumnname())
li_idempresa=Integer(getitemnumber(row,'idempresa'))//var. declarada global
dw_incidencias.settransobject(SQLCA)
dw_incidencias.setfilter("String(idempresa)= '"+String(li_idempresa)+" '")
//Aqui aplico el filtro a la segunda ventana deacuerdo ala empresa escogida
dw_incidencias.filter()
dw_incidencias.retrieve()

evento clicked del boton insertar ------------------
ll_row= dw_incidencias.insertrow(0)
dw_incidencias.scrolltorow(dw_incidencias.rowcount())

//Esto solo para isertar una nueva row

Evento clicked dela segunda dw_incidencias-----
Datawindowchild dwc
if ll_row= row then
getchild('nombre',dwc)
dwc.settransobject(SQLCA)
dwc.retrieve(Integer(li_idempresa))
end if

//Esto es para que cuando haga click en la columna nombre, despliegue el dddw con los nombres que pertenecen a la empresa seleccionada

evento itemchanged de dw_incidencias(la segunda dw)------

Integer li_idempleado,li_iddepto
string ls_null,
datawindowchild dwc
if row =ll_row then
setnull(ls_null)
accepttext()
choose case this.getcolumnname()
case 'nombre'
setitem(row,'nombre',ls_null)
setitem(row,'iddepto',ls_null)
setitem(row,'idempleado',ls_null)

dw_incidencias.getchild('nombre',dwc)
dwc.settransobject(SQLCA)
dwc.retrieve(Integer(li_idempresa))
li_idempleado=dwc.GetItemNumber(dwc.Find("nombre='" + data + "'", 0, dwc.rowcount()),'idempleado')
li_iddepto=dwc.GetItemNumber(dwc.Find("nombre='" + data + "'", 0, dwc.rowcount()),'iddepto')

setitem(row,'idempleado',li_idempleado)
setitem(row,'iddepto',li_iddepto)
setitem(row,'idempresa',li_idempresa)
setitem(row,'altauser',gsusername)
end choose
end if
Tengo la idea de que el problema es cuando hago click en la columna nombre ya que alli es en el preciso momento en que me cambia los datos del nombre de los registros que se tienen antes, esto es solo de manera visual porque en la base de datos no refleja estos cambios, y asi me pasa si llego a insertar otro registro, al cambiar el nombre, me los cambia los demas a el que se ha escogido ahora.
Se agradece de antemano cualquier ayuda.
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

RE:Problema con DDDW Ayuda

Publicado por victor (8 intervenciones) el 25/03/2006 22:20:01
No hay ningun fallo,Las dddw funcionan asi.Necesitas mostrar todos los registros para que las demas filas puedan enseñar correctamente la informacion.
Si tu filtras el dddw y solo muestras un registro los demas registros de la dw no encontraran la informacion.Lo tendrias que hacer de otra manera
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

RE:Problema con DDDW Ayuda

Publicado por jesus ramon (2 intervenciones) el 27/03/2006 15:53:13
Muchas gracias victor por tu respuesta. Por lo que leo tal vez no me logre explicar bien acerca de lo que deseo hacer y cual es el problema que tengo.
Yo el filtro solo lo aplico a la vista que se dara en la datawindow de una tabla X, por ejemplo si yo solo quiero ver cuales son los empleados de la compañia X en particular.
Digamos que me arroja 3 registros por ejemplo mostrandome a 3 empleados diferentes, cuando yo llego a insertar un nuevo registro en esta dw, al momento de darle click a al campo de nombre(el cual es el dddw que te mestra solo los nombres de los empleados que pertenecen a esta empresa) lo que hace ademas de mostrarme ese listado de nombres , es que me cambia los nombres que se muestran en los 3 registros que me arrojo al filtrar. este es mi problema y no se porque razon hace esto, si yo solo quiero que me muestre ese dddw de nombres y me muestre el que escogo solo en el registro nuevo que estoy insertando, ademas de que no deberia cambiarme para nada la infomacion que me muestra de los 3 registros anteriores.
si alguien me pudiera proporcionar alguna ayuda sera de mucha utilidad. Gracias
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

RE:Problema con DDDW Ayuda

Publicado por Jancarlo (890 intervenciones) el 27/03/2006 16:21:50
Que tiene de dw estas usando para hacer el mantenimiento con ese DDDW ?
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

RE:Problema con DDDW Ayuda

Publicado por jesus ramon (2 intervenciones) el 27/03/2006 16:51:57
Que tiene de dw estas usando para hacer el mantenimiento con ese DDDW ? --->
No entiendo tu pregutna, sorry.
supongo que me preguntas acerca de que tipo de dw utilizo, es un dw grid.
Saludos.
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

RE:Problema con DDDW Ayuda

Publicado por Jancarlo (890 intervenciones) el 27/03/2006 17:04:54
Claro a eso me refería, pero bueno vamos al grano.

Te comento que no es bueno usar DropDownDataWindow (DDDW) con parametros en un dw grid y mucho menos si es para mantenimientos.
Lo que pasa es q cuando tu mandas parametros a un DDDW estos se reflejan para todo el dw y no sólo para el registro donde te encuentras, por lo tanto cuando tu cambies de parametros en el registro 10 (x ejem) también se veran afectados en el registro 1,2 y todos los demas y esto puede hacer que se cambien de descripciones.

Hay maneras de resolver esto pero que a mi parecer no son muy limpias y son un poco mas trabajosas. Te recomendaría usar Mantenimientos de Uni-Registros acompañados de una lista.

Cualquier duda nos consultas.

Suerte !
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