|
que tal, pues mira.. tengo casi un mes buscando una manera de poder controlar las interacciones de mi formulario con una db en mysql, por ejemplo llenar de informacion mis controles insertar registros, asi como poder modificarlos pero todo eso con un solo remoteObject .
si t preguntas por que con un solo remote object, mi respuesta es por facilidad para administrar mi codigo... pues se me ha hecho vastante practico en otros lenguajes de programacion... para este fin creo una funcion qeu acepte varios parametros entre ellos el nombre del objeto a donde quiero que cargue los datos, un parametro string con un identificador de un array de objetos que me genera objetos array y asigna los resultados devueltos por el objeto remoteObject.. para una mejor idea t pego la funcion enseguida.
public function onResultService(event:ResultEvent,oTarget:Object,cNombreArray:String):void{ aryDataProviders[cNombreArray] = new ArrayCollection(event.result as Array); oTarget.dataProvider=aryDataProviders[cNombreArray]; }
con esta funcion tengo la posibilidad de usarla en todas las llamadas y para todos los objetos que quiera llenar de datos provenientes de una db usando webOrb y una clase php puesto que dicha clase tiene un metodo que recibe una funcion sql, ejecuta la sentencia y me devuelve un resultado.
hasta este punto la funcion actualmente satisface mis demandas, el problema comienza cuando necesito cargar de informacion mas de un objeto en la misma interaccion puesto qeu para realizar las peticiones hago lo siguiente
en el evento creationComplete del form necesito que llene de datos dos combos creo una funcion que ejecute lo siguiente para el combo de niveles de acceso
cDataProviderName='aryNivelesAcceso'// le digo como se va a llamar el array que va a ser asignado al objeto oTarget=nivel_acceso//le paso el nombre o referencia al objeto que quiero que se le asigne el array como dataprovider en este caso es el anterior rOListaGrid.consulta('select nivel,descripcion from perfiles_usuarios')// ejecuto el metodo remoto
y enseguida esto para que llene los datos del combo areas cDataProviderName='aryAreas'; oTarget=area; rOListaGrid.consulta('select codigo,nombre from areas');
se que el problema es por que pongo seguidas las llamadas al objeto remoto y sus metodos y ahun no termina de resolver la primera llamada cuando el codigo vuelve a cambiar los valores del objeto, asi que me llena de datos al objeto definido al final por eso necesito encontrar la manera de emular llamadas sincronicas o algo asi que me eprmita resolver una llamada a la vez antes de que llegue a la otra o bien algun metodo que no sea que tenga que montar un remoteObject por cada objeto que necesito llenar de datos, alomejor existe otra forma de hacerlo pero de momento no s eme ocurre.. otro companero me comento la posiblilidad de usar un framework pero preferiria hacer algo que yo conosca obviamente aportarlo al foro..
esta es la definicion de l remote object
<mx:RemoteObject showBusyCursor="true" id="rOListaGrid" result="onResultService(event,oTarget,cDataProviderName)" // funcion eventHandler del objeto (la explicada arriba ) destination="GenericDestination" source="queryssiodd">
gracias por su tiempo y espero tu opinion....
|
Por hectberlag
Envíale un mensaje privado Email
|