Comunidad de diseño web y desarrollo en internet online

duda con formulario

Citar            
MensajeEscrito el 11 Jun 2009 12:44 am
Hola a todos, estoy aqui por que tengo una duda enorme con los combobox en flex 3 soy nuevo en estoy la verdad se me esta complicando el tema, a continuacion les platico mi problema y les agradeceria de antemano toda la ayuda que me puedan proporcionar,

Estoy realizando un formularios de altas y edicion de registros con una db en mysql mediante flex php y webOrb, puedo conectarme a la db y sacar datos el problema inicia con los combobox puesto que lleno los valores de los combos con el resultado de una consulta el dataprovider tiene la descripcion que se usa como los labels del combo con la propiedad labelField pero no se decirle donde va a guardar el valo que quiero qeu tenga ese combo box por ejemplo tengo una tabla con la siguiente informacion

tipos_mensajes
codigo descripcion
1 Queja
2 Comentario

y otra que es donde guardo la infgormacion del mensaje
mensajes
codigo mensaje tipo_mensaje
1 "Contenido mensaje" 2
2 "Contenido mensaje" 1

entonces quiero que el usaurio en el como de la interface vea el contenido del mensaje pero que el valor que se guarde se el codigo, lei en la ayuda sobre una funcion llamada labelfunc pero la verdad no doy al clavo, anteriormente programaba en vfp y php y con las listas no tenia problema pero con mi nueva inquietud de aprender a usar flex me esta costabdo bastante trabajo si alguien puede ayudarme me seria de bastante ayuda.

gracias y hastapronto ..
att: hector

Por hectberlag

30 de clabLevel



 

msie7
Citar            
MensajeEscrito el 11 Jun 2009 10:50 am
El combobox tiene un valor visible o label que es el que vez y un valor oculto o data que no se ve. En esto se asemeja a un combo de HTML, simplemente asignas el código que quieras al data, y cuando consultas la selección, haces:

miCombo.selectedItem.data

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2009 07:52 pm
Hola buen dia y gracias por contestar.. sabes sigo teniendo el problema en el eento change llamo una funcion para que con un alert me muestr el data del elemento seleccionado tal como me lo dijiste pero el alert esta vacio como si no tubiera ningun valor.., el combobox lo estoy declarando de la siguiente manera

<mx:ComboBox x="71" y="63" id="tipos" data="codigo" labelField="descripcion" change="fcnValorCombo()"></mx:ComboBox>
y la funcion de fcnValorCombo esta asi

public function fcnValorCombo():void{
Alert.show(tipos.selectedItem.data);
}

el valor data que pongo en la definicion del combo en la propiedad data"codigo" es el nombre del cambo que tiene todos los valores.

solo para que sepas de donde saque ese valor y me puedas orientar sobre si lo estoy haciendo bien. o de plano anda mal..

gracias..

Por hectberlag

30 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Jun 2009 08:26 pm
No veo que le estes dando un dataProvider ... ¿el combo muestra los datos?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2009 08:36 pm
sip tiene data provider solo puse ese pedazo por uqe pense que era mucho

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
   <mx:states>
      <mx:State name="detalle">
         <mx:RemoveChild target="{grdLista}"/>
         <mx:AddChild position="lastChild">
            <mx:Form x="129.5" y="103" width="347" height="169" id="form1">
               <mx:FormItem label="Nombre">
                  <mx:TextInput id="txtNombre" text="{grdLista.selectedItem.nombre}" />
               </mx:FormItem>
               <mx:FormItem label="comentario">
                  <mx:TextArea id="txtComentario" text="{grdLista.selectedItem.comentarios}"/>
               </mx:FormItem>
               <mx:FormItem label="Tipo">
               </mx:FormItem>
               <mx:Button label="Volver a la lista" id="cmdVerLista" click="currentState=&quot;&quot;"/>
               <mx:Button label="Insertar" id="cmdInsertar" click="ServiceGrid.insertar(txtNombre.text,txtComentario.text)"/>
            </mx:Form>
         </mx:AddChild>
         <mx:RemoveChild target="{cmdDetalles}"/>
      </mx:State>
   </mx:states>
<mx:RemoteObject 
   id="ServiceGrid"    
   destination="GenericDestination"
   source="querys"    
    showBusyCursor="true"
    result="onResult(event,grdLista);"
    fault="onFault(event);"
    />
<mx:RemoteObject 
   id="oROTiposComentarios"
    destination="GenericDestination"
     source="querys"
      showBusyCursor="true"
      result="fcnOnResultTipos(event);"
      fault="onFault(event);"
      />    
