| 
                     | 
                    
                        主题:  讨论:有什么高招
                     | 
                
            
                        
                
                    
                          蓝鲸 
                        职务:版主 
                        等级:5 
                        金币:42.1 
                        发贴:2614 
                        注册:2001/12/20 15:57:57 
                     | 
                    
                        
                            
                            #12006/5/24 15:04:14 
                            
                                最近在做个系统, 是单位支出费用统计系统,统计查询如下结构:
  交通费用支出    7200    ┈ 统计数 ├差旅费用        5200    ┈ 统计数 │├市内        1500    ┈ 查询数 │├省内        2500    ┈ 查询数 │└国内        1200    ┈ 查询数 └交通津贴        2000    ┈ 查询数 办公费用支出    5500    ┈ 统计数 ├通讯费        2000    ┈ 查询数 └办公用品        3500    ┈ 统计数  ├文具        1500    ┈ 查询数  └办公用纸    2000    ┈ 查询数
  从上结构看,是一树形分支结构,即每一大类包含小类,最末端的节点是实际输入数据或可以直接查询的数据存放项。 父类:包含各子节点,没有直接数据,但要求统计各子节点的数据,也即父节点是各子节点数据的总和。
  输入方法: 是按逐项输入的,如输入:办公用纸--300--(2006-5-18支出时间),按确定,这300元是随时可以查询到,并可修改。
  难点: (1)该报表结构不是固定的,各年度的报出项可能是要求定制。 (2)要实现灵活的查询,即按月、年、和指定日期内的统计数据,所以比较难考虑生成数据表的方法 (3)父节点的数据是无法直接查询的,但通过查询子节点(末端)的数据,统计生成。
  难度比较大些,各位有什么高招,或有什么想法可不必顾忌,一句二句都行。
                                
                                
                                
                             
                            
                                
                                    编辑历史:[此帖最近一次被 蓝鲸 编辑过(编辑时间:2006-05-24 15:32:23)] 
                                     
                                 
                             
                            非常大鱼 
                         
                     | 
                
                        
                
                    
                          studyASP 
                        职务:普通成员 
                        等级:1 
                        金币:0.0 
                        发贴:44 
                        注册:2006/5/9 20:48:30 
                     | 
                    
                        
                            
                            #22006/5/24 15:10:32 
                            
                                这个不是和论坛分坛一样的吗?
                                
                                
                                
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          studyASP 
                        职务:普通成员 
                        等级:1 
                        金币:0.0 
                        发贴:44 
                        注册:2006/5/9 20:48:30 
                     | 
                    
                        
                            
                            #32006/5/24 15:13:30 
                            
                                哦,需要实现多次分坛。 无限级分坛我也还没考虑过   不过动网论坛实现了这个 可以参考研究一下
                                
                                
                                
                              
                            
                            
                         
                     | 
                
                        
                
                    
                          蓝鲸 
                        职务:版主 
                        等级:5 
                        金币:42.1 
                        发贴:2614 
                        注册:2001/12/20 15:57:57 
                     | 
                    
                        
                            
                            #42006/5/24 15:13:58 
                            
                                studyASP在上个帖子中说  引用:  这个不是和论坛分坛一样的吗? 
   有点类似分论坛结构,也即树形结构, 不过需要有统计功能
                                
                                
                                
                              
                            
                            非常大鱼 
                         
                     | 
                
                        
                
                    
                          蓝鲸 
                        职务:版主 
                        等级:5 
                        金币:42.1 
                        发贴:2614 
                        注册:2001/12/20 15:57:57 
                     | 
                    
                        
                            
                            #52006/5/24 15:15:12 
                            
                                另外定制的可暂时不要考虑,难度比较大些
                                
                                
                                
                             
                            
                            非常大鱼 
                         
                     | 
                
                        
                
                    
                          studyASP 
                        职务:普通成员 
                        等级:1 
                        金币:0.0 
                        发贴:44 
                        注册:2006/5/9 20:48:30 
                     | 
                    
                        
                            
                            #62006/5/24 15:25:03 
                            
                                哦 哦哦 暂时没招 先花点时间考虑
                                
                                
                                
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          缺缺 
                        职务:管理员 
                        等级:8 
                        金币:41.0 
                        发贴:9620 
                        注册:2004/1/14 19:14:47 
                     | 
                    
                        
                            
                            #72006/5/24 15:41:56 
                            
                                我凭空想象了一下,或者我没有能够理解吧.感觉不会有什么问题. 一个树行结构,录入应该没有什么难度,查询似乎也不是什么问题.不知道所说的灵活查询是灵活到什么程度
  比如查询两个不是一个级别的节点的总和?
                                
                                
                                
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          Tassadar 
                        职务:普通成员 
                        等级:1 
                        金币:-1.0 
                        发贴:38 
                        注册:2004/11/30 8:47:28 
                     | 
                    
                        
                            
                            #82006/5/24 16:24:21 
                            
                                问个问题,ASP。NET有自带的树控件么 我上次用的是第三方控件,特别不稳定。 如果没有有什么办法实现树形列表。 
                                
                                
                                
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          studyASP 
                        职务:普通成员 
                        等级:1 
                        金币:0.0 
                        发贴:44 
                        注册:2006/5/9 20:48:30 
                     | 
                    
                        
                            
                            #92006/5/24 16:52:38 
                            
                                我有这样的办法,不过我自己都觉得不够满意,一定还有更好的办法。 希望通过我这笨拙的办法能让你想到更好的思路,但一定要贴出来哦!我暂时也还想不到更加灵活的查询办法。
  数据库这样设计 表名:table id          自动编号 idno        数字           和上一级id关联 item        文本           所有项目 money       货币
 
 
  假如现在存在的数据 id          idno           item                   money 1             0            交通费用支出     7200 2             0            办公费用支出     5500 3             1            差旅费用         5200 4             1            交通津贴         2000 5             2            通讯费           2000 6             2            办公用品         3500 7             3            市内             1500 8             3            省内             2500 9             3            国内             1200 10            6            文具            1500 11            6            办公用纸        2000
 
  <% '一次性打开全部记录 set rs = Server.CreateObject("ADODB.RecordSet") sql = "select * from table" rs.open sql,conn,3,2
 
  for i=1 to 2 '无条件循环两次,让所有子节点全部更新,再更新父节点 if not rs.Bof and not rs.Eof then do until rs.Eof=0     set rs2 = Server.CreateObject("ADODB.RecordSet")     sql="select"&rs("money")&" from table where idn0="&rs("id")     rs2.open sql,conn,1,1 '每个id都检测一遍,没有选择性,这也是我自己觉得不满意的地方     all=0'记录总资金     if not rs2.Bof and not rs2.Eof then     do until rs2.Eof         all=all+rs("money")         rs.movenext     loop     rs.addnew     rs("money")=all     rs.update     rs2.close     set rs2=nothing     end if     rs.movenext loop end if next rs.close set rs=nothing %>
                                
                                
                                
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          蓝鲸 
                        职务:版主 
                        等级:5 
                        金币:42.1 
                        发贴:2614 
                        注册:2001/12/20 15:57:57 
                     | 
                    
                        
                            
                            #102006/5/24 17:19:22 
                            
                                allinhands在上个帖子中说  引用:  我凭空想象了一下,或者我没有能够理解吧.感觉不会有什么问题. 一个树行结构,录入应该没有什么难度,查询似乎也不是什么问题.不知道所说的灵活查询是灵活到什么程度
  比如查询两个不是一个级别的节点的总和? 
   如果结构正确了,可能查询也不算是问题,是一般的查询 比如2006-4-15至2006-5-8的各项支出小计、累计数等,就是要出一张统计报表,如顶楼的清单一样 我自己设计了一个结构,但由于这方面的讨论不是很多,而这种统计带有普遍性,并且稍有些难度,就先讨论一下。希望能有些高效的想法。
                                
                                
                                
                              
                            
                            非常大鱼 
                         
                     | 
                
                        
                
                    
                          蓝鲸 
                        职务:版主 
                        等级:5 
                        金币:42.1 
                        发贴:2614 
                        注册:2001/12/20 15:57:57 
                     | 
                    
                        
                            
                            #112006/5/24 17:20:56 
                            
                                Tassadar在上个帖子中说  引用:  问个问题,ASP。NET有自带的树控件么 我上次用的是第三方控件,特别不稳定。 如果没有有什么办法实现树形列表。  
   不是很有用,因为希望这个查询结构象一张报表一样,而不单单仅列出项目名称
                                
                                
                                
                              
                            
                            非常大鱼 
                         
                     | 
                
                        
                
                    
                          蓝鲸 
                        职务:版主 
                        等级:5 
                        金币:42.1 
                        发贴:2614 
                        注册:2001/12/20 15:57:57 
                     | 
                    
                        
                            
                            #122006/5/24 17:28:23 
                            
                                studyASP在上个帖子中说  引用:  我有这样的办法,不过我自己都觉得不够满意,一定还有更好的办法。 希望通过我这笨拙的办法能让你想到更好的思路,但一定要贴出来哦!我暂时也还想不到更加灵活的查询办法。
  数据库这样设计 表名:table id          自动编号 idno        数字           和上一级id关联 item        文本           所有项目 money       货币
 
 
  假如现在存在的数据 id          idno           item                   money 1             0            交通费用支出     7200 2             0            办公费用支出     5500 3             1            差旅费用         5200 4             1            交通津贴         2000 5             2            通讯费           2000 6             2            办公用品         3500 7             3            市内             1500 8             3            省内             2500 9             3            国内             1200 10            6            文具            1500 11            6            办公用纸        2000
 
  <% '一次性打开全部记录 set rs = Server.CreateObject("ADODB.RecordSet"  sql = "select * from table" rs.open sql,conn,3,2
 
  for i=1 to 2 '无条件循环两次,让所有子节点全部更新,再更新父节点 if not rs.Bof and not rs.Eof then do until rs.Eof=0     set rs2 = Server.CreateObject("ADODB.RecordSet"      sql="select"&rs("money" &" from table where idn0="&rs("id"      rs2.open sql,conn,1,1 '每个id都检测一遍,没有选择性,这也是我自己觉得不满意的地方     all=0'记录总资金     if not rs2.Bof and not rs2.Eof then     do until rs2.Eof         all=all+rs("money"          rs.movenext     loop     rs.addnew     rs("money" =all     rs.update     rs2.close     set rs2=nothing     end if     rs.movenext loop end if next rs.close set rs=nothing %> 
    表项结构和我想得差不多,用idno来自身链接 但是“交通费用支出”这项是不能输入的,这项应该是输入下属项后,统计出的结果,也就是只能输入最末端的项目(市内、省内)这些项目,有子类的项目不能直接输入。 可能我说得不是很明白 数据库结构上设置上与我原来想得差不多,谢谢 刚才的查询直接查询数据有 4 1 交通津贴 2000 5 2 通讯费 2000 7 3 市内 1500 8 3 省内 2500 9 3 国内 1200 10 6 文具 1500 11 6 办公用纸 2000 其它都不能用SQL查询出来
                                
                                
                                
                              
                            
                            非常大鱼 
                         
                     | 
                
                        
                
                    
                          studyASP 
                        职务:普通成员 
                        等级:1 
                        金币:0.0 
                        发贴:44 
                        注册:2006/5/9 20:48:30 
                     | 
                    
                        
                            
                            #132006/5/24 17:29:11 
                            
                                哦 ,晕了 没注意还需要按时间查询   
                                
                                
                                
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          studyASP 
                        职务:普通成员 
                        等级:1 
                        金币:0.0 
                        发贴:44 
                        注册:2006/5/9 20:48:30 
                     | 
                    
                        
                            
                            #142006/5/24 17:33:52 
                            
                                不用谢的 你帮助了这么多人的困难 我这点不算什么 而且  我都还没帮上你忙呢
  
                                
                                
                                
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          yiliaocheng 
                        职务:普通成员 
                        等级:2 
                        金币:2.0 
                        发贴:631 
                        注册:2005/12/29 19:33:15 
                     | 
                    
                        
                            
                            #152006/5/24 17:43:46 
                            
                                我只说下查询方面。数据表设计成年、月、日三个字段,查询的时候可以按年月日查询,也可以按日期查询(要求日期输入格式为2006-05-01,然后分割成三个数字查询),还可以查询指定天数内等。
                                
                                
                                
                             
                            
                            
                         
                     |