FLEX数据处理将用于条形图显示的数据与PHP调用分开

问题描述

| 我是FLEX Developer的新手,我想将数据与对不同CollectionArrays的PHP调用分开,以便可以将数据用于条形图; 我创建了条形图的静态版本,并手动分离了Collection数组,我不想手动完成此操作,而需要动态进行。因此,我想了解的是,一旦构建了收集数组,那么如何将事件监听器添加到collectionArray的位置。使用该信息构建条形图...
    /*
         *
        36,> 2 years,Compliance
        6,0-90 Days,Compliance
        32,181-365 Days,Compliance
        72,366-730 Days,Compliance
        15,91-180 Days,Compliance
        4,Medium/Low
        118,Medium/Low
        143,Medium/Low
        29,Medium/Low
        67,Medium/Low
        10,Patient Safety
        2,Patient Safety
        17,Patient Safety
        18,Patient Safety
        5,Patient Safety 
        */
我需要以上信息 转换为底层信息 使用onload完成的事件监听器。
        [Bindable]
        public var _compliance:ArrayCollection = new ArrayCollection([
            {Count:36,Time : \"> 2 years\"       },{Count:6,Time : \"0-90 Days\"       },{Count:32,Time : \"181-365 Days\"    },{Count:72,Time : \"366-730 Days\"    },{Count:15,Time : \"91-180 Days\"     }
        ]);

        [Bindable]
        public var _medlow:ArrayCollection = new ArrayCollection([
            {Count:4,Time : \"> 2 years\"      },{Count:118,Time : \"0-90 Days\"      },{Count:143,Time : \"181-365 Days\"   },{Count:29,Time : \"366-730 Days\"   },{Count:67,Time : \"91-180 Days\"    }
        ]);;

        [Bindable]
        public var _patient:ArrayCollection = new ArrayCollection([
            {Count:10,{Count:2,{Count:17,{Count:18,{Count:5,Time : \"91-180 Days\"     }
        ]);;
    

解决方法

就像@J_A_X所说的那样,像这样的数据使事情变得更加困难,因为解析它成为您的工作。但是,没什么大不了的。您可以在此处做一些
split
工作来进行解析。假设您的行用\“ \\ n \”分隔,那么下面的命令应该起作用。我正在使用ActionLinq,它使数据处理变得轻而易举。 我假设您来自服务器的数据已放入名为
serverData
的字符串中:
private function parseLine(line:String):Object {
    var split:Array = line.split(\",\");
    return { Count: Number(split[0]),Time: split[1],Category: split[2] };
}

private function getDataBy(category:String):ArrayCollection {
    return Enumerable.from(serverData.split(\"\\n\"))
            .select(parseLine)
            .where(function(x:*):Boolean { return x.Category == category })
            .toArrayCollection();
}

[Bindable] public var _compliance:ArrayCollection;
[Bindable] public var _medlow:ArrayCollection;
[Bindable] public var _patient:ArrayCollection;
然后,当您从服务器取回数据时,可以填充5英镑:
_compliance = getDataBy(\"Compliance\");
_medlow = getDataBy(\"Medium/Low\");
_patient = getDataBy(\"Patient Safety\");
    ,谢谢布莱恩 我的解决方案体积小且可重复使用,因此比我的解决方案好得多  getAllItemsResult是从调用到服务器的数据集。
    public function setData():void{

        var t_com:Object = new Object();
        var t_med:Object = new Object();
        var t_pat:Object = new Object();

            for (var i:Object in getAllItemsResult.lastResult)
            {
                var n:Object = getAllItemsResult.lastResult[i];
                var t:Object = new Object();

                switch(n[\'Priority\']){
                    case \'Compliance\':
                        t = {
                                \'Count\' : getAllItemsResult.lastResult[i][\'THECOUNT\'],\'Time\': getAllItemsResult.lastResult[i][\'CAPA_AGE\']
                            }
                        t_com.addItem(t);
                    break;
                    case \'Medium/Low\':
                        t = {
                                \'Count\' : getAllItemsResult.lastResult[i][\'THECOUNT\'],\'Time\': getAllItemsResult.lastResult[i][\'CAPA_AGE\']
                            }
                        t_med.addItem(t);                           
                    break;
                    case \'Patient Safety\':
                        t = {
                                \'Count\' : getAllItemsResult.lastResult[i][\'THECOUNT\'],\'Time\': getAllItemsResult.lastResult[i][\'CAPA_AGE\']
                            }
                        t_pat.addItem(t);
                    break;
                    default:
                    break;
                }

            }

            var sortArr:Array = new Array(\"0-90 Days\",\"91-180 Days\",\"181-365 Days\",\"366-730 Days\",\"> 2 years\");
            //loop through array then add items to occording to array length

        }


    ]]>
现在我要弄清楚如何对这些东西进行分类!