Accessing Query ColumnList in Array Collection

I want to get the Column names in a query object returned
from a WebService as an Array Collection.
I have a WebService that is returning the following SOAP
data:
<?xml version="1.0"
encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:sStockQuotesResponse soapenv:encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="
http://cfc.private">
<sStockQuotesReturn xsi:type="ns2:QueryBean" xmlns:ns2="
http://rpc.xml.coldfusion">
<columnList soapenc:arrayType="xsd:string[4]"
xsi:type="soapenc:Array" xmlns:soapenc="
http://schemas.xmlsoap.org/soap/encoding/">
<columnList
xsi:type="xsd:string">name</columnList>
<columnList
xsi:type="xsd:string">symbol</columnList>
<columnList
xsi:type="xsd:string">lastprice</columnList>
<columnList
xsi:type="xsd:string">lastpricedate</columnList>
</columnList>
<data soapenc:arrayType="xsd:anyType[][7]"
xsi:type="soapenc:Array" xmlns:soapenc="
http://schemas.xmlsoap.org/soap/encoding/">
<data soapenc:arrayType="xsd:anyType[4]"
xsi:type="soapenc:Array">
<data xsi:type="soapenc:string">ALCOA INC</data>
<data xsi:type="soapenc:string">AA</data>
<data xsi:type="soapenc:string">35.87</data>
<data xsi:type="soapenc:string">11/12/2007
4:00pm</data>
</data>
</data>
</sStockQuotesReturn>
</ns1:sStockQuotesResponse>
</soapenv:Body>
</soapenv:Envelope>
I have no problem converting the data to a Flex Array
Collection, and populating a DataGrid with this data.
However, I want to grab the Column Names, so that I can
create the DataGrid columns dynamically. I have searched the FB3
documentation, but cannot find an answer. Please help.
Thank you.
Eric.

I'm not sure about dealing with a Remote Object / CFC
configuration, but if your collection essentially ends up like:
var myAC:ArrayCollection = new ArrayCollection([{name:
'First', phoneNumber: '555'}]);
Then yes you should be able to access it with:
myAC.getItemAt(0).phoneNumber
I take this has not worked?

