Comunidad de diseño web y desarrollo en internet online

Ligar de un ComboBox a un Module

Citar            
MensajeEscrito el 27 Ago 2009 06:36 pm
Buenas, probablemente no este bien planteada mi duda en el ASUNTO... pero soy nueva en Flex y no tengo idea de como hacer 1000 cosas... jeje :oops:

Por ahora estoy desarrollando una aplicación para un sistema de paqueterias y demas.

Estoy utilizando un ComboBox para mostrar las opciones del menu, por ejemplo, tengo lo que es Reportes y lo que es Graficos. Utilice una label externa para que apareciera el nombre de ese ComboBox, y queria hacer lo siguiente:

Que cuando le dieran click al label mandara llamar la aplicación en cuestion, por ejemplo tengo una aplicacion para Reportes y otra para Graficos, pero no supe como hacerlo, estuve buscando en varias paginas pero no encontre nada que relacionara estas acciones.

Y tambien, quiero hacer que cuando dentro de la aplicación que este, ya que el menu aparece en ambas, por ejemplo si del ComboBox escojo un item, me redireccione a ese modulo, (puede ser que estando en Reportes, escoja inventarios y quiero que me llame a esa subaplicacion, o talvez, estoy en Graficos-Entrada por clientes y quiero ir a Reportes-Inventario) no se como hacer el vinculo de el item con el "Module" para que cuando este seleccionado inventario en el combobox me mande llamar esa parte del codigo.

Todo lo que se encuentra dentro de el menu reportes, esta dentro de la misma aplicacion, lo mismo con todo lo que esta dentro del menu de graficos, pero quiero que sea posible moverme directamente de una subaplicacion a otra, inclusive si estan en otra aplicacion. etc...

Lo que pasa es que mi aplicacion estaba hecha en php y mi deber es pasarla a FLEX

Este es el codigo de reportes, por el momento graficos esta igual...

Código Flex :

   <mx:Panel>
      <mx:HBox left="10">
         <mx:Label text="Reportes" fontSize="25"/>
         <mx:Module>
            <mx:Label text="Inventarios"/>
         </mx:Module>
      </mx:HBox>
      <mx:VBox right="20">
         <mx:Label text="Reportes" fontSize="15" fontStyle="italic" fontWeight="bold" color="0x880000"/>
         <mx:ComboBox>
            <mx:ArrayCollection>
               <mx:String>Inventarios</mx:String>
               <mx:String>Ordenes</mx:String>
               <mx:String>Entradas/Salidas</mx:String>
               <mx:String>Remisiones</mx:String>
               <mx:String>Mermas</mx:String>
               <mx:String>Cargas</mx:String>
               <mx:String>Actividades</mx:String>
            </mx:ArrayCollection>
         </mx:ComboBox>
         <mx:Label text="Graficos" fontSize="15" fontStyle="italic" fontWeight="bold" color="0x880000"/>
         <mx:ComboBox>
            <mx:ArrayCollection>
               <mx:String>Entradas por cliente</mx:String>
               <mx:String>Entradas Generales</mx:String>
               <mx:String>Salidas por cliente</mx:String>
               <mx:String>Salidas Generales</mx:String>
            </mx:ArrayCollection>
         </mx:ComboBox>
      </mx:VBox>
   </mx:Panel>

Por Dgspfg

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Ago 2009 06:36 am
Hola Dgspfg.

Segun lo que te comprendo, tu tienes dos modulos, Reportes y Graficos, y tienes una aplicacion Principal, en esta ultima, tienes un combobox y deseas que, dependiendo del item que se seleccione se cargue una de tus dos sub-aplicaciones.

Si es esto lo que deseas hacer, lo que debes de hacer es hacer uso del manejador de eventos del combobox, espeficamente, el evento Change, declaras una funcion para que maneje este evento, y en ella, lo que deberias de hacer, es cargar el modulo correspondiente, ya sea el de Reportes o el de Graficos.

Por otra parte, tambien lo puedes hacer con un solo MXML, haciendo uso de los estados, basicamente el combobox se mantendria igual, la diferencia estaria en la funcion que manejaria el evento; en lugar de tener modulos, lo que harias es tener varios estados, los cuales cambiarias segun la seleccion del combobox.

aca tienes un ejemplo:

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 
   <mx:Script>
      <![CDATA[
         import mx.collections.ArrayCollection;
         [Bindable]
            public var dataProviderCombo:ArrayCollection = new ArrayCollection(
                [ {label:"Modulo de Graficos", data:1}, 
                  {label:"Modulo de Reportes", data:2} ]);
                  
                  private function cargarModulo(){
                        if(miCombo.selectedItem == null){
                           trace("No se ha seleccionado un Modulo a Cargar");                           
                        }else{
                           miModulo.url=myCombo.selectedItem+".swf";
                    miModulo.loadModule();
                        }
                  }
 
      ]]>
   </mx:Script>
   <mx:ComboBox id="miCombo" dataProvider="{dataProviderCombo}"  change="cargarModulo();"></mx:ComboBox>
        <mx:ModuleLoader id="miModulo" width="100%" height="90%"/>
</mx:Application>



El Combobox "miCombo" posee el evento onChange que revisa cuando se ha cambiado la seleccion del Combobox, cuando detecta este cambio, ejecuta la funcion "cargarModulo", dentro de la funcion, se revisa que el valor (label) seleccionado sea diferente a null, es decr que se haya seleccionado algo, si es asi, le dice al objeto "miModulo" que tome como url el nombre del label seleccionado y le contatena la extensiion (.swf); por ultimo ejecuta el metodo loadModule, el cual cargara el modulo seleccionado.

No he probado el ejemplo, pero la logica seria esa.

Saludos

Por Hg

33 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.