| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 675 人关注过本帖
标题:一个出错的程序 等大家给我看看。
只看楼主 加入收藏
antine
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-9-11
收藏
 问题点数:0 回复次数:4 
一个出错的程序 等大家给我看看。

大家好,我手头有个程序,每次运行都出错。到现在还没法解决,我知道这里高手多。希望大家给我看下。本来这段代码是在另一个form下的一个command的click事件。我把他放到了 新的form里的一个command下的 click事件,就出错了 说是 数据类型 出错==。但是每次清空jfmxb 之后再点击 就能运行 但是要是jfmxb里有数据 再点击 就出错了。。我弄了好久都不行。。。郁闷死了。。。。。



代码如下:


note:变量表
&&dwbh:单位编号;ssnd:所属年度;dwmc:单位名称;jlgs:记录个数

priv xx
bh=int(val(thisform.container1.text1.value))
dwmc=alltrim(thisform.container1.combo1.value)
ssnd=alltrim(thisform.container2.combo1.value)
sele jfmxb
xx='正在检索'+dwmc+ssnd+'年度的历史缴费明细表,请等候......'
wait windows xx noclea nowait at srow()/2,(scol()-len(xx))/2
count all for 编号=dwbh.and.所属年度=ssnd to jlgs
if jlgs>0
mes=messagebox('系统检索到'+alltrim(str(jlgs))+'条缴费记录,你还要生成吗?'+chr(13)+'点击确定直接预览,点击取消重新'+;
'生成历史缴费记录后再打印。',33,'是否直接打印')
if mes=1
sele jfmxbgd
zap
append from jfmxb for 所属年度=ssnd .and. 编号=dwbh
wait clea

retu
endif
endif

xx='正在生成'+dwmc+ssnd+'年度的历史缴费明细表,请等候......'
wait windows xx noclea nowait at srow()/2,(scol()-len(xx))/2
sele jfmxbgd
zap
sele lsjfgd
zap
append from lsjf for str(编号)=str(dwbh)
dele all for empty(姓名)
pack
go top
ryxm=alltrim(姓名)
rybh=alltrim(人员编号)

do while .not. eof()

xh=1
do while xh<=17
if xh=1
nd=year(参保时间) &&nd_年度
yf=month(参保时间) &&yf_月份
else
sd='lsjfgd.时点'+alltrim(str(xh-1)) &&sd:时点
nd=year(&sd)
yf=month(&sd)
if yf=12
nd=nd+1
yf=1
else
yf=yf+1
endif
endif

hsd='lsjfgd.时点'+alltrim(str(xh)) &&hsd:后时点,如果后一时点为空,则退出循环.
if empty(&hsd)
exit
endif

do while ctod(alltrim(str(nd))+'.'+alltrim(str(yf))+'.'+'01')<&hsd
sele jfmxbgd
loca all for alltrim(所属年度)+alltrim(姓名)+alltrim(人员编号)=alltrim(str(nd))+alltrim(lsjfgd.姓名)+;
alltrim(lsjfgd.人员编号)
if .not. found()
append blank
go bott
repl 所属年度 with alltrim(str(nd))
repl 编号 with lsjfgd.编号
repl 单位名称 with alltrim(lsjfgd.单位名称)
repl 人员编号 with alltrim(lsjfgd.人员编号)
repl 姓名 with alltrim(lsjfgd.姓名)
repl 性别 with lsjfgd.性别
repl 参保时间 with lsjfgd.参保时间
repl 截止时间 with lsjfgd.截止时间
repl 出生年月 with lsjfgd.出生年月
repl 人员性质 with lsjfgd.人员性质
repl 文化程度 with lsjfgd.文化程度
repl 工作时间 with lsjfgd.工作时间
endif
jishu='基数'+alltrim(str(yf))
gejiao='个缴'+alltrim(str(yf))
fdjs='lsjfgd.基数'+alltrim(str(xh))
fdgj='lsjfgd.个缴'+alltrim(str(xh))
repl &jishu with &fdjs
repl &gejiao with &fdgj
if yf<12
yf=yf+1
else
yf=1
nd=nd+1
repl 个缴总计 with (个缴1+个缴2+个缴3+个缴4+个缴5+个缴6+个缴7+个缴8+个缴9+个缴10+个缴11+个缴12)
endif

enddo

xh=xh+1

enddo

sele lsjfgd
xx='正在生成'+dwmc+ssnd+'年度的历史缴费明细表,已完成'+alltrim(str(recno()/reccount()*100))+'%'+'请等候......'
wait windows xx noclea nowait at srow()/2,(scol()-len(xx))/2

skip
enddo
xx='正在保存当前的数据信息...'
wait windows xx noclea nowait at srow()/2,(scol()-len(xx))/2
sele jfmxb
loca all for 编号=dwbh
if found()
dele all for 编号=dwbh
pack
endif
APPEND FROM JFMXBGD
wait clea
SELE JFMXBGD
dele all for alltrim(所属年度)<>ssnd
pack
wait clea
=messagebox('当前单位的缴费明细表已经生成。',64,'成功生成缴费明细表')
retu


高手帮忙啊!!!!!!!!!!!!!!

搜索更多相关主题的帖子: 单位 command 记录 
2006-09-21 15:26
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
每次出错的时候,点击"挂起",就知道哪句错了。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-09-22 00:18
vfp_yang
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-5
收藏
得分:0 
虎哥言之有理,你还是把哪一句有问题拿出来问吧!

用VFP的人还有许多,所以永远不可能退出历史舞台!深度痴迷于VFP。
2006-09-22 20:22
antine
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-9-11
收藏
得分:0 

点了啊 ,多出现在 bh=int(val(thisform.container1.text1.value))
这句,loca all for 编号=dwbh
有时出现在这,不一定。。说是数据类型不对。。可是我看不出来哪错了啊。。

2006-09-24 09:26
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
查看你的数据类型是否相符,看看你的TEXT是什么类型的

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-09-24 12:47
快速回复:一个出错的程序 等大家给我看看。
数据加载中...
 
   



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

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