| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1223 人关注过本帖
标题:请教怎样按季度汇总报表
只看楼主 加入收藏
susu12345
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2008-3-12
收藏
 问题点数:0 回复次数:1 
请教怎样按季度汇总报表
各位高手:
   我编写的按季度汇总报表的程序中,是按照"表名+年度+季度"的方法来选定各季报表的,不知为什么,在表单中运行汇总程序后,再重新选定季度值后,出来的还是原来第一次汇总出来的那个季度的值,不能更换季度,我修改多次,依然如旧,绞尽脑汁又搜索枯肠,奈何肚里无货,依然百思不得其解,现将主要程序抄写如下,请高手指点迷津,不胜感谢!
    程序是在表单用于季度选择和汇总的Combol中的Click过程中:
thisform.grid1.readonly=.t.
din=alltrim(this.value)
s=nf+'年工业分类取水汇总 __'+din
thisform.caption=s
jd1=iif(din='一季度','1',iif(din='二季度','2',iif(din='三季度','3','4')))

IF jd1>jd
  messagebox('别着急,您所选季度尚未到来,请重新选择!',48,'')
   .F.
   .F.
  RETURN
endif
.t.
fl='fl'+nf+jd1
flh='flh'+nf+jd1
flhz='flhz'+nf+jd1
if not file('&fl..dbf')
    messagebox('分类数据尚未输入!',48,'')
    .F.
    return
endif
shen5='shen5'+nf+jd1
use shen5k
copy to &shen5
use &shen5 alias sb5     &&以别名打开省表五
select 0
fl='fl'+nf+jd1
use &fl alias fls             &&以别名打开分类表
index on cod tag cod   &&为当前数据库按索引关键字表达式cod建立一个复合索引文件
set order to tag cod   &&将打开的索引文件设置为主索引文件,汇总分类表数据到 flhz 中
SELECT cod,count(cod) as hu,sum(value)as cz,sum(coolt+coolg+cools)as co,sum(gyt+gyg+gys)as gl,sum(bot+bog+bos)as gy,sum(cjt+cjg+cjs+dormt+dormg+dorms+infrt+infrg+infrs+elset+elseg+eslo)as el,sum(sumt)as zl,sum(sumg)as dx,sum(sums)as db,sum(resum)as cf;
FROM assf GROUP BY cod into cursor flhz
copy to &flhz
index on cod tag cod    &&按分类号cod 对flhz库建立结构化复合索引文件中的索引标记 cod
copy to &flh  &&("当前表是:flhz
USE     &&关闭flhz:
select 0                &&选择编号最小的未被使用的工作区为当前工作区
use &flh alias ff       &&以别名ff打开工作表.当前表是ff
select 0                &&选择编号最小的未被使用的工作区为当前工作区
SELECT sb5
update on cod from ff;        &&以别名库(汇总表)中的内容更新当前库
replace hu with ff.hu,zl with ff.zl,dx with ff.dx,db with ff.db,co with ff.co;
gy with ff.gy,gl with ff.gl,el with ff.el,cz with ff.cz,cf with ff.cf
replace all ben with zl+dx+db
if jd1='1'
     replace all ad with ben,adf with cf,adc with cz   &&如为一季度,累计值等于本季值
     sh500='shen5'+ str(val(nf+jd1)-10,5)  &&去年同期的工作表
     select 0
     use &sh500 alias sb510                 &&打开去年同期的工作表
     select sb5
     set relation to recno() into sb510   && 和去年同期的表建立关联
     ** &&计算去年同期的工业取水、万元工业产值取水和工业用水重复利用率
     replace all qt with sb510.ad,qv with sb510.adv,qfl with sb510.cfl
     go top
     scan for cz<>0                     &&按条件扫描每条记录,替换原有记录,(如果工业产值cz不等于0)
        replace uv with ben/cz          &&计算万元工业产值取水量
        loop
     endscan
     go top
     scan for adc<>0                     &&按条件扫描每条记录,替换原有记录
        replace adv with ad/adc        &&计算累计万元工业产值取水量
     loop
     endscan   
     go top
     scan for ad<>0                         &&按条件扫描每条记录(如果工业累计取水ad不等于0)
         replace cfl with adf/(adf+ad)*100   &&计算重复利用率
     loop
     endscan
else
     sh50='shen5'+ str(val(nf+jd1)-1,5)    &&上个季度的工作表
     sh500='shen5'+ str(val(nf+jd1)-10,5)  &&去年同期的工作表
     select 0
     use &sh500 alias sb510               &&打开去年同期的工作
     select 0
     use &sh50 alias sb51                 &&打开上个季度的工作表
     select c
     select sb5
     set relation to recno() into sb51       &&和上季度表建立关联
     set relation to recno() into sb510 addi && 和去年同期的表建立关联
     replace all qt with sb510.ad,qv with sb510.adv,qfl with sb510.cfl&&计算各项去年同期值
     replace all ad with sb51.ad+ben,adf with sb51.adf+cf,adc with sb51.adc+cz   && 将上月累计值和本季值相加,计算各项累计值
     go top
     scan for cz<>0                     &&按条件扫描每条记录,替换原有记录
         replace uv with ben/cz         &&计算万元工业产值取水量
     loop
     endscan
     go top
     scan for adc<>0                     &&按条件扫描每条记录,替换原有记录
         replace adv with ad/adc        &&计算累计万元工业产值取水量
     loop
     endscan
     go top
     scan for ad<>0                         &&按条件扫描每条记录
         replace cfl with adf/(adf+ad)*100    &&计算重复利用率
     loop
     endscan
endif
ffile=shen5
use &shen5
copy to shen5
use   
if jd1='1'
  select ff
  use
  select sb510
  use
  SELECT fls
  use
  select assf
  use
  
else
  select ff
  use
  select sb510
  use
  select sb51
  use
  SELECT fls
  use
  select assf
  use
endif
thisform.grid1.recordsourcetype=0&&自动打开RecordSource属性设置中规定的表
thisform.grid1.recordsource="shen5"         &&赋数据源
messagebox(jd1+'季度省表五已汇总!',64,'')
this.Visible=.f.


use
搜索更多相关主题的帖子: 季度 汇总 
2008-06-27 17:06
烤野猪
Rank: 1
来 自:绍兴
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-6-25
收藏
得分:0 

奋斗吧,呵呵
2008-06-27 18:15
快速回复:请教怎样按季度汇总报表
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024915 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved