Read about filter function it will be quite helpful.

On Fri, Jan 22, 2010 at 4:39 AM, Aviral Sharma <[email protected]>wrote:

> Now, you can provide a dataprovider for combobox (using an
> arraycollection is better than hardcoding the data).
> Use filter function to remove duplicates as described in the link:
>
> http://blog.flexexamples.com/2007/08/05/removing-duplicate-items-from-an-array-using-the-arrayfilter-method/
>
> Here is the code (visit the website link above to see a working
> example)
>
> <!-- Start Code -->
>
> <?xml version="1.0" encoding="utf-8"?>
> <!--
> http://blog.flexexamples.com/2007/08/05/removing-duplicate-items-from-an-array-using-the-arrayfilter-method/
> -->
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
>         layout="vertical"
>        verticalAlign="middle"
>        backgroundColor="white"
>        creationComplete="init()">
>
>    <mx:Script>
>        <![CDATA[
>            private var keys:Object = {};
>
>            /**
>             * Called by the Application container's creationComplete
>             * event handler. This method creates a new Array object
>             * which will be used as a data provider as well as a
>             * filtered view of that array which does not contain
>             * duplicated items.
>             */
>            private function init():void {
>                /* Create a dummy data source with some semi-random
>                    data. */
>                var arr:Array = [];
>                arr.push({data:1, label:"one"});
>                arr.push({data:1, label:"one"});
>                arr.push({data:1, label:"one"});
>                arr.push({data:1, label:"one"});
>                arr.push({data:2, label:"two"});
>                arr.push({data:2, label:"two"});
>                arr.push({data:2, label:"two"});
>                arr.push({data:1, label:"one"});
>                arr.push({data:3, label:"three"});
>                arr.push({data:3, label:"three"});
>
>                /* Filter the original array and call the
>                    removeDuplicates() function on each item
>                    in the array. */
>                var filteredArr:Array = arr.filter(removedDuplicates);
>
>                arrColl.source = arr;
>                dedupedArrColl.source = filteredArr;
>            }
>
>            /**
>             * This method is used to filter an array so that no
>             * duplicate items are created. It works by first
>             * checking to see if a keys object already contains
>             * a key equal to the current value of the item.data
>             * value. If the key already exists, the  current item
>             * will not be readded to the data provider. If the key
>             * does not already exist, add the key to the keys
>             * object and add this item to the data provider.
>             */
>            private function removedDuplicates(item:Object, idx:uint,
> arr:Array):Boolean {
>                if (keys.hasOwnProperty(item.data)) {
>                    /* If the keys Object already has this property,
>                        return false and discard this item. */
>                    return false;
>                } else {
>                    /* Else the keys Object does *NOT* already have
>                        this key, so add this item to the new data
>                        provider. */
>                    keys[item.data] = item;
>                    return true;
>                }
>            }
>        ]]>
>    </mx:Script>
>
>    <mx:ArrayCollection id="arrColl" />
>    <mx:ArrayCollection id="dedupedArrColl" />
>
>    <mx:HBox>
>        <mx:VBox>
>            <mx:Label text="Original ({arrColl.length} items):" />
>            <mx:List dataProvider="{arrColl}" />
>        </mx:VBox>
>        <mx:VBox>
>            <mx:Label text="Filtered ({dedupedArrColl.length}
> items):" />
>            <mx:List dataProvider="{dedupedArrColl}" />
>        </mx:VBox>
>    </mx:HBox>
>
> </mx:Application>
>
> <!-- End Code -->
>
> On Dec 30 2009, 10:46 am, Kiran Kumar Vasireddy <[email protected]>
> wrote:
> > Thanks Safi for your response . If I do this I get duplicate elements in
> > Mycombox , I want to avoid them.
> >
> > Regards
> > Kiran
> >
> >
> >
> > On Sun, Dec 27, 2009 at 10:50 PM, saanaa safi <[email protected]>
> wrote:
> > > hi kiran,
> > > i hope below example will help u. try this,i think this is what u r
> > > expecting.
> >
> > > <?xml version="1.0" encoding="utf-8"?>
> > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> > > layout="absolute">
> > >     <mx:ArrayCollection id="myColl">
> >
> > >           <mx:Object Company="GM" count="85"  Model ="Saab"
> ModelCount="20"
> > > Year="2009" YearCount="10" />
> > >           <mx:Object Company="GM" count="85"  Model ="Saab"
> ModelCount="20"
> > > Year="2008" YearCount="5" />
> > >           <mx:Object Company="GM" count="85"  Model ="Saab"
> ModelCount="20"
> > > Year="2007" YearCount="5" />
> > >            <mx:Object Company="GM" count="85"  Model ="Chevi"
> > > ModelCount="20" Year="2009" YearCount="20" />
> >
> > >          <mx:Object Company="FORD" count="43"  Model ="Focus"
> > > ModelCount="20" Year="2009" YearCount="5" />
> > >           <mx:Object Company="FORD" count="43"  Model ="Focus"
> > > ModelCount="20" Year="2008" YearCount="3" />
> > >           <mx:Object Company="FORD" count="43"  Model ="Focs"
> > > ModelCount="20"  Year="2007" YearCount="2" />
> >
> > >     </mx:ArrayCollection>
> > >     <mx:ComboBox prompt="Company" dataProvider="{myColl}"
> > > labelField="Company" x="44" y="21" width="100"/>
> > >     <mx:ComboBox prompt="Model" dataProvider="{myColl}"
> labelField="Model"
> > > x="153" y="21" width="100"/>
> > >     <mx:ComboBox prompt="Year" dataProvider="{myColl}"
> labelField="Year"
> > > x="275" y="21" width="100"/>
> >
> > > </mx:Application>
> >
> > > On Sat, Dec 26, 2009 at 4:00 PM, Kiran Kumar Vasireddy <
> > > [email protected]> wrote:
> >
> > >> Dear All,
> >
> > >> I am getting the data in following format . Is there any way to load
> it
> > >> into comboxbox avoiding duplicates? First combobox I want to just load
> > >> Company Name removing duplicates.Second combox box based on the
> section I
> > >> have to load  Models and In the Thrid combox box based on company and
> Model
> > >> I have to load Years.Or if not Arraycollection , I can also get the
> data in
> > >> XMLCollection . Could some body please give me best solution?
> >
> > >> <ArrayCollection>
> >
> > >>           <mx:Object Company="GM" count="85"  Model ='Saab"
> ModelCount=20
> > >> Year="2009" YearCount="10" />
> > >>           <mx:Object Company="GM" count="85"  Model ='Saab"
> ModelCount=20
> > >> Year="2008" YearCount="5" />
> > >>           <mx:Object Company="GM" count="85"  Model ='Saab"
> ModelCount=20
> > >> Year="2007" YearCount="5" />
> > >>            <mx:Object Company="GM" count="85"  Model ='Chevi"
> > >> ModelCount=20 Year="2009" YearCount="20" />
> >
> > >>          <mx:Object Company="FORD" count="43"  Model ='Focus"
> > >> ModelCount=10 Year="2009" YearCount="5" />
> > >>           <mx:Object Company="FORD" count="43"  Model ='Focus"
> > >> ModelCount=10 Year="2008" YearCount="3" />
> > >>           <mx:Object Company="FORD" count="43"  Model ='Focs"
> > >> ModelCount=10  Year="2007" YearCount="2" />
> >
> > >> </ArrayCollection>
> >
> > >>  --
> > >> You received this message because you are subscribed to the Google
> Groups
> > >> "Flex India Community" group.
> > >> To post to this group, send email to [email protected].
> > >> To unsubscribe from this group, send email to
> > >> [email protected]<flex_india%[email protected]>
> <flex_india%2bunsubscr...@googlegrou ps.com>
> > >> .
> > >> For more options, visit this group at
> > >>http://groups.google.com/group/flex_india?hl=en.
> >
> > > --
> > > Warm Regards
> > > Saanaa....
> >
> > >  --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Flex India Community" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<flex_india%[email protected]>
> <flex_india%2bunsubscr...@googlegrou ps.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/flex_india?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Flex India Community" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<flex_india%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/flex_india?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups "Flex 
India Community" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/flex_india?hl=en.

Reply via email to