Power Builder - FILA NUEVA EN UNA MASTER-DETAIL

 
Vista:

FILA NUEVA EN UNA MASTER-DETAIL

Publicado por Carla (9 intervenciones) el 02/12/2002 16:10:05
Hola a Todos. Que bueno encontrar un Foro en castellano.
Estoy investigando las PFC de PB5.0.3. Estoy usando los servicios del objeto n_cst_linkage para realizar una master/detail.
El problema se presenta cuando inserto o agrego una fila en la detail y debo cargar valores en algunos campos de la fila insertada.
¿Esta previsto esto en las PFC? o ¿debo crear un evento como pfc_postinsertrow en el objeto u_dw y luego sobreescribir los eventos
pfc_addrow y pfc_insertrow para que llame al evento NUEVO despues de la inserción o agregado de la fila?

Gracias por su colaboracion.

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:FILA NUEVA EN UNA MASTER-DETAIL

Publicado por Jorge Luis (91 intervenciones) el 02/12/2002 16:42:55
SALUDOS
Mira yo no he probado la versió 5.0.3 pero si es igual que en la 7.0.3 no existen esas funciones en los pfc, pero resolverlo es muy fácil, luego de ejecutar el insertRow(0) te devuelve una variable INT, que con esta puedes hacer SetItem al dw detalle, por ejemplo:
INT li_fila
li_fila = dw_detalle.InsertRow(0)
dw_detalle.SetItem(li_fila,"fecha",Today())
dw_detalle.SetItem(li_fila,"usuario","jlreinoso")
y luego puedes seguir con la programación normal.
Nota: es importante que este código esté ubicado inmediatamente después del InsertRow y en el mismo evento.
Espero que te ayude


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:FILA NUEVA EN UNA MASTER-DETAIL

Publicado por juan (89 intervenciones) el 02/12/2002 19:17:13
No se si te he entendido bien pero lo intentare. La respuesta es Si, si que esta previsto eso en las pfc´s, solamente deberias de codificar en los eventos pfc_addrow() y pfc_insertrow() los valores que necesites pero sin sobreescribirlos y controlando la variable ancestorreturnvalue ya que sino estas machacando todos los controles del objeto u_dw que estan destinados a controlar los eventos cuando las dw estan linkadas.
No se si con esto he respondido a tu pregunta
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:FILA NUEVA EN UNA MASTER-DETAIL

Publicado por Carla (9 intervenciones) el 03/12/2002 15:10:38
Hola Juan:
Gracias por tu respuesta y si entendiste bien el tema.
Intente codificar el evento pfc_addrow de la dw_detail. Como necesito el numero de la fila insertada, intente usar la variable del ancestro "ll_rc" para ejecutar setitiem en esta dw, y me da el error "Undefined Variable : ll_rc" ya que esta variable esta declarada local en el codigo del ancestro.
¿Hay otra forma de obtener el numero de fila insertada?, ya mire las variables de instancias y no encuentro nada y el comando this.getrow() no es confiable ya que todavia no se ejecuta un setrow().

Nuevamente 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:FILA NUEVA EN UNA MASTER-DETAIL

Publicado por juan (89 intervenciones) el 03/12/2002 18:20:30
Los codigos de retorno entre eventos a distintos niveles de herencia se capturan siempre en la variable ancestorreturnvalue, es decir lo que se retorna en el ancestro como ll_rc en el hijo lo tienes cargado en la variable ancestorreturnvalue, asi lo que buscas es esta misma variable. La fila te vendra dada ahi
Ej pfc_addrow():
if ancestorreturnvalue > 0 then
this.setitem(ancestorretrunvalue, ''campo1', valor1)
this.setitem(ancestorretrunvalue, ''campo2', valor2)
end if
return ancestorretrunvalue
Esto es aplicable para todos casi los eventos de las pfc´s
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