Similar Messages

  • Referencing values in Array Collection?

    I'm using a Remote Object to pass an argument to a CFC. I
    then query a table according to the value of the argument passed in
    ('where' clause). I return a single record result as a query in
    Flex (event.result) and set it as an Array Collection, example:
    myAC = new ArrayCollection;
    myAC.source = event.result as Array;
    I can take this AC and set it as a dataprovider for a data
    grid or list without problem. What I'd like to do is pull specific
    data from the AC and use it in my Flex app. For example, the
    results of my query will return 1 record only, but contains many
    columns from my table. It might contain an ID, a username, a first
    and last name, maybe a phone number, etc. All this info for that
    single record will be stored in the array collection. What I want
    to do is be able to reference this data in Flex.
    For instance, if I need to display the phone number (stored
    as phoneNumber from my query) in the array collection, how can I do
    this? myAC.phoneNumber? myAC.getItemAt(0).phoneNumber?
    Any guidance is appreciated

    I'm not sure about dealing with a Remote Object / CFC
    configuration, but if your collection essentially ends up like:
    var myAC:ArrayCollection = new ArrayCollection([{name:
    'First', phoneNumber: '555'}]);
    Then yes you should be able to access it with:
    myAC.getItemAt(0).phoneNumber
    I take this has not worked?

  • Advance Data Grid - Flat Query Array Collection To Grouping Collection Issue

    Currently I have a Coldfusion CFC returning a flat query. The query is flat but returns data with four levels. For simplicity let's say Region, Territory, Title, and Person.
    I place the data into an Array Collection in Flex and then use the Advanced Data Grid (ADG) with a Grouping Collection to create a hierarchy of Region, Territory, Title. At the lowest level of the ADG I have the Person data and that data is summarized up to the Region node. The problem I am having is that sometimes I do not have any person data but have data at the Title level that can be summarized up to the Region node.
    For data where the Title does not have any Person information the Title node still can be expanded to show a blank Person row. How can I prevent blank Person rows from showing up while still maintaining the ability to properly show available Person rows?
    Would using an XML Collection accomplish this?

    Currently I have a Coldfusion CFC returning a flat query. The query is flat but returns data with four levels. For simplicity let's say Region, Territory, Title, and Person.
    I place the data into an Array Collection in Flex and then use the Advanced Data Grid (ADG) with a Grouping Collection to create a hierarchy of Region, Territory, Title. At the lowest level of the ADG I have the Person data and that data is summarized up to the Region node. The problem I am having is that sometimes I do not have any person data but have data at the Title level that can be summarized up to the Region node.
    For data where the Title does not have any Person information the Title node still can be expanded to show a blank Person row. How can I prevent blank Person rows from showing up while still maintaining the ability to properly show available Person rows?
    Would using an XML Collection accomplish this?

  • Help needed in changing Access query to Oracle query

    hello folks,
    I have already posted this question and got some help previously but i have additional query being added to the previous one so thought of seeking some help.here it goes
    Am having an access report which comes from a query. the current query behind the report is a consolidated one and comes from quite a few tables . My requirement is to develop a crystal report( which comes with a native oracle db driver) which should look same as the access report. But am unable to use the access query becoz of its format or something. So anyone please throw some light on this. Any help would be kindly appreciated.
    SELECT Debtor . EVENT_ID,
    Debtor . MEDCAP#,
    Debtor . Client Name,
    Debtor . CLIENT,
    Debtor . Provider ID,
    Debtor . GROUPNUMBER,
    "OPEN" AS Status,
    (IIf(clip_file = "Y", "Clip", "Open")) AS clipStatus,
    IIf(collect_only = "Y", "Collection Only", "Regular Collections") AS Collect ?,
    IIf(IsNull(Principal), 0, principal,
    IIf(IsNull(PAR_FLAG), "N", IIf(PAR_FLAG <> "N", "P", PAR_FLAG)) AS PAR_NPAR_FLAG,
    Right(PatientMemberID, 2) AS Patient Suffix
    FROM Period, Debtor
    INNER JOIN LOB_subtypes ON Debtor . SUBTYPE = LOB_subtypes . SUBTYPE
    WHERE (((Debtor . CLIENT) = "CV1") And ((Period . PeriodName) Is Not Null) And
    ((Debtor . STATUS) = "OPEN") And ((LOB_subtypes . LOB) = "PBA"));
    Thanks

    The expression...
    IIf(IsNull(Principal), 0, principal) - IIf(IsNull(PRORATED_TRANAMT), 0, prorated_tranamt)...is equivalent to...
    NVL(PRINCIPAL, 0) - NVL(PRORATED_TRANAMT, 0)Does that answer your question?
    As for...
    IIf(IsNull(PAR_FLAG), "N", IIf(PAR_FLAG&lt;&gt;"N", "P", PAR_FLAG))...you might try...
    CASE
        WHEN PAR_FLAG IS NULL THEN 'N'
        WHEN PAR_FLAG != 'N' THEN 'P'
        ELSE 'N'
    END

  • Multiple Comboboxes with single instance of Array Collection

    First off - thanks to everyone for their contributions.  This forum provides a lot of good information.
    I'm stuck on a particular problem and I suspect I'm not thinking about the issue correctly.
    I'm developing a dynamic module that instantiates components at runtime based on an XML scheme.  Many of these components are drop-downs that are chained togther (a selection in one drives the population of the next)
    I loop through the initial XML document to create and layout the components.  I have been using a single Array Collection to populate the drop-down.  This worked fine with the chained comboboxes since I only load one combox initially.  However, when I add a couple of static combo boxes, the arraycollection seemed to be binding to the orginal combobox.  For example, if I create 3 combo boxes they have drop-down values that display all 3 lists appended together.  I was a bit surprised because I didn't think that I could bind an Array Collection.  I certainly haven't defined a Binable ArrayCollection.
    I thought I could solve the issue by simply creating a unique Array Collection at runtime - one for each element.  However, I don't think this is possible or I can't figure out how to create a new Array Collection with a dynamic name - something like this:
    I was hoping this would work -
    var newDropDown_[numOfElement]:ArrayCollection = new ArrayCollection(); 
    I've tried to use a Dictionary object to store each ArrayCollection.  I couldn't get that to work properly.
    Essentially - my code loops on the number of components to add:
    for (var i:int = 0; i < numFormElements; i++)
              for (var j:int = 0; j < numvalues; j++)
                                    var valuefield:String = 'value_' + [j+1];
                                    var obj:Object=new Object();
                                    obj.label=instFields[i][valuefield].@label;
                                    obj.data=instFields[i][valuefield].@data;
                                    newDropDown.addItemAt(obj,j);
    Then I add the components:
              var c:ComboBox = new ComboBox ();
                c.labelField='label';
                c.name=numberOfElement.toString();                                  
                c.dataProvider=    newDropDown;
                _h1.addChild(c);
                numComboDropDwns.push(c);
    I need a way of looping, getting data and populating each component independently??
    Any ideas?
    Thanks,
    John

    I went a different route and solved the issue.  For someone looking at a similar problem - this what I ended up doing:
    I just loaded one array collection with data for all of the drop-downs on the form.  I then populated each dataprovider with individual elements from the array.
    for (var i:int = 0; i < numFormElements; i++)
    for (var j:int = 0; j < numvalues; j++)
                                    var valuefield:String = 'value_' + [j+1];
                                    var obj:Object=new Object();
                                    obj.label=instFields[i][valuefield].@label;
                                    obj.data=instFields[i][valuefield].@data;
                                    newDropDown.addItemAt(obj,elementCounter);
                                    elementCounter = elementCounter + 1;
    I keep track of the element #, number of values for each element and the overall index for the array.
    Each data provider is then loaded with the subset from the array:
    for (var z:int = (_counter - _numvalues) ; z < _counter; z++)
                                var _label:String=    newDropDown.getItemAt(z).label.toString();
                                var _data:String = newDropDown.getItemAt(z).data.toString();
                                c.dataProvider.addItem({label:[_label],data:[_data]});
    This seems to work nicely - each component is created and loaded with only their data.  I spent 3 days searching for a way to create a dynamic arraycollection at runtime.  I don't think it's possible - but I'm not sure it was the best method anyway.

  • How to convert an array collection instance to a complex object for interaction with webservice

    Hi there,
    I have a stubborn problem that I am trying to work out the best way to solve the problem.  I am interacting with a WebService via HTTPService calling a method called find(String name) and this returns me a List of ComplexObjects that contain general string and int params and also lists of other Complex Objects.  Now using the code:
    ArrayCollection newOriginalResultsArray = new ArrayCollection(event.result as Array)
    flex converts my complex objects results to an arraycollection so that I can use it in datagrids etc.  Now up until this part is all good.  My problem is when getting a single instance from the results list, updating it by moving data around in a new datagrid for example - I want to interact with the webservice again to do an create/update.  This is where I am having problems - because these webservice methods require the complex object as a parameter - I am struggling to understand how I can convert the array collection instance back to my complex object without iterating over it and casting it back (maybe this is the only way - but I am hoping not).
    I am hoping that there is a simple solution that I am missing and that there is some smart cookie out there that could provide me with an answer - or at least somewhere to start looking. I guess if I have no other alternative - maybe I need to get the people who built the service to change it to accept an array - and let them do the conversion.
    Any help would be greatly appreciated.
    Bert

    Hi Bert,
    According to my knowledge you can use describeType(Object) method which will return an XML... That XML will contain Properties and values just iterate through the XML and create a new Object..   Probably u can use this method...
    public function getObject(reqObj:Object,obj:Object,instanceName:String,name:String=null,index:int=-1):Obj ect
                if(!reqObj)
                    reqObj = new Object();
                var classInfo:XML = describeType(obj);
                var className:String = instanceName;
                if(name!=null)
                    className=name+"."+className;
                if(index!=-1)
                    className=className+"["+index+"]";
                for each (var v:XML in classInfo..accessor)
                    var attributeName:String=v.@name;
                    var value:* = obj[attributeName]
                    var type:String = v.@type;
                    if(!value)
                        reqObj[className+"."+attributeName] = value; 
                    else if(type == "mx.collections::ArrayCollection")
                        for(var i:int=0;i<value.length;i++)
                            var temp:Object=value.getItemAt(i);
                            getReqObject(reqObj,temp,attributeName,className,i);
                    else if(type == "String" || type == "Number" || type == "int" || type == "Boolean")
                        reqObj[ className+"."+attributeName] = value; 
                    else if (type == "Object")
                        for (var p:String in value)
                            reqObj[ className+"."+attributeName+"."+p] = value[p];
                    else
                        getReqObject(reqObj,value,attributeName,className);
                return reqObj;
    Thanks,
    Pradeep

  • How to get the recordcount of a query in a array

    I have an array called "sums" that holds 4 query's, each
    query has a different number of records.
    Then i use this code to loop the records of the query inside
    the array:
    <cfloop index="x" from="1" to="#arrayLen(sums)#">
    <cfloop index="i" from="1" to="#sums[x].recordcount#">
    data to loop
    </cfloop>
    </cfloop>
    This results in 4 times 4 records, of course as i now use the
    array length in the inner loop.
    My question is, how can i get the recordcount of a query in a
    array so i can use that for the inner loop "to" value.
    Thanks.

    quote:
    Originally posted by:
    MarcovandenOever
    Does sums[x]recordcount point to the first query in the array
    sums when i use it like this?
    In the array there are four query's, i want to loop the
    array, then i want to loop the records of each query.
    <cfloop index="x" from="1" to="#arrayLen(sums)#">
    <cfloop index="i" from="1" to="#sums[x].recordcount#">
    data to loop
    </cfloop>
    </cfloop>
    No. It points to each query in turn. So if you have four
    queries, the first time it will point to sum[1]. Then next time
    sum[2], etcetera. It should work exactly the way you want "as is".
    If you are having a problem, it is probably related to the code
    inside your inner loop.

  • Getting a single value from an array collection

    I have an array collection that was created from an XML file
    through the HTTP Service. One of the nodes in the XML file was
    product_number and I can display all of the items in this node in a
    datagrid so I know the array has the name of the node in it.
    I would like to be able to retrieve a single item from the
    array collection (e.g. a product_number = to xxx) and assign it to
    a variable.
    I would also like to be able to assign all the items in a
    particlur column (e.g. all product_numbers) to separate variables
    at the same time.
    Any help would be greatly appreciated.

    You can apply a filterFunction.
    Or you can do it the brute force way: loop over the elements,
    and test for the value you want.
    As far as putting values into variables, I am not sure what
    you want.
    And this is not a Flex Builder question and should go in the
    General Discussion forum.
    Tracy

  • View query to results array

    previus information... jdeveloper 10.1.3.0.4, the application is java swing adf bc .
    hi, i have a bc view (sql only) inside an application module, how could i assign the results of view's query with an array of objects.

    Not sure if this is on target, but if you are using ADF BC the view object's query results are already in an array of objects. Reference the following document to view how the results are structured. You can programmatically then work with the results set using the ViewObject, RowSet, and RowSetIterator Interfaces. See the SRDemo Application Module services for some examples of this in action (demo is in JSF though, not Swing.)
    http://www.oracle.com/technology/products/jdev/tips/muench/mostcommon/index.html
    thanks

  • MS Access Query to Oracle

    Hi Gurus
    I am trying to convert a MS Access query to Oracle query, Having some trouble Need some help Please.
    This is the MS Access Query:
    Sum(IIf(LOAD1!ARRIVDATE<+Date()+7,LOADLINE1!QTY,0)/ITEM1!UOM) AS Loadtbl
    What would be the Oracle Query???
    Thank you

    Hello,
    well, the problem is the name of the column, ARRIVDATE< - while MS Access allows the "<" inside a column name, Oracle doesn't if you don't be careful. Please see this:
    SQL> create table testtab1 (arrivdate varchar2(100));
    Table created.
    SQL> desc testtab1
    Name Null? Type
    ARRIVDATE VARCHAR2(100)
    SQL> create table testtab2 (arrivdate< varchar2(100));
    create table testtab2 (arrivdate< varchar2(100))
    ERROR at line 1:
    ORA-00902: invalid datatype
    But this works:
    SQL> create table testtab2("ARRIVDATE<" varchar2(100));
    Table created.
    SQL> desc testtab2
    Name Null? Type
    ARRIVDATE< VARCHAR2(100)
    So your query might work if you put ARRIVDATE< in double quotes:
    Sum(DECODE(LOAD1."ARRIVDATE<"+SYSDATE+7,LOADLINE1.QTY,0)/ITEM1.UOM) AS Loadtbl
    Regards
    Wolfgang
    Edited by: wkobargs on Aug 8, 2012 7:51 AM
    Edited by: wkobargs on Aug 8, 2012 7:59 AM
    Edited by: wkobargs on Aug 8, 2012 8:00 AM

  • Tree Control Property Node for Accessing "Child Text" String Array

    When adding items to a tree control using the EditTreeItems invoke nodes, the inputs include "Child Tag", "Item Indent", "Child Only?", "Glyph Index", "Child Text", and "Left Cell String" as can be seen in this screenshot.
    There are property nodes for the tree control for accessing each of these elements, except for the "Child Text", which is an array of strings. It is possible to access this data as outlined in this forum post, but this method is somewhat involved and round about. 
    I suggest that a property for the Tree class be created to access the Child Text array directly.

     The work around only works if you do not have an empty string element some where in the middle.
    At lest could the "Active Celltring Property" read return an error when you have gone beyond the end of the array.

  • How to find and modify  item in a nested array collection?

    Hi,
    would anybody know how to find and modify item in a nested
    array collection:
    private var ac:ArrayCollection = new ArrayCollection([
    {id:1,name:"A",children:[{id:4,name:"AA",children:[{id:8,name:"AAA"}]},{id:5,name:"AB"}]} ,
    {id:2,name:"B",children:[{id:6,name:"BA"},{id:7,name:"BB"}]},
    {id:3,name:"C"}
    Let's say I've got object {id:8, name:"X"} , how could I find
    item in a collection with the correspoding id property, get handle
    on it and update the name property of that object?
    I'm trying to use this as a dataprovider for a tree populated
    via CF and remoting....
    Thanks a lot for help!

    Thanks a lot for your help!
    In the meantime I've come up with a recursive version of the
    code.
    This works and replaces the item on any level deep:
    private function findInAC(ac:ArrayCollection):void{
    var iMatchValue:uint=8;
    for(var i:uint=0; i<ac.length; i++){
    if(ac
    .id == iMatchValue){
    ac.name = "NEW NAME";
    break;
    if(ac
    .children !=undefined){
    findInAC( new ArrayCollection(ac.children));
    However, if I use the array collection as a dataprovider for
    a tree and change it, the tree doesn't update, unless I collapse
    and reopen it.
    Any ideas how to fix it ?

  • Adding property/field to an item inside array collection

    Hi
    I'm newbie. But I'm spending a huge amout of time trying to figure out something that should be simple.
    in short:
    I wanted to add a new field/property to an item inside an arraycollection(ac).
    I thought something like:
    ac.souce[i].push(object:value)
    would do (its inside a loop, since I have ac.length) but it didnt.
    ITS IMPORTANT TO SAY THAT:
    i think addItem, or addItemAt IS NOT THE CASE.
    I want to add an new item INSIDE the array that is wrapped in ac.
    in long:
    I have a ORDERS table that comes with a client_id (int).
    I need to retrieve the client's name from a CLIENTS table.
    Ok i have to put everything on the same datagrid. So, first i've tried to ivoke a function like this that would use the getClientsByID and return a string with its name.
    It didn't worked, maybe due to the syntax.
    SO, i thought i had to put all those 2 tables into 1 array collection to use this as a 'formated' data provider for the datagrid.
    What should I do? this is a simples example.
    Thanks a lot
    Btp~

    Just borrow code from ListBase.as, don't actually use an instance of ListBase.  That pattern should work for non-display classes as well.
    Alex Harui
    Flex SDK Developer
    Adobe Systems Inc.
    Blog: http://blogs.adobe.com/aharui

  • Change this to an XML array collection with an HTTP service in flex 3.0

    I need to change this to an XML array collection with an HTTP
    service in flex 3.0
    private var flatData:ArrayCollection = new ArrayCollection([
    { Country:"India", State:"Karnataka", Region:"South-West",
    Company:"Horizon", Product:"flexo",
    Year:"2000", Quarter:"Q1", Month:"Jan", Sales:-10, Cost:5,
    Production: 20 },
    { Country:"India", State:"Tamil Nadu",
    Region:"South-East",Company:"Horizon", Product:"flexo",
    Year:"2000", Quarter:"Q1", Month:"Mar", Sales:10, Cost:5,
    Production: 20 },
    { Country:"India", State:"Kerala", Region:"South-West",
    Company:"Horizon", Product:"flexo",
    Year:"2000", Quarter:"Q4", Month:"Nov", Sales:10, Cost:5,
    Production: 20},
    { Country:"India", State:"Assam", Region:"North-East",
    Company:"Horizon", Product:"Trinetra",
    Year:"2000", Quarter:"Q1", Month:"Feb", Sales:40, Cost:20,
    Production: 20 },
    { Country:"India", State:"Kerala", Region:"South-West",
    Company:"Horizon", Product:"Trinetra",
    Year:"2000", Quarter:"Q4", Month:"Dec", Sales:55, Cost:27.5,
    Production: 20 },
    { Country:"India", State:"Karnataka", Region:"South-West",
    Company:"Horizon", Product:"Trinetra",
    Year:"2000", Quarter:"Q2", Month:"Apr", Sales:20, Cost:10,
    Production: 20 },
    // confusion
    { Country:"India", State:"Delhi", Region:"North-East",
    Company:"Confusion", Product:"Besto",
    Year:"2000", Quarter:"Q1", Month:"Jan", Sales:20, Cost:10,
    Production: 20 },
    { Country:"India", State:"Orissa", Region:"South-East",
    Company:"Confusion", Product:"Besto",
    Year:"2000", Quarter:"Q1", Month:"Feb", Sales:10, Cost:5,
    Production: 20 },
    { Country:"India", State:"Gujrat", Region:"North-West",
    Company:"Confusion", Product:"Besto",
    Year:"2001", Quarter:"Q4", Month:"Oct", Sales:50, Cost:25,
    Production: 20 },
    { Country:"India", State:"Delhi", Region:"North-East",
    Company:"Confusion", Product:"Besto",
    Year:"2001", Quarter:"Q4", Month:"Nov", Sales:60, Cost:30,
    Production: 20 },
    { Country:"India", State:"Tamil Nadu",Region:"South-East",
    Company:"Confusion", Product:"Besto",
    Year:"2001", Quarter:"Q4", Month:"Dec", Sales:70, Cost:35,
    Production: 20},
    { Country:"India", State:"Gujrat", Region:"North-West",
    Company:"Confusion", Product:"Best",
    Year:"2000", Quarter:"Q1", Month:"Mar", Sales:30, Cost:15,
    Production: 20 }
    can u pls tell me

    Create a uriTemplate like this
    /auth?uname={uname}&pass={pass}
    use GET method only.
    generate the personalization keys.

  • How to run a MS Access Query from Servlet

    Is there a way to execute an MS Access query from a servlet. I have a query that is doing an INSERT into the database. I tried to code the servlet to directly do the query itself, but it keeps locking the database and hanging. I would appreciate any help.
    Thanks,
    Justin
    [email protected]

    r u refering to the query saved inthe MSACCESS, if so then it may not be possible, bcoz it is not a pure RDBMS. otherwise the u can do it as inthe above mention thread.

Maybe you are looking for