Relaciones padre-hijo

Anuncio
Relaciones padre-hijo
Autor:
Fecha de creación:
Fecha de últ. modificación:
Versión de VDF:
Pepe Guimarães
29/08/2.006
21/09/2.006
11.1
Asunto
Se trata de crear una vista tipo cabecera-detalle, en la que se rompe la relación de algunos tablas y se
crean unas nuevas para esos campos.
Hemos partido del ejemplo order de la versión 11.1 de VDF.
Someramente, y antes de pasar a los detalles, lo que se ha hecho en este workspace es crear una tabla
nueva (tstrelat), crear campos nuevo en Customer relacionado con tstrelat y en OrderHead un campo
nuevo referente al "id" de tstrelat pero que no está relacionado.
Se crearon los views, selection list correspondientes a tstrelat
Se modificó customer para que se pueda introducir los datos de tstrelat.
Partiendo de order.vw se creó un order_patron.vw en donde se realizaron las modificaciones que
servirán para explicar lo que se hizo.
Para agilizar las explicaciones junto al ejemplo se puede encontrar los ficheros necesarios para adjuntar
a las carpetas que se mencionan:
Carpeta Appsrc
-TestRelate.vw : view de testrelat.
-tstrelat.sl : selection list de tstrelat
-Customer.vw: customer modificado para introducir datos de tstrelat
-Order_patron.vw : típico cabecera-detalle con las modificaciones pertinentes
Carpeta ddsrc
- ".fd" y ".dd" de customer, orderhea y tstrelat
Carpeta dat
© Moose Software SL
www.moose-software.com
- ".dat", ".k*", ".hdr" , ".tag" de customer, orderhea, orderdetal y tstrelat
- Filelist.cfg
Modificaciones en el View
Las modificaciones importantes referentes a order_patron.vw se muestran a continuacion y se explican
con imagenes:
•
•
En Entering_scope se rompe la relacion customer-tstrelat y se crea la relacion orderhea-tstrelat.
En Exiting_scope se re-establecen las relaciones a su estado original.
•
Se muestra el Data Dictionary Object Structure (DDOS). Fijarse que tanto customer_dd como
orderhea_dd tienen como DDO_server a tstrelat_dd.
© Moose Software SL
www.moose-software.com
En el objeto customer_dd hemos definido que cada vez que se salga del campo customer.number se
ejecute una "procedure" que se llama CustomerData.
En esta comprobamos si ha habido variacion de cliente en el pedido o si es un pedido nuevo en cuyo
caso obtenemos el valor del campo testId del cliente y lo enviamos al DD de testrelat para que ejecute
"showvalues"
© Moose Software SL
www.moose-software.com
Nos muestra la procedure ShowVAlues de testrelat.
En ella buscamos el registro de tstrelat y hacemos que se muestren todos los valores de tstrelat con
"request_assign"
Finalmente compilar, probar y estudiar !
Mejoras que se pueden hacer o bugs encontrados
- Si se abre order_patron se introduce un cliente, se abre el view de clientes en la pestaña "other" se
puede ver que el campo de id de testrelat está en blanco. Si se refresca la información ya
aparece/muestra todos los datos
Comandos a estudiar/ver
- Entering_scope
- Exiting_scope
- Set_relate
- Request_assign
- Field_exit_msg
- Field_Changed_State
- Field_current_value
© Moose Software SL
www.moose-software.com
Descargar