Flex3.0&AS3 2009. 1. 30. 14:07

AdvancedDatagrid] Itemrenderer 활용




<?xml version="1.0"?>
<!-- dpcontrols/adg/HierarchicalADGSimpleRenderer.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500" height="150">

    <mx:Script>
        <![CDATA[
              import mx.collections.ArrayCollection;
              
                [Bindable]
         public var OrexhComboData:ArrayCollection = new ArrayCollection(
                [
                 {Region:"CICAGO", Territory_Rep:10,Actual:10,Estimate:20},
                 {Region:"SEOUL", Territory_Rep:100,Actual:100,Estimate:10},
                 {Region:"TEXAS", Territory_Rep:10,Actual:12,Estimate:34}
                ] );  
              
        ]]>
    </mx:Script>

    <mx:AdvancedDataGrid width="100%" height="100%" dataProvider="{OrexhComboData}" sortExpertMode="true">
        <mx:columns>
            <mx:AdvancedDataGridColumn dataField="Region" width="70"/>
            <mx:AdvancedDataGridColumn dataField="Territory_Rep"
                headerText="Territory Rep" width="100"/>
            <mx:AdvancedDataGridColumn dataField="Actual" width="70"/>
            <mx:AdvancedDataGridColumn dataField="Estimate" width="70"/>
            <mx:AdvancedDataGridColumn id="diffCol"
                headerText="Difference"/>
        </mx:columns>

        <mx:rendererProviders>
            <mx:AdvancedDataGridRendererProvider column="{diffCol}"
                 renderer="SummaryRenderer"/>
        </mx:rendererProviders>
    </mx:AdvancedDataGrid>
</mx:Application>







<?xml version="1.0"?>
<!-- dpcontrols/adg/myComponents/SummaryRenderer.mxml -->
<mx:Label xmlns:mx="http://www.adobe.com/2006/mxml" textAlign="center">
    <mx:Script>
        <![CDATA[

        override public function set data(value:Object):void
        {
            var diff:Number =
              
  Number(value["Actual"]) - Number(value["Estimate"]); 
                             // 다른필드데이타필드로부터 값얻어오는방법   value["필드명"]
            if (diff < 0)
            {

                setStyle("color", "red");
                text = "Undersold by " + usdFormatter.format(diff);
            }
            else
            {

                setStyle("color", "green");
                text = "Exceeded estimate by " + usdFormatter.format(diff);
            }
        }
        ]]>
    </mx:Script>
   
    <mx:CurrencyFormatter id="usdFormatter" precision="2"
        currencySymbol="$" decimalSeparatorFrom="."
        decimalSeparatorTo="." useNegativeSign="true"
        useThousandsSeparator="true" alignSymbol="left"/>
</mx:Label>