主题:提取字符串问题,,,严重!!!
绝缘子2009
[专家分:50] 发布于 2009-07-01 23:28:00
图1的表单上面的零件清单号应该提取图2用红色填充的数据的最小至最大的数字
即:1~8(填充到图2第一行)9~14(填充到图2第二行)
如何实现这个功能??
最后更新于:2009-07-10 15:19:00
回复列表 (共8个回复)
沙发
琅拿度 [专家分:2820] 发布于 2009-07-02 10:23:00
我理解老前辈了,毕竟人都想得到一个结果
板凳
琅拿度 [专家分:2820] 发布于 2009-07-02 10:50:00
标题和问题,我认为都有很多疑问。
估计搞得太晚头晕了吧?
3 楼
sywzs [专家分:5650] 发布于 2009-07-02 12:28:00
把图2视为B表,图1视为A表
SELECT B表
SET FILTER TO "/"$序号
GO TOP
xh0=LEFT(序号,AT("/",序号)-1)
bh0=编号
bh1=""
DO WHILE !EOF()
IF LEFT(序号,AT("/",序号)-1)=xh0
bh1=编号
ELSE
SELECT A表
APPEND BLANK
REPLACE 编号 WITH xh0,零件清单号 WITH bh0+"~"+bh1
SELECT B表
xh0=LEFT(序号,AT("/",序号)-1)
bh0=编号
bh1=""
ENDIF
SKIP
IF EOF()
SELECT A表
APPEND BLANK
REPLACE 编号 WITH xh0,零件清单号 WITH bh0+"~"+bh1
SELECT B表
ENDIF
ENDDO
SET FILTER TO
4 楼
绝缘子2009 [专家分:50] 发布于 2009-07-08 16:35:00
经过测试,能够提取需要的编号值,但是不能找到正确的填充位置。
另外我去掉了APPEND BLANK,因为我不需要增加一行,
我想在 REPLACE 编号 WITH xh0,零件清单号 WITH bh0+"~"+bh1 FOR 发货清单.图号==abcd.图号
但是好像不行哦,我觉得这个判断条件有问题,但是我又没有好的办法!?
5 楼
绝缘子2009 [专家分:50] 发布于 2009-07-08 16:36:00
FOR 发货清单.图号==abcd.图号
是增加的条件语句,觉得有问题!~~
6 楼
绝缘子2009 [专家分:50] 发布于 2009-07-10 09:15:00
顶起来~~!
7 楼
sywzs [专家分:5650] 发布于 2009-07-10 11:40:00
SELE 发货清单
LOCATE FOR 图号==abcd.图号
IF FOUND()
REPLACE 编号 WITH xh0,零件清单号 WITH bh0+"~"+bh1
ENDIF
8 楼
绝缘子2009 [专家分:50] 发布于 2009-07-10 15:10:00
不行啊 ~~
Select abcd
Set Filter To "/"$序号 &&指定可以访问表中的哪些字段,$ 如果一个字符表达式包含于另一个字符表达式中返回真(.T.); 否则, 返回假 (.F.)。
Go Top
xh0=Left(序号,At("/",序号)-1)
bh0=编号
bh1=""
Select abcd
Do While !Eof()
If Left(序号,At("/",序号)-1)=xh0
bh1=编号
Else
Sele 发货清单
Locate For 图号==abcd.图号
If Found()
Replace 零件清单号 With Alltrim(bh0)+"~"+Alltrim(bh1)
Endif
Select abcd
xh0=Left(序号,At("/",序号)-1)
bh0=编号
bh1=""
Endif
Skip
If Eof()
Sele 发货清单
Locate For 图号==abcd.图号
If Found()
Replace 零件清单号 With Alltrim(bh0)+"~"+Alltrim(bh1)
Endif
Endif
Enddo
Set Filter To
有问题吗??
我来回复