| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1059 人关注过本帖
标题:还是那个老问题,没弄明白
取消只看楼主 加入收藏
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:13 
还是那个老问题,没弄明白
设置一个变量,iserror,然后判断两者是否正确。
**1、判断人员表中是否有已导入人员***************************
iserror=.f.&&初始值
SELECT * from ry_temp where !EMPTY(bz) OR ry_temp.sfzh in(select sfzh FROM ry)  INTO CURSOR aaaa
SELECT aaaa
a=RECCOUNT()
dwmc=aaaa.dwmc
IF a!=0
   COPY TO &dwmc. FIELDS dwbh,dwmc,ryxm,sfzh,bz SDF
    MESSAGEBOX("身份证号有错误或数据重复,数据已导出!位置在:"+(Mymllj),0+48,"居民医保警告")
   
    RETURN
else
iserror=.t.&&&&无错误,则改变

ENDIF  
**2、判断临时表中是否有录入重复人员****
SELECT * from ry_temp where  ry_temp.sfzh in(select sfzh FROM ry_temp group by ry_temp.sfzh HAVING COUNT(ry_temp.sfzh)>1) INTO CURSOR ccc
SELECT ccc
b=RECCOUNT()
dwmc=ccc.dwmc
IF b!=0
   COPY TO &dwmc. FIELDS dwbh,dwmc,ryxm,sfzh SDF
    MESSAGEBOX("单位内部身份证号重复,数据已导出!位置在:"+(Mymllj),0+48,"居民医保警告")
   
  RETURN
else
iserror=.t.&&&&无错误,则改变
ENDIF
**3、以上如都果正确则可导入***********
if iserror=.t.&&&&无错误,则导入
MESSAGEBOX("数据可以导入!",1+48,"居民医保管理系统")
  

endif
以上解决方法不能满足我的判断
要的是四个判断:
1、判断**1有错误,则拷贝出,继续判断**2有错误,则拷贝出,提示:身份证号有错误或数据重复/单位内部身份证号重复,程序停止。
2、判断**1有错误,则拷贝出,继续判断**2无错误,提示:身份证号有错误或数据重复,程序停止。
3、判断**1无错误,继续判断**2有错误,则拷贝出,提示:单位内部身份证号重复,程序停止。
4、判断**1无错误,继续判断**2无错误,由运行**3

[ 本帖最后由 shyibaoban 于 2012-12-15 15:51 编辑 ]
搜索更多相关主题的帖子: aaaaa 身份证号 居民医保 人员 
2012-12-15 15:49
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
收藏
得分:0 
我的这个程序对表有两次判断。程序能用,只是第一有错就停止了,第二没错还好,要是有错,还要进行二次判断。造成时间上的浪费。我只是要求把1、2、在一个判断中,是还可行。
2012-12-15 15:58
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
收藏
得分:0 
人员表和临时表对比,身份证号是否有重复。我就是用的SQL来做的。我的说明中应该很明白了吧
2012-12-15 16:01
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
收藏
得分:0 
**1、判断人员表中是否有已导入人员***************************
**判断临时表ry_temp中身份证在人员表中ry是否已存在
SELECT * from ry_temp where !EMPTY(bz) OR ry_temp.sfzh in(select sfzh FROM ry)  INTO CURSOR aaaa
SELECT aaaa
a=RECCOUNT()
dwmc=aaaa.dwmc
IF a!=0
   COPY TO &dwmc. FIELDS dwbh,dwmc,ryxm,sfzh,bz SDF
    MESSAGEBOX("身份证号有错误或数据重复,数据已导出!位置在:"+(Mymllj),0+48,"居民医保警告")
   
    RETURN **这个地方最好能不停止运行继续判断下面
ENDIF  
**2、判断临时表中是否有录入重复人员****
***判断临时表自身是否有重复录入人员,身份证是否重复
SELECT * from ry_temp where  ry_temp.sfzh in(select sfzh FROM ry_temp group by ry_temp.sfzh HAVING COUNT(ry_temp.sfzh)>1) INTO CURSOR ccc
SELECT ccc
b=RECCOUNT()
dwmc=ccc.dwmc
IF b!=0
   COPY TO &dwmc. FIELDS dwbh,dwmc,ryxm,sfzh SDF
    MESSAGEBOX("单位内部身份证号重复,数据已导出!位置在:"+(Mymllj),0+48,"居民医保警告")
   
  RETURN
