- 浏览: 81256 次
- 性别:
- 来自: 四川
最新评论
-
iceblue510808:
你好,能给我发下你写的这个吗?想学习下,谢谢了Adobe Bu ...
Flex图文混排 -
sxy09:
diding 写道xingfustar 写道哥们,够狠,可以共 ...
Flex图文混排 -
sxy09:
给份源码吧,学习研究下 419119915@qq.com
Flex图文混排之后期开发 -
zhangxiaopei:
哥,你还在吗?能发一份源码给我吗?谢谢,不甚感激邮箱:zhan ...
Flex图文混排之后期开发 -
zhangxiaopei:
兄弟能给源码给我吗?谢谢邮箱zhangoceansoft@12 ...
Flex图文混排
最近有一项目,需要从mysql数据库读取数据,到Flex中呈现在Tree上,原来一直用读取xml,现在不想用xml了,直接读取数据后分析呈现。
如果是单层数据还好办,直接用XMLListCollection简要分析完就可以了,现在涉及到要分组显示,即相同职务的员工并到一组去
即:
设计师组: id employeeName employeeGroup .....
12 张三 设计师组
13 李四 设计师组
14 王二麻子 设计师组
烫染师组:
15 黑娃 烫染师组
16 张山 烫染师组
17 王三麻子 烫染师组
//项目的最终效果
如果是单层数据还好办,直接用XMLListCollection简要分析完就可以了,现在涉及到要分组显示,即相同职务的员工并到一组去
即:
设计师组: id employeeName employeeGroup .....
12 张三 设计师组
13 李四 设计师组
14 王二麻子 设计师组
烫染师组:
15 黑娃 烫染师组
16 张山 烫染师组
17 王三麻子 烫染师组
//项目的最终效果
import mx.collections.ArrayCollection; import mx.collections.XMLListCollection; import mx.containers.Panel; import mx.controls.Tree; import mx.core.ClassFactory; import mx.events.ListEvent; //这里写的是hard data //实际操作时 从数据库读取数据 private var companyEmployee:Array=[ {employeeGroup:"理疗师组", employeeID:1, employeeName:"张强", employeeRegPlace:"总部店"}, {employeeGroup:"烫染师组", employeeID:11, employeeName:"罗超", employeeRegPlace:"总部店"}, {employeeGroup:"设计师组", employeeID:12, employeeName:"当当", employeeRegPlace:"总部店"}, {employeeGroup:"前台收银", employeeID:3, employeeName:"伟伟", employeeRegPlace:"总部店"}, {employeeGroup:"伙伴员组", employeeID:7, employeeName:"罗兵", employeeRegPlace:"总部店"}, {employeeGroup:"烫染师组", employeeID:8, employeeName:"超超", employeeRegPlace:"城南店"}]; private var company:Array=[ {companyName:"总部店", id:"1"}, {companyName:"城南店", id:"2"}]; private function init():void { /**** * 相同组的员工可能不止一人 * 理疗师组------分析数据并归组 * **/ AnalyzeEmployeeGroup(); } private var AnalyzedACOData:ArrayCollection=new ArrayCollection() private function AnalyzeEmployeeGroup():void { for (var k:int=0; k < companyEmployee.length; k++) { var obj:Object=new Object(); var obj2:Object=new Object() var childrenACO:ArrayCollection=new ArrayCollection(); if (k == 0) { obj.employeeGroup=companyEmployee[k].employeeGroup; childrenACO.addItem(companyEmployee[k]) obj.children=childrenACO; AnalyzedACOData.addItem(obj) } else { //判断companyEmployee[k].employeeGroup是否在数组中,如果存在, //取得其索引,加入children //否则 新加入数组 var returnNum:Number=findIsDataInArrays(companyEmployee[k].employeeGroup); //找到有 if (returnNum != -1) { //索引值 var idx:Number=findDataInArraysOrder(companyEmployee[k].employeeGroup); var oldObj:Object=AnalyzedACOData.getItemAt(idx); ArrayCollection(oldObj.children).addItem(companyEmployee[k]) } else { //没有找到 obj.employeeGroup=companyEmployee[k].employeeGroup; childrenACO.addItem(companyEmployee[k]) obj.children=childrenACO; AnalyzedACOData.addItem(obj); } } } customTreeData() } private function findIsDataInArrays(input:String):Number { for (var i:int=0; i < AnalyzedACOData.length; i++) { if (AnalyzedACOData[i].employeeGroup === input) { return i; } } return -1; } private function findDataInArraysOrder(input:String):Number { for (var i:int=0; i < AnalyzedACOData.length; i++) { if (AnalyzedACOData[i].employeeGroup === input) { return i; break; } } return -1; } private var dataManageTreeDataXML:XMLListCollection private function customTreeData():void { //tree呈现的数据 dataManageTreeDataXML=new XMLListCollection(); var insertDataXML:XML=<folder label="录入数据"/>; var viewAdminDataXML:XML=<folder label="查看管理"/>; //控制菜单一 公司员工 var employeeXML:XML=new XML(<folder label="公司员工"></folder>); for (var i:int=0; i < AnalyzedACOData.length; i++) { var xmlStr:String="<folder label=" + "\"" + AnalyzedACOData[i].employeeGroup + "\"" + "/>"; var tempXML:XML=XML(xmlStr); employeeXML.appendChild(tempXML) //取得 Children var childrenArr:*=(AnalyzedACOData[i].children); for (var j:int=0; j < childrenArr.length; j++) { var infoForEmployeeStr:String="<folder label=" + "\"" + childrenArr[j].employeeName + "\"" + "employeeID=" + "\"" + childrenArr[j].employeeID + "\"" + "/>" var sub_dataXML:XML=XML(infoForEmployeeStr); //加入操作菜单 sub_dataXML.appendChild(insertDataXML) sub_dataXML.appendChild(viewAdminDataXML); tempXML.appendChild(sub_dataXML) } } dataManageTreeDataXML.addItem(employeeXML); //控制菜单二 var companyXML:XML=new XML(<folder label="公司各店"></folder>); for (var k:int=0; k < company.length; k++) { var xmlForCompanyInfoStr:String="<folder label=" + "\"" + company[k].companyName + "\"" + "id=" + "\"" + company[k].id + "\"" + "/>" var tempForCompanyXML:XML=XML(xmlForCompanyInfoStr); //加入操作菜单 tempForCompanyXML.appendChild(insertDataXML) tempForCompanyXML.appendChild(viewAdminDataXML); companyXML.appendChild(tempForCompanyXML) } dataManageTreeDataXML.addItem(companyXML); trace("===" + dataManageTreeDataXML) createTree() } [Embed(source="/assets/plus.gif")] private var PLUS:Class; [Embed(source="/assets/minus.gif")] private var MINUS:Class; private function createTree():void { var panel:Panel=new Panel(); panel.width=150 panel.percentHeight=100; this.addElement(panel); var MyTree:Tree=new Tree(); MyTree.horizontalScrollPolicy="auto" //MyTree.allowChangeHorizontalScroll=true MyTree.percentHeight=100; MyTree.percentWidth=100 //MyTree.minWidth=150; MyTree.labelField="@label"; MyTree.showRoot=true; MyTree.setStyle("borderAlpha", "0.6") //MyTree.expandItem(treeData, true); MyTree.setStyle("lineColor", 0xff00ff); MyTree.setStyle("folderOpenIcon", null); MyTree.setStyle("folderClosedIcon", null); MyTree.setStyle("defaultLeafIcon", null); MyTree.setStyle("disclosureClosedIcon", PLUS); MyTree.setStyle("disclosureOpenIcon", MINUS); MyTree.itemRenderer=new ClassFactory(TreeItemLinesRenderer) MyTree.allowMultipleSelection=false MyTree.allowDragSelection=false MyTree.addEventListener(ListEvent.CHANGE, treeChanged); panel.addChild(MyTree); MyTree.dataProvider=dataManageTreeDataXML; var nodeList:XMLListCollection=MyTree.dataProvider as XMLListCollection; MyTree.validateNow(); MyTree.expandItem(nodeList[0], true) } public function treeChanged(event:ListEvent):void { var selectedNode:XML=Tree(event.target).selectedItem as XML; trace(selectedNode.parent()) trace(selectedNode.@label) //trace(selectedNode.parent().@id) //执行analyzeID() }
发表评论
-
Flex 4.5 – Using Mobile View Transitions
2011-05-18 16:45 2514收录的一篇文章: 原文地址:http://devgirl.or ... -
Flex Array多参数排名(含有并列名次)
2011-04-25 21:52 1532最近有一个项目,客户不仅要求报表同时呈现: 1.员工在整个公司 ... -
Flex Air 周边整合之碎语
2011-03-05 20:13 2051手边近期有一个项目( ... -
SDK 4.5 (Hero)TextLayout 随记
2010-11-15 22:24 4138TextLayout前沿更新: http://sourcefo ... -
Flex4.5 Hero
2010-11-06 21:03 3069Flex4.5 已在10.24发布,今天终于静下来玩玩它了 下 ... -
Flex4 Declarations in ActionScript
2010-11-02 20:26 3045抽空整理Cairgorn3时,由于喜欢Code,而不喜欢Blo ... -
AS3公历转农历和农历转公历
2010-11-01 21:49 528今天例行整理硬盘中的文件时,看到收录一篇JAVA农历转公历的类 ... -
Flex DataGrid 内嵌AutoCompleteDataGrid
2010-10-27 23:26 1099这个东东是根据flashcommand的AutoComplet ... -
Flex DataGrid 内嵌ComboBox 再内嵌一个 DataGrid
2010-10-27 23:10 1518由于设计需要,曾要用到一个功能模块,但由于数据量的问题,最终p ... -
美发城的烫染护理系统和仓库管理软件
2010-10-27 23:06 1125这段时间,做了两个软件:美发城的烫染护理系统和仓库管理软件 P ... -
Flash Builder 4 的一个作品
2009-07-27 10:33 7887月17日放假,到现在完成了一个网站,记录一下 http:// ... -
AS3获取Jpg图像长宽
2009-03-28 12:32 2159一个老外的比较有用的类,自已整合到自已的utls包中: 1.用 ... -
Flex存bmp图像
2009-03-28 12:13 2191前言: 这阵子没事在研究buzzword,并试图还原前台,费 ... -
Flex图文混排之后期开发
2009-03-07 22:14 6767一:now SDK: flex_sdk_4.0.0.61 ... -
纯AS的RemoteAMF3
2009-03-03 23:35 1621[纯AS的RemoteAMF3] 目前支持:AMFPHP,C ... -
FxTextArea插入图片后,图片上方空隙的解决
2009-03-02 21:51 2429由于开发一个运行期间由用户来设置dg表,无意间打开Navica ... -
Flex Datagrid 行列增加和删除(支持右键)
2009-03-02 19:28 12051目前能实现的功能: 1.支持编辑表头; 2.删除添加自动更新序 ... -
Flex提交Datagrid数据存为xml
2009-03-01 14:38 3160Flex 代码区 MyDataDG为datagrid,执行提 ... -
采用AS开发Module
2009-03-01 13:34 12921.采用ModuleLoader /********** ... -
Flex图文混排
2009-03-01 13:26 7049这几天没事,学习Gumbo的FxTextArea,开发了一个F ...
相关推荐
### 从数据库中读取数据并显示在RichTextBox #### 概述 本文将详细介绍如何在C#应用程序中实现从数据库读取数据,并将其显示在`RichTextBox`控件中的过程。这一技术常用于需要展示从数据库获取的信息的应用场景,如...
在本项目中,我们主要探讨的是如何利用EasyUI框架创建一个具有多级菜单功能的树形结构,并且能够与后台数据库进行动态交互。EasyUI是一个基于jQuery的UI库,提供了丰富的组件,包括我们这里用到的树形控件(tree)。...
当我们谈论“从数据库读取图片文件”时,通常涉及的是将图片作为BLOB(Binary Large Object)类型存储在数据库中,然后通过应用程序或API从数据库检索并显示这些图片。这一过程涉及到多个关键知识点,让我们逐一深入...
基于JDBC从数据库中读取数据,在百度地图批量标注地点例程
在本篇文章中,我们将讨论如何从数据库中读取数据自动生成XML文件。XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。它广泛应用于各种领域,包括网络开发、数据交换、配置文件等。 从数据库...
在IT领域,图片上传至数据库以及从数据库读取图片是一个常见的需求,特别是在开发涉及用户交互、内容管理和数据存储的应用程序时。以下是对这个主题的详细解释。 首先,我们需要理解为什么要把图片存储到数据库中。...
本示例"Delphi从数据库读取数据并求平均值"就是这样一个典型的数据库操作实践,主要涉及到以下几个知识点: 1. **ADO(ActiveX Data Objects)组件**:Delphi通常使用ADO组件来连接和操作数据库。ADO是一种标准的...
从access数据库读取写入xls表格,可以借鉴参考,对xls操作和access读写有学习借鉴的地方,写xls有几种方法,我的是一张表全部封装为一个range一次写入,速度很快,如果一个单元格一个单元格的写的话非常慢。
综上所述,图片存入数据库和从数据库中读取图片的过程,不仅涉及对图片数据的二进制处理,还涵盖了数据库操作的关键技术,包括连接管理、命令执行、结果集读取以及异常处理等。掌握这些技术点对于开发人员来说至关...
这是我做的一个将数据用excel导出代码,前半段代码可以忽略,是查询语句,最后一段才是导出excel。
在C#编程环境中,我们可以利用ADO.NET框架来高效地与SQL数据库进行交互,实现如标题所述的“C#读取数据库中表格数据”的功能。本篇文章将深入探讨如何用C#按秒读取SQL数据库中的表格数据,并展示这些数据。 首先,...
能从数据库中根据编码级次动态读取数据加载树菜单,非常灵活!
C#将文件保存到数据库中或者从数据库中读取文件 本文主要介绍了使用 C# 将文件保存到数据库中或者从数据库中读取文件的方法。下面将详细介绍该知识点。 一、保存文件到数据库中 在实际开发中,我们经常需要将文件...
在本实例中,我们将探讨如何使用Django框架从MySQL数据库中读取数据并将其呈现到前端页面上。Django是一个强大的Python Web开发框架,而MySQL则是一种广泛使用的关系型数据库管理系统。结合两者,我们可以构建动态的...
JDBC读取数据库元数据,生成JAVA实体类
这个压缩包文件“VC6.0 MFC 数据库读入数据显示在对话框.rar”显然涉及到如何使用MFC来从数据库读取数据,并在对话框中显示这些数据。以下是对这个主题的详细讲解: 首先,我们需要理解MFC中的CDatabase和...
至此,我们完成了从SQLite数据库读取数据并显示在ListView上的整个流程。当数据库中的数据发生变化时,只需刷新Adapter即可更新ListView的显示。这个示例对于理解Android中SQLite与ListView的交互非常有帮助,可以...
### WinCC数据库读取知识点详解 #### 一、WinCC简介 WinCC(Windows Control Center)是西门子公司开发的一款广泛应用于工业自动化领域的图形化监控系统。它支持各种硬件设备的连接,能够实现数据采集、可视化展示...
在这个场景中,我们使用C#语言结合Access数据库来动态获取数据,并实现在用户界面控件上实时展示数据变化的曲线图。下面我们将深入探讨这个过程涉及的关键知识点。 1. **C#与数据库交互**: - ADO.NET:C#通过ADO...
7. **数据整合**:在Windows服务中,可能会有一个中心调度器负责协调从Aspen和Oracle数据库的读取任务,然后将这些数据整合到SQL数据库中。这需要对并发控制、错误处理和数据一致性有深入理解。 8. **安全性和性能*...