I've been pulling my hair out trying to figure out the best way to 
format numbers in a DataGrid.  I've got a dataProvider with fields 
used in the grids that are of type "Number" -- some are currency, 
some are integers, and some are numbers that need to be formatted to 
1 decimal point.

In other places in my application, I'm using a custom function to 
format numbers:

public function format_number(num : Number, format : String) : String 
{
        var formatter : NumberFormatter = new NumberFormatter();
        var str : String;
                        
        switch (format) {
                case "currency":
                        formatter.precision = 2;
                        formatter.useThousandsSeparator = true;
                        str = "$" + formatter.format(num);
                        break;
                case "percent":
                        formatter.precision = 1;
                        formatter.useThousandsSeparator = true;
                        str = formatter.format(num*100) + "%";
                        break;
                case "decimal2":
                        formatter.precision = 2;
                        formatter.useThousandsSeparator = false;
                        str = formatter.format(num);
                        break;
                case "cuft":
                        formatter.precision = 1;
                        formatter.useThousandsSeparator = true;
                        if (num < 0) { num = 0 }
                        str = formatter.format(num);
                        break;
                default:
                        str = String(num);
                        break;
        }
        
        return str;
}


However, I can't figure out a way to utilize this function on my 
DataGrid columns. I've tried creating both inline and external 
itemRenderer components, but in both cases I don't see a way to 
inject the required Actionscript into the itemRenderer component -- I 
keep getting compile errors when I try to use an mx:Script block in 
the component.

Anyone know of a way to make this work?





Reply via email to