OK, I glad to know there is a way to just return a straight query 
from a CFC...that is good to know. I did change my columnName in my 
DG to all caps (is this still necessary in MX7?) and made changes to 
my ActionScript code, however I am still getting a "value from 
getPersonnel() of not type string" error. 

Do I no longer need an array of structures in my CFC, and just return 
a query result? Or, do I still need to put the results of the query 
into an array of structures? I did try both ways however in my CFC, 
and am still getting the same error regardless. 

This is what I have:

************************
 getPersonnel.cfc
************************
<cfcomponent displayname="getPersonnel">
<cffunction name="getPersonnel" access="remote" returntype="string">
                
 <cfset var arrayResult = ArrayNew(1)/>
                
 <cfquery name="getAllPersonnel" datasource="spotDB">
 SELECT * 
 FROM dbo.ItemsInvolvedLOV
 </cfquery>
                
 <cfoutput query="getAllPersonnel">
 <cfset structPersonnel = StructNew()/>
 <cfset structPersonnel["ItemId"] = #getAllPersonnel.ItemId#>
 <cfset structPersonnel["ItemType"] = #getAllPersonnel.ItemType#>
 <cfset structPersonnel["ItemName"] = #getAllPersonnel.ItemName#>
 <cfset arrayAppend(arrayResult,structPersonnel)/> 
 </cfoutput>
 
 <cfreturn getAllPersonnel>
 </cffunction>
 </cfcomponent>

************************
  personnelNeeded.MXML
************************
<mx:Script> 
<![CDATA[ 
       public var dp:Array;
                
       private function doResult(result:Array):Void {
            dp = result;
        }
]]> 
</mx:Script> 
     

************************
  Remote Object
************************ 
<mx:RemoteObject id="ro" 
           endpoint="http://IPADDRESS:PORT#/flashservices/gateway";  
             source="cfdocs.components.getPersonnel"
              fault="mx.controls.Alert.show
(event.fault.faultstring, 'Error')" 
        showBusyCursor="true">
<mx:method name="getPersonnel" result="doResult
(event.result._items)"/>
                
</mx:RemoteObject>


************************
  Datagrid
************************

<mx:DataGrid id="dgPersonnelNeeded" headerColor="#00CC33" 
height="300" textAlign="left" width="100%" wordWrap="true" 
editable="true" dataProvider="{dp}">
<mx:columns>
<mx:Array>
<mx:DataGridColumn headerText="Name" columnName="ITEMID" 
width="225" />
<mx:DataGridColumn headerText="Title" columnName="ITEMTITLE" 
width="650"/>
<mx:DataGridColumn headerText="Date" columnName="ITEMDATE" 
width="100" />
</mx:Array>
</mx:columns>
</mx:DataGrid> 

<mx:Button label="Get Records"  textAlign="center" width="100" 
click="{ro.getPersonnel()}"/>
 






--- In flexcoders@yahoogroups.com, "Stacey Mulcahy" <[EMAIL PROTECTED]> 
wrote:
>
> 
> Yep you'll need caps.
> 
> 
> -----Original Message-----
> From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
> Behalf Of João Fernandes
> Sent: Friday, February 17, 2006 4:48 PM
> To: flexcoders@yahoogroups.com
> Subject: RE: [flexcoders] calling a cfc from flex
> 
> 
> Welcome first of all,
> 
> I don't know if you are aware that you can return directly a query 
from the
> CFC. In flex side it will be available as event.result._items and 
you are
> able to bind it directly as an Array.
> 
> In your sample you could say in cfc:
> 
> <cfreturn getAllPersonnel>
> 
> in your mxml file you could have some 
> public var dp:Array;
> private function doResult(result:Array):Void {
>       dp = result;
>     }
> 
> in the Datagrid set the property dataProvider="{dp}"
> and just replace your remote object result to
> result="doResult(event.result._items)"
> 
> I think, if I'm not mistaken, your datagridcolumns should have 
columnName in
> upper case when dealing with CFC structures.
> 
> Regards,
> 
> João Fernandes
> 
> -----Original Message-----
> From: flexcoders@yahoogroups.com on behalf of rgwilson26
> Sent: Fri 17-Feb-06 6:11 PM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] calling a cfc from flex
>  
> I am new to flex and working on calling a cfc that has a simple 
query 
> in it. I want my query to populate a datgrid with all pertinant 
> information. I am having a hard time converting from an array to a 
> string to populate the DG. Any help in what I am missing would be 
> great, or if there is an easier way to call a query and return data 
> would be great!
> 
> ************************
>   getPersonnel.cfc
> ************************
> <cfcomponent displayname="getPersonnel">
> <cffunction name="getPersonnel" access="remote" returntype="string">
>               
> <cfset var arrayResult = ArrayNew(1)/>
>               
> <cfquery name="getAllPersonnel" datasource="spotDB">
> SELECT * 
> FROM dbo.ItemsInvolvedLOV
> </cfquery>
>               
> <cfoutput query="getAllPersonnel">
> <cfset structPersonnel = StructNew()/>
> <cfset structPersonnel["ItemId"] = #getAllPersonnel.ItemId#>
> <cfset structPersonnel["ItemType"] = #getAllPersonnel.ItemType#>
> <cfset structPersonnel["ItemName"] = #getAllPersonnel.ItemName#>
> <cfset arrayAppend(arrayResult,structPersonnel)/> 
> </cfoutput>
> <!--- Return Array to Flex--->
> <cfreturn getAllPersonnel>
> </cffunction>
> </cfcomponent>
> 
> 
> ************************
>   personnelNeeded.MXML
> ************************
> ActionScript:
> ------------
> private function doResult(result:Array):Void {
>       
>     var personnelObject:Object = new Object();  object 
>     var personnelResult:Array = new Array();    
> 
>     for(var i=0; i < result.length; i++){
>      personnelObject = result[i];
>      personnelResult.push(personnelObject);
>     }
>     dgPersonnelNeeded.dataProvider = personnelResult;
>     }
> 
> ************************
>   Remote Object
> ************************
> 
> <mx:RemoteObject id="ro" 
>          endpoint="http://10.95.20.39:8500/flashservices/gateway";  
>            source="cfdocs.components.getPersonnel"
>             fault="mx.controls.Alert.show
> (event.fault.faultstring, 'Error')" 
>       showBusyCursor="true">
> <mx:method name="getPersonnel" result="doResult(event.result)"/>
>               
> </mx:RemoteObject>
> 
> 
> ************************
>   Datagrid
> ************************
> 
> <mx:DataGrid id="dgPersonnelNeeded" headerColor="#00CC33" 
> height="300" textAlign="left" width="100%" wordWrap="true" 
> editable="true">
> <mx:columns>
> <mx:Array>
> <mx:DataGridColumn headerText="Name" columnName="name" 
width="225" />
> <mx:DataGridColumn headerText="Title" columnName="title" 
width="650"/>
> <mx:DataGridColumn headerText="Date" columnName="date" 
width="100" />
> </mx:Array>
> </mx:columns>
> </mx:DataGrid> 
> 
> 
> ************************
>   Click event button
> ************************
> <mx:Button label="Get Records"  textAlign="center" width="100" 
> click="{ro.getPersonnel()}"/>
> 
> 
> 
> 
> 
> 
> 
> --
> Flexcoders Mailing List
> FAQ: 
http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives: http://www.mail-archive.com/flexcoders%
40yahoogroups.com 
> Yahoo! Groups Links
>






--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to