<mx:Script>
    <![CDATA[
       import mx.controls.Text;
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.ResultEvent;
        import mx.collections.ArrayCollection
        import mx.controls.Alert
        [Bindable]
        private var mysDatos:ArrayCollection;
        private var mysTipos:ArrayCollection;
        private function onResult(event:ResultEvent,oTarget:Object):void{
           mysDatos = new ArrayCollection(event.result as Array);
           oTarget.dataProvider=mysDatos;
            //trace("<<>>",event.result);
        }
        private function fcnOnResultTipos(event:ResultEvent):void{
           mysTipos = new ArrayCollection(event.result as Array);
         tipos.dataProvider=mysTipos;
        }
        private function onFault(event:FaultEvent):void{
            trace("ERROR: ",event.fault.faultString)
        }
        private function init():void{
           ServiceGrid.consulta("prueba","id","7");
           oROTiposComentarios.consulta("tiposcomentarios","sd","");
           
        }
        private function fcnEliminar():void{
        var idActual:int = grdLista.selectedItem.id;
         ServiceGrid.eliminar('prueba','id',idActual)
         ServiceGrid.consulta('prueba','id','')
        }
       private function fcnShowDetails():void{
          currentState="detalles";
       }
        private function fcnCrearteRemoteObj(cId:String,cNombreArreglo:String):void{
        }
        public function fcnCreateArrayColection(cNombreArray:String):void{
           var oArrayColection:Object;
           oArrayColection= new ArrayCollection;
           oArrayColection.id=cNombreArray;
        }
       public  function fcnValorCombo():void{
           Alert.show(tipos.selectedItem.codigo);
        }
       public function fcnSetComboDefaulValue(oTarget:Object,aryDatos:Array):void{
             
       }
       public function fcnSetComboValue():void{
             var codigoItem:String = grdLista.selectedItem.tipo;
          
       }
    ]]>
</mx:Script>
   <mx:DataGrid x="106" doubleClick="fcnShowDetails()" y="123" width="370" id="grdLista" editable="false" enabled="true" change="fcnSetComboValue()">
      <mx:columns>
         <mx:DataGridColumn headerText="Id" dataField="id"/>
         <mx:DataGridColumn headerText="Nombre" dataField="nombre"/>
         <mx:DataGridColumn headerText="Comentarios" dataField="comentarios"/>
         <mx:DataGridColumn headerText="Tipo" dataField="tipo"/>
      </mx:columns>
   </mx:DataGrid>
   <mx:Button label="Detalles" id="cmdDetalles" click="currentState=&quot;detalle&quot;" x="226" y="298"/>
   <mx:Button x="307" y="298" label="refresh" id="refresh" click="ServiceGrid.consulta('prueba','id','')"/>
   <mx:Button x="383" y="298" label="Eliminar" click="fcnEliminar()"/>
   <mx:ComboBox x="71" y="63" data="codigo"  labelField="descripcion"  change="fcnValorCombo()" id="tipos"></mx:ComboBox>
</mx:Application>

Por hectberlag

30 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Jun 2009 09:59 pm
En el code de la ayuda lo tienes bastante claro, lo pego

Código :

<?xml version="1.0"?>
<!-- Simple example to demonstrate the ComboBox control. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;

            [Bindable]
            public var cards:ArrayCollection = new ArrayCollection(
                [ {label:"Visa", data:1}, 
                  {label:"MasterCard", data:2}, 
                  {label:"American Express", data:3} ]);
        
            private function closeHandler(event:Event):void {
                myLabel.text = "You selected: " +  ComboBox(event.target).selectedItem.label;
                myData.text = "Data: " +  ComboBox(event.target).selectedItem.data;
            }     
        ]]>
    </mx:Script>

    <mx:Panel title="ComboBox Control Example" 
        height="75%" width="75%" layout="horizontal"
        paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10">

        <mx:ComboBox dataProvider="{cards}" width="150" 
            close="closeHandler(event);"/>

        <mx:VBox width="250">
            <mx:Text  width="200" color="blue" text="Select a type of credit card."/>
            <mx:Label id="myLabel" text="You selected:"/>
            <mx:Label id="myData" text="Data:"/>
        </mx:VBox>         

    </mx:Panel>    
</mx:Application>       


Fijate que la propiedad data del dataprovider va automáticamente al combobox

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Jun 2009 04:38 pm
Que tal , no habia tenido oportunidad d conectarme, gracias por tu apoyo en mi problema.. me sirvio de mucho..

atte: Hector

Por hectberlag

30 de clabLevel



 

msie7

 

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