Solucionado Content con datos en memoria
|
11-11-2015, 09:59 AM
Mensaje: #1
|
|||
|
|||
Content con datos en memoria
Buenos días,
Estoy intentando en un proyecto realizar un content que mantenga los datos solo en memoria, pero no lo consigo. Necesitaría que el content guarde los datos en memoria, para luego poder optar por modificar los mismos o no en la BBDD indicándolo por código. Me estoy encontrando con las siguientes dificultades: 1. No sé si me está guardando en memoria algo en el content, pues al añadir un ítem no me aparece en el mismo. 2. Los datos que tengo en la base de datos y deben aparecer en el content, no sé cómo he de cargarlos y tampoco se muestran. Esta es la colección que contiene el content “Materiales_Ordenes”: Código XOne: <coll name="OTUsuario" title="OTUsuario" editmask="0" notab="false" objname="OT" updateobj="OT" progid="ASData.CASBasicDataObj" show-toolbar="false" Esta es la colección del content: Código XOne: <coll name="OTMaterial" cell-height="40p" title="OTMaterial" show-toolbar="false" keepdata="true" check-owner="true" dependent="true" Y este es el código que utilizo para introducir los items en el content: Código XOne: Function AddMaterial_OT Gracias, Saludos, Daniel Ojeda |
|||
11-11-2015, 10:44 AM
Mensaje: #2
|
|||
|
|||
RE: Content con datos en memoria
Hola, envia la aplicación a desarrollador@xone.es para que podamos revisarlo. Indicanos el usuario y pass y los pasos a seguir para llegar a ese punto que indicas.
|
|||
11-11-2015, 05:31 PM
(Este mensaje fue modificado por última vez en: 11-11-2015 05:32 PM por Ruben.)
Mensaje: #3
|
|||
|
|||
RE: Content con datos en memoria
Hola, te indico lo que hemos visto en el proyecto que nos has enviado y lo que seria oportuno que lo modificaras, para que mejore la aplicación en velocidad y te funcione el tema de los datos en memoria:
Para que tu puedas controlar un content en memoria y no se revise la base de datos, tienes que hacer esto con el frame: *Poner a la coll que es content, a nivel de coll, el atributo loadall="true" *Luego, ese content ya tienes que controlarlo tu, para ello, por script lo tienes que bloquear, para que el frame no busque ya datos en base de datos, para ello, pondrías esto, que por ejmeplo para tu ejemplo yo lo he puesto en el before-edit de la coll OTUsuario: +Para cargarlo en memoria, por si tiene datos en bd, pues cargarlo la primera vez: this.Contents("Materiales_Ordenes").loadall +Para bloquearlo y de esa forma ya no ira más a la base de datos: this.Contents("Materiales_Ordenes").lock Si más adelante necesitas rescatar valores de base de datos, pones esto: this.Contents("Materiales_Ordenes").unlock Ahora para los refrescos: *Para los campos map, que tienen un linkedto: en el campo que tiene el mapcol y el mapfld, le pones esto: onchange="refresh(campos_a_refrescar)", para tu caso seria: Código: <prop name="MAP_MATERIALID" type="N" visible="0" mapcol="Material" mapfld="ID" onchange="refresh(MAP_MATERIAL,MAP_CANTIDAD)" /> Luego, en la función de añadir datos al content, para refrescar solo lo que se modifica, haces esto: *Quita el ui.RefreshContentSelectedRow *Pon esto: ui.Refresh "MAP_MATERIALES_ORDENES","MAP_MATERIAL","MAP_CANTIDAD" Pero muy importante, en el nodo que llamas a dicha funcion, que se llama addmat, lo pones asi: <addmat refresh="false"> Con eso, los datos se cargan en memoria y solo se refrescan los campos que realmente cambia. De la forma que lo tenias, se refrescaba todo y si tienes un móvil con poca memoria, el proceso se relantiza bastante, por ello te aconsejo que utilices lo que te he comentado, para darle mayor velocidad a tu aplicación. |
|||
12-11-2015, 03:42 PM
Mensaje: #4
|
|||
|
|||
RE: Content con datos en memoria
Hola,
Gracias. Ya está solucionado lo anterior. Ahora lo que no consigo es que al marcar como borrado un ítem del content se deje de mostrar el ítem en el content que tiene los datos en memoria. Lo que hago es marcar como borrado el ítem contenido en el content modificando el valor de su campo BORRADO=1. Necesitaríamos que este ítem desaparezca de la lista de ítems del content en pantalla, pero sin modificar la BBDD. El cambio de valor del campo sí que se realiza, pero el ítem continúa visualizándose en el content. El content tiene un filtro t1.BORRADO=0 para que no se muestren los ítems marcados a 1. Código XOne: <contents name="Materiales_Ordenes" src="OTMaterial" filter="t1.BORRADO=0"> ¿Cómo actualizo el content en este caso? Gracias, Saludos, Daniel Ojeda |
|||
12-11-2015, 05:41 PM
Mensaje: #5
|
|||
|
|||
RE: Content con datos en memoria
Hola, lo que tienes que hacer es eliminar el registro de memoria. Para ello, utiliza o DeleteItem o removeItem, que lo tienes definido en el wiki.
|
|||
13-11-2015, 01:49 PM
Mensaje: #6
|
|||
|
|||
RE: Content con datos en memoria
Hola,
Muchas gracias, ya esta solucionado. Saludos, Daniel |
|||
« Tema previo | Tema siguiente »
|
Usuario(s) navegando en este tema: 1 invitado(s)