| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3293 人关注过本帖
标题:如何取得第J个字段的值?
只看楼主 加入收藏
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
USE 表1
FOR j=1 TO 12
    x=FIELD(j)
    xj=FIELD(j+1)
    IF &x>1500
        UPDATE 表2 SET X2=&X,X3=&Xj
    ENDIF
NEXT

[ 本帖最后由 qjbzjp 于 2013-10-1 11:21 编辑 ]

相互学习,互相交流,共同提高。
2013-10-01 10:28
CHB123
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:100
专家分:68
注 册:2012-7-2
收藏
得分:0 
谢谢各位的热心帮助!我回去试试。顺祝各位十一节日快乐!
2013-10-01 11:08
CHB123
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:100
专家分:68
注 册:2012-7-2
收藏
得分:0 
以下是引用hu9jj在2013-10-1 08:17:12的发言:

要取字段的值,试试:
cZdm="X"+str(j)    &&要注意消除str(j)的前后空格,并注意字段名是否存在前导0,如X001、X002
if VAL(&cZdm)>1500
字段名中不存在前导"0",是X1不是X001.

[ 本帖最后由 CHB123 于 2013-10-2 13:57 编辑 ]
2013-10-01 11:10
CHB123
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:100
专家分:68
注 册:2012-7-2
收藏
得分:0 
以下是引用hu9jj在2013-10-1 08:27:03的发言:

要注意首先要确定字段名的组成是否正确,然后通过宏替换获得字段的值,再进行转换。
直接使用val("X'+str(j))表达式,只能对“X1”、“X2”...等字符串进行转换,由于VAL函数遇到非数字就结束转换,你的字符串第一个字符就不是数字,所以结果恒等于0。
说得对,这一点太重要了.
2013-10-01 11:18
CHB123
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:100
专家分:68
注 册:2012-7-2
收藏
得分:0 
以下是引用qjbzjp在2013-10-1 10:28:54的发言:

USE 表1
FOR j=1 TO 12
    x=FIELD(j)
    xj=FIELD(j+1)
    IF &x>1500
        UPDATE 表2 SET X2=&X,X3=&Xj
    ENDIF
NEXT
更新的仍然是空白记录。可是?&X是有值的呀。
2013-10-01 14:52
CHB123
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:100
专家分:68
注 册:2012-7-2
收藏
得分:0 
上传一个附件,请大家抽出宝贵时间帮帮我!
新建文件夹.rar (3.71 KB)


[ 本帖最后由 CHB123 于 2013-10-2 14:05 编辑 ]
2013-10-01 14:54
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9813
专家分:27037
注 册:2012-2-5
收藏
得分:0 
以下是引用CHB123在2013-10-1 14:54:47的发言:

上传一个附件,请大家抽出宝贵时间帮帮我!
说明需要解决的问题

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

坚守VFP最后的阵地
2013-10-01 15:38
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
回复 36楼 CHB123
没怎么弄明白
只弄一个更新X5列的,不知是不是这样
程序代码:
CLOSE TABLES
USE 打卡时间表1
SCAN
SELECT 打卡时间表1
nsj=日期
ngh=工号
UPDATE 打卡时间表2 SET X5=打卡时间表1.X5 WHERE (日期=nsj AND 工号=ngh) AND VAL(打卡时间表1.X5)>1500
ends



[ 本帖最后由 tlliqi 于 2013-10-1 15:50 编辑 ]
2013-10-01 15:42
CHB123
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:100
专家分:68
注 册:2012-7-2
收藏
得分:0 
标准上班时间:
上午7:30,11:30
下午13:30,17:30
加班18:00,21:00
打卡时间各不同,想导入到标准表中。上班时间是上班时间,下班时间是下班时间。用于计算考勤和工资。
打卡:有重复打卡的。有少打卡的。我想只有从第一个字段开始比较,才能正确导入到标准表中。

[ 本帖最后由 CHB123 于 2013-10-1 16:12 编辑 ]
2013-10-01 16:01
CHB123
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:100
专家分:68
注 册:2012-7-2
收藏
得分:0 
以下是引用tlliqi在2013-10-1 15:42:19的发言:

没怎么弄明白
只弄一个更新X5列的,不知是不是这样CLOSE TABLES
USE 打卡时间表1
SCAN
SELECT 打卡时间表1
nsj=日期
ngh=工号
UPDATE 打卡时间表2 SET X5=打卡时间表1.X5 WHERE (日期=nsj AND 工号=ngh) AND VAL(打卡时间表1.X5)>1500
ends
X5应该是加班上班时间,从导入的情况看,里面还有21:00,是加班下班时间。
2013-10-01 16:05
快速回复:如何取得第J个字段的值?
数据加载中...
 
   



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

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