Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml ArrayCollection循环查找匹配项_Xml_Apache Flex_Foreach_Arraycollection - Fatal编程技术网

Xml ArrayCollection循环查找匹配项

Xml ArrayCollection循环查找匹配项,xml,apache-flex,foreach,arraycollection,Xml,Apache Flex,Foreach,Arraycollection,我希望有人能帮助我 我正在尝试为问卷模块构建一个动态表单。在之前的一些帖子的基础上,我使用了与讨论中类似的过程“我已经成功地证明了扩展XML以包括日历、组合框等的事实 我的问题是,现在需要从ArrayCollection而不是xml文件获取数据。我希望通过AC循环,其中type=“text”呈现文本输入字段,其中a type=“calendar”呈现日历等 到目前为止,我的代码只是查看一个textinput字段(对于包含的所有注释,我深表歉意;)是:- [Bindable] 公共变量AC:Arr

我希望有人能帮助我

我正在尝试为问卷模块构建一个动态表单。在之前的一些帖子的基础上,我使用了与讨论中类似的过程“我已经成功地证明了扩展XML以包括日历、组合框等的事实

我的问题是,现在需要从ArrayCollection而不是xml文件获取数据。我希望通过AC循环,其中type=“text”呈现文本输入字段,其中a type=“calendar”呈现日历等

到目前为止,我的代码只是查看一个textinput字段(对于包含的所有注释,我深表歉意;)是:-

[Bindable]
公共变量AC:ArrayCollection=新的ArrayCollection([
{类型:'text',方向:'horizontal',工具提示:'test tooltip',标签:'my textbox label',id:'1'},
{类型:'text',方向:'horizontal',工具提示:'other tooltip',标签:'other label',id:'2'}
]);
私有函数init():void
{     
变量形式:形式=新形式();
对于每个(变量元素:AC中的字符串)
{  
开关(元素。@type.toString()
{ 
案例“文本”:
变量fi:FormItem=新FormItem();
//fi.toolTip=elements.toolTip.toString();
//fi.required=getglobalprofile.required.toString();
//fi.direction=getglobalprofileb[i]。@direction;
变量li:Label=新标签();
//li.text=getglobalprofileb[i]。@label;
//li.宽度=100;
var ti:TextInput=新的TextInput();
ti.text=“测试”;
ti.宽度=200;
表格.addChild(fi);
fi.addChild(li);
fi.addChild(ti);
//中断;
}
}    
本.addChild(表格);
}   
]]>

如果您对工作xml版本(仅呈现)感兴趣,请告诉我,我也会发布此信息

我已经找到了问题第一部分的答案,即使用RO调用通过向DB发出简单请求来呈现表单

下一个问题是,当我不“知道”字段ID、字段的数量或字段的类型时,如何保存表单

又是一篇帖子

