| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3293 人关注过本帖
标题:如何取得第J个字段的值?
只看楼主 加入收藏
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
以下是引用CHB123在2013-10-1 11:10:58的发言:

字段名中不存在前导"0",是X1不是X001.
也还要注意清除前后的空格。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-10-02 07:20
CHB123
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:100
专家分:68
注 册:2012-7-2
收藏
得分:0 
谢谢各位的热心帮助。S版那么晚了还在操心,真是过意不去!我回去试试。
2013-10-02 09:28
潇洒人间一剑仙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:140
专家分:48
注 册:2008-9-19
收藏
得分:0 
用宏替换也行吧,&fileld(j).
2013-10-02 11:30
CHB123
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:100
专家分:68
注 册:2012-7-2
收藏
得分:0 
宏替换,试过了。更新的全部是空白记录。说也怪,明明有值,却是更新不了。

[ 本帖最后由 CHB123 于 2013-10-2 13:52 编辑 ]
2013-10-02 13:21
CHB123
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:100
专家分:68
注 册:2012-7-2
收藏
得分:0 
以下是引用sdta在2013-10-1 23:28:39的发言:

* VFP9.0 代码,只弄了一个X1字段的检查,其余的按X1字段的检查条件改写代码吧
SELECT *,SPACE(4) Y1,SPACE(4) Y2,SPACE(4) Y3,SPACE(4) Y4,SPACE(4) Y5,SPACE(4) Y6 FROM 打卡时间表1 ;
INTO CURSOR T3 READWRITE
REPLACE ALL Y1 WITH NVL(ICASE(X1>'1130' AND X1=[],[],X1='1130',X1,X1
此法,有多少种打卡方式就有多少条REPLCE ALL,得几十种打卡方式吧。
穷举不是好办法。最开始我也是这样,但最后还是没能成功。前面X1、X2、X3能顺利通过,而X4、X5、X6总也搞不了。
不过用NVL()这样在速度上快很多。
2013-10-02 13:28
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用CHB123在2013-10-2 13:28:38的发言:

此法,有多少种打卡方式就有多少条REPLCE ALL,得几十种打卡方式吧。
穷举不是好办法。最开始我也是这样,但最后还是没能成功。前面X1、X2、X3能顺利通过,而X4、X5、X6总也搞不了。
不过用NVL()这样在速度上快很多。
该代码的关键在于ICASE()的应用,根据VFP帮助文件中的规定,其中可以加100对参数,也就是说,可以在ICASE()中设置100个条件,一个字段的检查方法有100种吗
X4,X5,X6没通过的原因在于条件的设定出现问题。
核心代码只要6行,就能解决问题
REPLACE ALL Y1 WITH NVL(ICASE(.......))
REPLACE ALL Y2 WITH NVL(ICASE(.......))
REPLACE ALL Y3 WITH NVL(ICASE(.......))
REPLACE ALL Y4 WITH NVL(ICASE(.......))
REPLACE ALL Y5 WITH NVL(ICASE(.......))
REPLACE ALL Y6 WITH NVL(ICASE(.......))

在目前情况下,不用穷举的方法,你还有更好的方法吗
下午上班时间竞然能保存在上午上班时间内,说明程序设置的不严谨。

[ 本帖最后由 sdta 于 2013-10-2 15:24 编辑 ]

坚守VFP最后的阵地
2013-10-02 15:10
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 65楼 CHB123
REPLACE ALL Y4 WITH NVL(ICASE(EMPTY(X6) AND NOT EMPTY(X5) AND NOT EMPTY(Y1),X5,EMPTY(X5),X4,NOT EMPTY(X6) AND NOT EMPTY(X5),X4,EMPTY(Y1) AND EMPTY(Y2),X3),[])
REPLACE ALL Y5 WITH NVL(ICASE(NOT EMPTY(X6),X5,EMPTY(Y1) AND EMPTY(Y2),X4),[])
REPLACE ALL Y6 WITH NVL(ICASE(EMPTY(Y1) AND EMPTY(Y2),X5,X6),[])
上面的代码是X4,X5,X6字段内容的纠错代码。这也是没有办法的办法。
数据错误还是有规律的,根据规律纠正错误就行了。

坚守VFP最后的阵地
2013-10-02 15:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2013-10-02 15:58
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
范绪英20130619下午没有上班时间,下班时打卡,此种类型的错误,你看如何处理。

坚守VFP最后的阵地
2013-10-02 16:02
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
REPLACE ALL Y4 WITH NVL(ICASE(EMPTY(X6) AND NOT EMPTY(X5) AND NOT EMPTY(Y1),X5,EMPTY(X5) AND NOT EMPTY(X4),X4,NOT EMPTY(X6) AND NOT EMPTY(X5),X4,EMPTY(Y1) AND EMPTY(Y2),X3,EMPTY(X4) AND NOT EMPTY(X3) AND X3>'1730',X3),[])
更改Y4字段代码



图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2013-10-02 16:18
快速回复:如何取得第J个字段的值?
数据加载中...
 
   



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

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