标题:再求帮忙,先谢谢!
只看楼主
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用bdx808在2022-7-8 07:57:06的发言:

都是牛人啊,版主的更简练、更难学会,多谢了!

CREATE CURSOR tt (xh n(2), xm c(4))
FOR ln1 = 1 TO 2  && 循环2次,生成1~15,16~30行的记录,序号分别是1~15,1~15
    FOR ln2 = 1 TO 15
        INSERT INTO tt VALUES (ln2, "")
    ENDFOR
ENDFOR
INSERT INTO tt VALUES (1, "") && 生成31行记录
INSERT INTO tt VALUES (2, "") && 生成32行记录
REPLACE xm WITH ICASE(xh%3 = 1, "昨天", xh%3 = 2, "今天", "明天") ALL && 这个用的妙,对XH取余,余数=1,对于是昨天,余数=2,对于是今天,余数=0,对应是明天
BROWSE
2022-07-08 08:47
a57598587
Rank: 2
等 级:论坛游民
威 望:4
帖 子:29
专家分:29
注 册:2022-1-24
得分:0 
REPLACE xm WITH ICASE(xh%3 = 1, "昨天", xh%3 = 2, "今天", "明天") ALL   
大侠这句用的好   同理似乎 以15整除也可以  

太好了  


[此贴子已经被作者于2022-7-8 11:42编辑过]

2022-07-08 11:41
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用bdx808在2022-7-7 18:47:43的发言:

见笑了真的不会了

不要急,基本的先练练,如:创建表、添加记录、修改记录、查找数据......
本问题基本数据就是3条记录,其余的就是复制
程序代码:
CREATE CURSOR tb (xh n(4), xm c(8))
CREATE CURSOR tmp (xh n(4), xm c(8))
INSERT INTO tmp VALUES (0, "昨天")
INSERT INTO tmp VALUES (0, "今天")
INSERT INTO tmp VALUES (0, "明天")
SELECT tb
FOR i=1 TO 5
    APPEND FROM DBF("tmp")
ENDFOR
REPLACE ALL xh WITH RECNO()
SELECT * FROM tb
2022-07-08 11:47
aqyejun
Rank: 3Rank: 3
等 级:论坛游民
威 望:9
帖 子:121
专家分:99
注 册:2010-6-11
得分:0 
ICASE()这是VFP9.0的函数,VFP6.0没有!

[此贴子已经被作者于2022-7-8 15:49编辑过]


【独叶为舟】工作室
2022-07-08 15:39
a57598587
Rank: 2
等 级:论坛游民
威 望:4
帖 子:29
专家分:29
注 册:2022-1-24
得分:0 
献丑了,借用前面大侠的经验,一句命令回答题目任务

CREATE CURSOR tt (xh n(2), xm c(4))
FOR k = 1 TO 50
     INSERT INTO tt (xh,xm) VALUES (k, "姓名")
ENDFOR
&&=====================准备记录数据

REPLACE xh WITH xh%15, xm WITH ICASE(xh%3 = 1, "昨天", xh%3 = 2, "今天", "明天") ALL
&&此 一句命令完成题目任务
REPLACE xh WITH RECNO()%15, xm WITH ICASE(xh%3 = 1, "昨天", xh%3 = 2, "今天", "明天")  ALL
&&也可以用这句命令,更严谨符合要求
REPLACE xh WITH  15 FOR xh=0 all    &&此句对 0 加以修正或合并的前一个命令中

BROWSE

[此贴子已经被作者于2022-7-8 16:22编辑过]

2022-07-08 16:13
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 15楼 a57598587
看LZ提供图片显示的数据,xh不是顺序的,是1--15的重复
2022-07-08 16:16
a57598587
Rank: 2
等 级:论坛游民
威 望:4
帖 子:29
专家分:29
注 册:2022-1-24
得分:0 
CREATE CURSOR tt (xh n(2), xm c(4))
FOR k = 1 TO 50
     INSERT INTO tt (xh,xm) VALUES (k, "姓名")
ENDFOR
&&=====================准备记录数据


REPLACE xh WITH  ICASE(RECNO()%15=0,15,RECNO()%15<>0,RECNO()%15) , xm WITH ICASE(xh%3 = 1, "昨天", xh%3 = 2, "今天", "明天")  all
&&也可以用这句命令
BROWSE
2022-07-08 16:29
a57598587
Rank: 2
等 级:论坛游民
威 望:4
帖 子:29
专家分:29
注 册:2022-1-24
得分:0 
回复 16楼 吹水佬
惭愧  谢谢

我是从你的程序中学到的思路  谢谢
2022-07-08 16:30
a57598587
Rank: 2
等 级:论坛游民
威 望:4
帖 子:29
专家分:29
注 册:2022-1-24
得分:0 
有一表tb,字段为xh(n,4)、xm(c,8),有若干行记录,现在想把1-15个数字从小到大依次从第一行开始赋给xh,把‘昨天、今天、明天’依次赋给xm,如附件图示

原本有若干条记录   不知几条
问题1、现在想把1-15个数字从小到大依次从第一行开始赋给xh,
问题2、把‘昨天、今天、明天’依次赋给xm


我以记录号为依据使用大侠提供的函数完成问题1和2

REPLACE xh WITH  ICASE(RECNO()%15=0,15,RECNO()%15<>0,RECNO()%15) , xm WITH ICASE(xh%3 = 1, "昨天", xh%3 = 2, "今天", "明天")  all


[此贴子已经被作者于2022-7-8 16:35编辑过]

2022-07-08 16:33
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 19楼 a57598587
看图片应该是这意思:
程序代码:
CREATE CURSOR tmp (xh n(4), xm c(8))
FOR i=1 TO 5
    INSERT INTO tmp VALUES (0, "昨天")
    INSERT INTO tmp VALUES (0, "今天")
    INSERT INTO tmp VALUES (0, "明天")
ENDFOR
REPLACE ALL xh WITH RECNO()
n = 2
CREATE CURSOR tb (xh n(4), xm c(8))
FOR i=1 TO n
    APPEND FROM DBF("tmp")
ENDFOR
SELECT * FROM tb

2022-07-08 16:41



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




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

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