希望这对某人有用

    [Bindable] public var getglobalprofileb:ArrayCollection;

    public function init(event:ResultEvent):void {
                getglobalprofileb = event.result as ArrayCollection;

        var form:Form = new Form();

          for each(var elements:Object in getglobalprofileb)

            {  
                    switch(elements.type.toString()) 
                            { 
                                case "text": 

                                            var fi:FormItem = new FormItem(); 
                                            fi.toolTip = elements.tooltip.toString();
                                            fi.required = elements.required;
                                            fi.direction = elements.direction;

                                            var li:Label = new Label();
                                            li.text = elements.label;
                                            li.width = 100;

                                            var ti:TextInput = new TextInput(); 
                                            ti.text = elements.default_text.toString();
                                            ti.width = 200;
                                            ti.id = elements.id;

                                            form.addChild(fi);
                                            fi.addChild(li);
                                            fi.addChild(ti);

                                               break; 
                                  case "int": 
                                  break;


                                case "textarea": 
                                            var fa:FormItem = new FormItem(); 
                                            fa.toolTip = elements.tooltip;
                                            fa.required = elements.required;
                                            fa.direction = elements.direction;

                                            var la:Label = new Label();
                                            la.text = elements.label;
                                            la.width = 100;

                                            var ta:TextArea = new TextArea(); 
                                            ta.text = elements.default_text;
                                            ta.id = elements.id;
                                            ta.width = 200;
                                            ta.height = 100;

                                            form.addChild(fa);
                                            fa.addChild(la);
                                            fa.addChild(ta);

                                               break; 
                                  case "int": 
                                  break; 


                                  case "DateField": 
                                            var fdf:FormItem = new FormItem(); 
                                            fdf.toolTip = elements.tooltip;
                                            fdf.required = elements.required;
                                            fdf.direction = elements.direction;

                                            var ldf:Label = new Label();
                                            ldf.text = elements.label;
                                            ldf.width = 100;

                                            var tdf:DateField = new DateField(); 
                                            tdf.formatString="DD/MM/YYYY";
                                            tdf.width = 200;
                                            tdf.id = elements.id;

                                            form.addChild(fdf);
                                            fdf.addChild(ldf);
                                            fdf.addChild(tdf);

                                               break; 
                                  case "int": 
                                  break; 


                                  case "combobox": 
                                            var fcb:FormItem = new FormItem(); 
                                            fcb.toolTip = elements.tooltip;
                                            fcb.required = elements.required;
                                            fcb.direction = elements.direction;

                                            var lcb:Label = new Label();
                                            lcb.text = elements.label;
                                            lcb.width = 100;

                                            var tcb:combobox = new ComboBox();
                                            tcb.id = elements.id;
                                            tcb.width = 200;


                                            var datas:String = elements.Datas;
                                            var arr:ArrayCollection = new ArrayCollection ( 
                                                            datas.split(",")  
                                                                   );

                                            tcb.dataProvider = arr ;

                                            form.addChild(fcb);
                                            fcb.addChild(lcb);
                                            fcb.addChild(tcb);

                                            break; 
                                  case "int": 
                                  break; 

                                  case "HSlider": 
                                            var fhs:FormItem = new FormItem(); 
                                            fhs.toolTip = elements.tooltip;
                                            fhs.required = elements.required;
                                            fhs.direction = elements.direction;

                                            var lhs:Label = new Label();
                                            lhs.text = elements.label;
                                            lhs.width = 100;

                                            var ths:HSlider = new HSlider(); 
                                            ths.tickInterval = 10;
                                            ths.liveDragging = true;
                                            ths.snapInterval = 1;
                                            ths.width = 200;
                                            ths.id = elements.id;

                                            form.addChild(fhs);
                                            fhs.addChild(lhs);
                                            fhs.addChild(ths);

                                           break; 
                                  case "int": 
                                  break; 


                                case "CheckBox": 
                                            var fchb:FormItem = new FormItem(); 
                                            fchb.toolTip = elements.tooltip;
                                            fchb.required = elements.required;
                                            fchb.direction = elements.direction;

                                            var lchb:Label = new Label();
                                            lchb.text = elements.label;
                                            lchb.width = 100;

                                            var tchb:CheckBox = new CheckBox (); 
                                            tchb.id = elements.id; 

                                            form.addChild(fchb);
                                            fchb.addChild(lchb);
                                            fchb.addChild(tchb);

                                            break; 
                                  case "int": 
                                  break; 


                                  case "NumericStepper": 
                                            var fns:FormItem = new FormItem(); 
                                            fns.toolTip = elements.tooltip;
                                            fns.required = elements.required;
                                            fns.direction = elements.direction;

                                            var lns:Label = new Label();
                                            lns.text = elements.label;
                                            lns.width = 100;

                                            var tns:NumericStepper = new NumericStepper (); 
                                            tns.id = elements.id; 

                                            form.addChild(fns);
                                            fns.addChild(lns);
                                            fns.addChild(tns);

                                            break; 
                                  case "int": 
                                  break; 


                                case "Richtext": 
                                            var frte:FormItem = new FormItem(); 
                                            frte.toolTip = elements.tooltip;
                                            frte.required = elements.required;
                                            frte.direction = elements.direction;

                                            var lrte:Label = new Label();
                                            lrte.text = elements.label;
                                            lrte.width = 100;

                                            var trte:RichTextEditor = new RichTextEditor (); 
                                            trte.width = 400;
                                            trte.id =  elements.id;


                                            form.addChild(frte);
                                            frte.addChild(lrte);
                                            frte.addChild(trte);

                                           break; 
                                  case "int": 
                                  break; 




                             }
                     }    

                    this.addChild( form);
                //  form.id = 'demographics';


                 }   

