标题:还是那个老问题,没弄明白
只看楼主
shyibaoban
Rank: 1
等 级:新手上路
帖 子:125
专家分:2
注 册:2008-12-3
结帖率:77.78%
已结贴  问题点数:20 回复次数:24 
还是那个老问题,没弄明白
设置一个变量,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
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
请楼主列出原始数据表和要导入数据的结构,两表字段之间的关系,否则代码不易看懂。

坚守VFP最后的阵地
2012-12-15 15:52
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
1、判断人员表中是否有已导入人员
两表之间判断的标准是什么
2、判断临时表中是否有录入重复人员
人员重复的依据是什么
3、以上如都果正确则可导入
正确的标准是什么

用SQL-SELECT 语句就能判断是否有已导入人员或者临时表中有重复人员录入。

坚守VFP最后的阵地
2012-12-15 15:57
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
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
最好能上传两个数据表的部分数据,只需要身份证号码字段即可,这样你的数据也不会泄密。

坚守VFP最后的阵地
2012-12-15 16:12
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
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
得分:15 
设置两个个变量,iserror1判断**1是否正确,iserror2判断**2是否正确,只有两者都正确,就执行***3.其他各种情况就是你说的前三种,都停止执行
**1、判断人员表中是否有已导入人员***************************
iserror1=.f.&&初始值
iserror2=.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
iserror1=.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
iserror2=.t.&&&&无错误,则改变
ENDIF
**3、以上如都果正确则可导入***********
if iserror1=.t. and iserror2=.t. &&&&无错误,则导入
MESSAGEBOX("数据可以导入!",1+48,"居民医保管理系统")
  

endif

坚持学习vfp,QQ:306805680
2012-12-15 16:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-391379-1-1.html




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

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