主题:提取字符串问题,,,严重!!!
			
 绝缘子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
 有问题吗??
							 
									
			
我来回复