我不太明白你的问题。foreach循环有问题吗?什么具体不起作用?是的,它是每个循环的对应项。我希望在AC中找到'type'=“text”列并执行一些操作,然后查找'type'=“calendar”列并执行一些不同的操作等。
    [Bindable] public var getglobalprofileb:ArrayCollection;

    public function init(event:ResultEvent):void {
                getglobalprofileb = event.result as ArrayCollection;

        var form:Form = new Form();

          for each(var elements:Object in getglobalprofileb)

            {  
                    switch(elements.type.toString()) 
                            { 
                                case "text": 

                                            var fi:FormItem = new FormItem(); 
                                            fi.toolTip = elements.tooltip.toString();
                                            fi.required = elements.required;
                                            fi.direction = elements.direction;

                                            var li:Label = new Label();
                                            li.text = elements.label;
                                            li.width = 100;

                                            var ti:TextInput = new TextInput(); 
                                            ti.text = elements.default_text.toString();
                                            ti.width = 200;
                                            ti.id = elements.id;

                                            form.addChild(fi);
                                            fi.addChild(li);
                                            fi.addChild(ti);

                                               break; 
                                  case "int": 
                                  break;


                                case "textarea": 
                                            var fa:FormItem = new FormItem(); 
                                            fa.toolTip = elements.tooltip;
                                            fa.required = elements.required;
                                            fa.direction = elements.direction;

                                            var la:Label = new Label();
                                            la.text = elements.label;
                                            la.width = 100;

                                            var ta:TextArea = new TextArea(); 
                                            ta.text = elements.default_text;
                                            ta.id = elements.id;
                                            ta.width = 200;
                                            ta.height = 100;

                                            form.addChild(fa);
                                            fa.addChild(la);
                                            fa.addChild(ta);

                                               break; 
                                  case "int": 
                                  break; 


                                  case "DateField": 
                                            var fdf:FormItem = new FormItem(); 
                                            fdf.toolTip = elements.tooltip;
                                            fdf.required = elements.required;
                                            fdf.direction = elements.direction;

                                            var ldf:Label = new Label();
                                            ldf.text = elements.label;
                                            ldf.width = 100;

                                            var tdf:DateField = new DateField(); 
                                            tdf.formatString="DD/MM/YYYY";
                                            tdf.width = 200;
                                            tdf.id = elements.id;

                                            form.addChild(fdf);
                                            fdf.addChild(ldf);
                                            fdf.addChild(tdf);

                                               break; 
                                  case "int": 
                                  break; 


                                  case "combobox": 
                                            var fcb:FormItem = new FormItem(); 
                                            fcb.toolTip = elements.tooltip;
                                            fcb.required = elements.required;
                                            fcb.direction = elements.direction;

                                            var lcb:Label = new Label();
                                            lcb.text = elements.label;
                                            lcb.width = 100;

                                            var tcb:combobox = new ComboBox();
                                            tcb.id = elements.id;
                                            tcb.width = 200;


                                            var datas:String = elements.Datas;
                                            var arr:ArrayCollection = new ArrayCollection ( 
                                                            datas.split(",")  
                                                                   );

                                            tcb.dataProvider = arr ;

                                            form.addChild(fcb);
                                            fcb.addChild(lcb);
                                            fcb.addChild(tcb);

                                            break; 
                                  case "int": 
                                  break; 

                                  case "HSlider": 
                                            var fhs:FormItem = new FormItem(); 
                                            fhs.toolTip = elements.tooltip;
                                            fhs.required = elements.required;
                                            fhs.direction = elements.direction;

                                            var lhs:Label = new Label();
                                            lhs.text = elements.label;
                                            lhs.width = 100;

                                            var ths:HSlider = new HSlider(); 
                                            ths.tickInterval = 10;
                                            ths.liveDragging = true;
                                            ths.snapInterval = 1;
                                            ths.width = 200;
                                            ths.id = elements.id;

                                            form.addChild(fhs);
                                            fhs.addChild(lhs);
                                            fhs.addChild(ths);

                                           break; 
                                  case "int": 
                                  break; 


                                case "CheckBox": 
                                            var fchb:FormItem = new FormItem(); 
                                            fchb.toolTip = elements.tooltip;
                                            fchb.required = elements.required;
                                            fchb.direction = elements.direction;

                                            var lchb:Label = new Label();
                                            lchb.text = elements.label;
                                            lchb.width = 100;

                                            var tchb:CheckBox = new CheckBox (); 
                                            tchb.id = elements.id; 

                                            form.addChild(fchb);
                                            fchb.addChild(lchb);
                                            fchb.addChild(tchb);

                                            break; 
                                  case "int": 
                                  break; 


                                  case "NumericStepper": 
                                            var fns:FormItem = new FormItem(); 
                                            fns.toolTip = elements.tooltip;
                                            fns.required = elements.required;
                                            fns.direction = elements.direction;

                                            var lns:Label = new Label();
                                            lns.text = elements.label;
                                            lns.width = 100;

                                            var tns:NumericStepper = new NumericStepper (); 
                                            tns.id = elements.id; 

                                            form.addChild(fns);
                                            fns.addChild(lns);
                                            fns.addChild(tns);

                                            break; 
                                  case "int": 
                                  break; 


                                case "Richtext": 
                                            var frte:FormItem = new FormItem(); 
                                            frte.toolTip = elements.tooltip;
                                            frte.required = elements.required;
                                            frte.direction = elements.direction;

                                            var lrte:Label = new Label();
                                            lrte.text = elements.label;
                                            lrte.width = 100;

                                            var trte:RichTextEditor = new RichTextEditor (); 
                                            trte.width = 400;
                                            trte.id =  elements.id;


                                            form.addChild(frte);
                                            frte.addChild(lrte);
                                            frte.addChild(trte);

                                           break; 
                                  case "int": 
                                  break; 




                             }
                     }    

                    this.addChild( form);
                //  form.id = 'demographics';


                 }