9 de septiembre de 2008
Hacer Nuevo item desde el related panel
Este proyecto hecho en PostgreSQL muestro como hacer un insert desde el related panel... por medio de un dialogo.
Si seleccionamos la opcion "nuevo item" en el related editor(un select editor cargado con informacion relacional) . podemos observar que se abre un dialogo para poder llenar nuestra informacion que nos falta en esta lista principal de items.
Esto es lo que basicamente realiza la mini aplicacion.
Para una mejor comprensio explicare algunos puntos no comunes que tiene este aplicacion.
!) insertar en la tabla una fila en el primer registro O en el id y "Nuevo NombreEntidad" en Nombre
por ejemplo
id_categoria | nombre |
=================
0 | Nueva Categoria
1 | aaaaa
2 | bbbbb
3 | ccccc
...
2) En la pagina que vas a aplicar estos propiedades
Esto es para asociar el evento onclick con el dialogo
dojo.declare("PageProducts", wm.Page, {
start: function() {
this.connect(app.pageDialog.domNode,"click", this, "click");
},
click: function(e) {
.....
},
_end: 0
});
esto es para filtrar el evento si estas clickeando en el boton Ok o si estas cerrando el dialogo => e.target.id == "app_pageDialog"
pageDialog
click: function(e) {
if(e.target.id == "app_pageDialog"){
....
}
},
esto es para actualizar el nuevo valor en el related editor: this.categoryLookupEditor1.update();
cortersia de Ed Callahan...the ingeniero WM ..
click: function(e) {
if(e.target.id == "app_pageDialog"){
this.categoryLookupEditor1.update();
}
}
Nada mas espero que pueda ser ayuda :)
Fuentes:
http://dev.wavemaker.com/forums/files/NewItemByDialog.zip
http://dev.wavemaker.com/forums/files/newitem.sql_.txt
http://dev.wavemaker.com/forums/files/screenshots.zip
5 de septiembre de 2008
Master Detail V2 en WM4
1)Importar la base de datos "master_detai_db"
2)Crear liveViews para el master y el detail en LiveView panel
- masterView -> seleccionar todos los checkboxes y guardar
- detailView -> seleccionar todos los checkboxes y guardar
3)En el designer
- cambiar en layoutBox la propiedad "box" : de Top_to_Botton a Left_to_Right
- en el palette añadir 2 templates "SearchListDetail" y aplicar flex en los 2
4)Crear variables
Crear 1 liveVariable para el master ->liveSource : masterView y quitarle el seleccionado a la propiedad autoUpdate
Crear 1 liveVariable para el detail ->liveSource : detailView y quitarle el seleccionado a la propiedad autoUpdate
Crear 1 variable para el actual master ->type : Master
5) Enlazar(Bind)..... master y detail con los widgets
Para el master:
- Bind dataGrid1 con el liveVariable1
- Bind liveVariable1 con el dataGrid1.selectedItem
Para el:
- Bind dataGrid2 con el liveVariable2
- Bind liveVariable2 con el dataGrid2.selectedItem
Para el actual_master:
- Bind variable1 -> dataSet -> idMaster con el liveForm1.dataOutput.idMaster
6) Filtrar el liveVariable2 para mostrar los datos del detail
- Bind detail -> master -> idMaster con el liveForm1.dataOutput.idMaster
- En el liveForm2 -> event -> OnSuccess -> liveVariable2
- En el dataGrid1 -> event -> OnSelected -> liveVariable2
7) Seleccionar el widget liveForm2 para poner el actual_master en el related panel
- Seleccionar el widget masterSalesRelatedEditor1 y cambiar la propiedad "editingMode" : de lookup a readonly
- Crear un evento en BeginInsert con javascript y colocar:
liveForm2BeginInsert: function(inSender) {
this.masterSalesRelatedEditor1.setDataSet(this.variable1);
},
8) En la funcion inicial de la pagina poner:
start: function() {
this.liveVariable1.update();
}
Fuentes:
Suscribirse a:
Entradas (Atom)