ENDIF
***以上两条最好在一个判断中,最后说明中的情况
**3、以上如都果正确则可导入***********
MESSAGEBOX("数据可以导入!",1+48,"居民医保管理系统")
  

最好是满足以下
要的是四个判断:
1、判断**1有错误,则拷贝出,继续判断**2有错误,则拷贝出,提示:身份证号有错误或数据重复/单位内部身份证号重复,程序停止。
2、判断**1有错误,则拷贝出,继续判断**2无错误,提示:身份证号有错误或数据重复,程序停止。
3、判断**1无错误,继续判断**2有错误,则拷贝出,提示:单位内部身份证号重复,程序停止。
4、判断**1无错误,继续判断**2无错误,由运行**3
2012-12-15 16:08
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
收藏
得分:0 
回复 7楼 sdta
ry_temp.rar (357.8 KB)
2012-12-15 16:14
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
收藏
得分:0 
我的程序是这样的,先导入临时表中,在临时表中判断,无误后导入人员表中。判断的程序在上边。要求就是说明中的四条:要的是四个判断:
1、判断**1有错误,则拷贝出,继续判断**2有错误,则拷贝出,提示:身份证号有错误或数据重复/单位内部身份证号重复,程序停止。
2、判断**1有错误,则拷贝出,继续判断**2无错误,提示:身份证号有错误或数据重复,程序停止。
3、判断**1无错误,继续判断**2有错误,则拷贝出,提示:单位内部身份证号重复,程序停止。
4、判断**1无错误,继续判断**2无错误,由运行**3
2012-12-15 16:16
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
收藏
得分:0 
回复 10楼 月沐庭轩
老师好:你给的程序是不是前三种情况时,程序不再运行了?
2012-12-15 16:20
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
收藏
得分:0 
回复 13楼 月沐庭轩
还有一个情况,就是我把错误的信息拷出来,两个表的表名是一个了,里边的错误信息只能是一个了吧
2012-12-15 16:34
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
收藏
得分:0 
回复 14楼 sdta
谢谢你的回答,判断我会,只是不会把我说明中四种情况综合起来。
2012-12-15 16:35
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
收藏
得分:0 
**1、判断人员表中是否有已导入人员***************************
**判断临时表ry_temp中身份证在人员表中ry是否已存在
SELECT * from ry_temp where !EMPTY(bz) OR ry_temp.sfzh in(select sfzh FROM ry)  INTO CURSOR aaaa
SELECT aaaa
a=RECCOUNT()
dwmc=aaaa.dwmc
IF a!=0
   COPY TO &dwmc. FIELDS dwbh,dwmc,ryxm,sfzh,bz SDF  &&这个地方和下边的&dwmc.导出表同名
    MESSAGEBOX("身份证号有错误或数据重复,数据已导出!位置在:"+(Mymllj),0+48,"居民医保警告")
   
    RETURN **这个地方最好能不停止运行继续判断下面
ENDIF  
**2、判断临时表中是否有录入重复人员****
***判断临时表自身是否有重复录入人员,身份证是否重复
SELECT * from ry_temp where  ry_temp.sfzh in(select sfzh FROM ry_temp group by ry_temp.sfzh HAVING COUNT(ry_temp.sfzh)>1) INTO CURSOR ccc
SELECT ccc
b=RECCOUNT()
dwmc=ccc.dwmc
IF b!=0
   COPY TO &dwmc. FIELDS dwbh,dwmc,ryxm,sfzh SDF  &&如何让它加上别的符号?
    MESSAGEBOX("单位内部身份证号重复,数据已导出!位置在:"+(Mymllj),0+48,"居民医保警告")
   
  RETURN
ENDIF
***以上两条最好在一个判断中,最后说明中的情况
**3、以上如都果正确则可导入***********
MESSAGEBOX("数据可以导入!",1+48,"居民医保管理系统")
  

最好是满足以下
要的是四个判断:
1、判断**1有错误,则拷贝出,继续判断**2有错误,则拷贝出,提示:身份证号有错误或数据重复/单位内部身份证号重复,程序停止。
2、判断**1有错误,则拷贝出,继续判断**2无错误,提示:身份证号有错误或数据重复,程序停止。
3、判断**1无错误,继续判断**2有错误,则拷贝出,提示:单位内部身份证号重复,程序停止。
4、判断**1无错误,继续判断**2无错误,由运行**3
2012-12-15 16:38
快速回复:还是那个老问题,没弄明白
数据加载中...
 
   



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

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