树结构获取数据问题
2015-03-27 15:13
260 查看
系统结构如图:
功能要求:
1.统计单位面积用电量
2.统计人均用电量
建筑表结构(region)
电表结构(device)
关于建筑的面积和人数的设定问题:
开始时候想如果建筑节点没有子节点则提示用户录入面积和人数,如果有子节点则不允许录入面积和人数,该节点的面积和人数通过其子节点的数据汇总。这样存在一个问题是用户在添加一个节点的时候需要指定该节点是否有子节点,这一点很不方便,同时如果子节点修改一个数据则其所有上级节点都要Update,还有就是父节点的面积和人数数据无法修改。
于是做成每个节点都要求用户录入面积和人数数据。数据的准确性未作校验(可能会出现父节点的面积比子节点的面积总和小的情况,这个需要用户在录入数据的时候注意)。
页面前端采用easyui的combotree设计。提示用户勾选需要统计的区域。
例如勾选了2楼和401房间,则统计的区域和电表应该如下
之前在combotree中勾选后是直接将所有勾选的区域节点传到后台处理
应该这样处理:
1.获取区域面积和人数
从前台传入勾选的最上级区域节点,这里通过遍历所有勾选的节点实现。
2.获取电表读数
a.先获取传入区域下所有电表
b.选择那些ParentId不在集合里的电表
结合两点可以这样写
然后与数据表关联查询出用电量,再做后续处理。
功能要求:
1.统计单位面积用电量
2.统计人均用电量
建筑表结构(region)
RegionId | Name | ParentId |
DeviceId | Name | ParentId | RegionId |
开始时候想如果建筑节点没有子节点则提示用户录入面积和人数,如果有子节点则不允许录入面积和人数,该节点的面积和人数通过其子节点的数据汇总。这样存在一个问题是用户在添加一个节点的时候需要指定该节点是否有子节点,这一点很不方便,同时如果子节点修改一个数据则其所有上级节点都要Update,还有就是父节点的面积和人数数据无法修改。
于是做成每个节点都要求用户录入面积和人数数据。数据的准确性未作校验(可能会出现父节点的面积比子节点的面积总和小的情况,这个需要用户在录入数据的时候注意)。
页面前端采用easyui的combotree设计。提示用户勾选需要统计的区域。
例如勾选了2楼和401房间,则统计的区域和电表应该如下
之前在combotree中勾选后是直接将所有勾选的区域节点传到后台处理
应该这样处理:
1.获取区域面积和人数
从前台传入勾选的最上级区域节点,这里通过遍历所有勾选的节点实现。
function getCheckedNodes() { var regionTree = $('#regionComboTree').combotree('tree');//combotree是继承自tree,这里先取到tree var checkedRegionNodes = regionTree.tree('getChecked'); //获取选中的所有节点 var nodes = [];//用于保存提交节点的数组 $.each(checkedRegionNodes, function (i, val) { if(!parentNode.checked){ var parentNode = regionTree.tree('getParent', val.target); if (parentNode != null && parentNode != undefined) { var exist = false; $.each(nodes, function (j, val1) { if (val1.id == parentNode.id) { exist = true; return false; } }); if (!exist) { nodes.push(val); } } } else{ nodes.push(val); } }); //$.each(nodes, function (i,val) {alert(val.text) }); }
2.获取电表读数
a.先获取传入区域下所有电表
select * from Device where RegionId in (@Regions)--@Regions是处理过的前台传入的区域队列
b.选择那些ParentId不在集合里的电表
select * from 集合 where ParentId not in 集合
结合两点可以这样写
width td as ( select DeviceId from Device where RegionId in (@Regions) ) select * from td where ParentId not in td
然后与数据表关联查询出用电量,再做后续处理。
相关文章推荐
- PowerDesigner16.5反向工程获取Oracle11g数据表结构遇到的问题及解决方法
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- JS中使用Ajax获取的数据赋值不了问题的解决方案
- 解决$GLOBALS["HTTP_RAW_POST_DATA"]获取不到数据的问题
- Javascript - 获取Json结构的表单数据
- 数据结构经典算法学习之01背包问题
- ionic使用常见问题(八)——PHP无法获取$http的post数据
- PHP微信支付 支付结果通用通知获取不到数据的问题
- desc 获取数据表结构
- 数据结构中树的直径问题
- 数据结构算法问题 约瑟夫问题
- 总结Asp.net中Page加载PostData的具体过程 进而解决"获取动态创建的控件的PostData数据"问题
- 从数据库获取数据填充下拉列表,然后选中特定项提示不存在的问题。
- 关于获取页面元素的二进制数据并再次上传的问题的解决
- 数据结构中遇到的问题
- getJSON获取JSON数据中文乱码问题
- 49. 数据结构笔记之四十九图的连通性问题
- 数据结构之FIFO的一些问题
- 海思音频解码采用主动获取解码通道数据发送到音频输出通道时出现的问题
- AngularJs $http.post 数据后台获取不到数据问题 的解决过程