VFP中该如何在一个字段里查找某一个字符某几个字符,并且让符合条件的记录在另外一个表单上显示?

时间:2021-07-24 14:48:11
VFP中该如何在一个字段里查找某一个字符某几个字符,并且让符合条件的记录在另外一个表单上显示?

现在有个数据表,里面的字段有编号,名称,含量,合同号等等信息,比如有一条记录的编号为J01C113745,我在组合框中选择J,选择01,选择45,就能找到编号第一位是J,第二三位是01,最后两位是45的记录呢?

VFP中该如何在一个字段里查找某一个字符某几个字符,并且让符合条件的记录在另外一个表单上显示?

7 个解决方案

#1


本帖最后由 apple_8180 于 2014-08-09 15:24:58 编辑
Select * Into Cursor T1 From 表名 Where Left(编号,1)='J' And Substr(编号,2,2)='01' And Right(Rtirm(编号),2)='45'

实际应用时把'J'、'01'、'45'换成你的控件。
再通过 T1 的记录,来判断查找到的记录是1条,还是N条,还是0,来决定后面的工作

#2


CREATE CURSOR t (bh c(10))
INSERT into t values ('J01C113745')
a = 'J'
b = '01'
c = '45'
SELECT * from t where bh like a+b+'%'+c

#3


不学习,问题只会是越来越多

#4


为了实现该功能,本人写了个测试代码,但首次点击查询时会去找路径,再次点击实则提示biao1正在使用当中,不知道是什么原因,还望各位老师指点...

PUBLIC ARRAY xx[12]
SELECT  biao1
USE  E:\ss\xc\biao1
SELECT flbm1
SELECT flbm2
SELECT flbm3
SELECT flbm4
SELECT flbm5
SELECT flbm6
SELECT flbm7
SELECT flbm8
SELECT flbm9
SELECT flbm10
SELECT flbm11
SELECT flbm12
IF !EMPTY(ALLTRIM(thisform.combo1.value))
    LOCATE FOR flbm1.daimahanyi=ALLTRIM(thisform.combo1.value)
    xx1=ALLTRIM(flbm1.daima)
ELSE
    xx1="_"
ENDIF
    zfc=xx1
IF  !EMPTY(ALLTRIM(thisform.combo2.value))
     LOCATE FOR flbm2.daimahanyi=ALLTRIM(thisform.combo1.value)
     xx2=ALLTRIM(flbm2.daima)
ELSE 
     xx2="__"
ENDIF 
     zfc=zfc+xx2
FOR i=3 TO 12 
    IF   !EMPTY(ALLTRIM("thisform.combo"+ALLTRIM(STR(i))+".value"))
          LOCATE  FOR "flbm"+ALLTRIM(STR(i))+".daimahanyi"=ALLTRIM("thisform.combo"+ALLTRIM(STR(i))+".value")
          xx[i]=ALLTRIM("flbm"+ALLTRIM(STR(i))+".daima")
    ELSE 
          xx[i]="_"
    ENDIF 
    zfc=zfc+xx[i]
ENDFOR 
    select * from biao1 where UPPER(alltrim(编码号)) LIKE zfc TO SCREEN 
USE 

VFP中该如何在一个字段里查找某一个字符某几个字符,并且让符合条件的记录在另外一个表单上显示?

#5


请老师帮忙看一下,以下代码错在哪了??

LOCAL  ARRAY xx[12]
LOCAL zfc
SELECT flbm1
SELECT flbm2
SELECT flbm3
SELECT flbm4
SELECT flbm5
SELECT flbm6
SELECT flbm7
SELECT flbm8
SELECT flbm9
SELECT flbm10
SELECT flbm11
SELECT flbm12
IF !EMPTY(ALLTRIM(thisform.combo1.value))
     SELECT daima FROM flbm1 WHERE flbm1.daimahanyi=ALLTRIM(thisform.combo1.value) INTO ARRAY xx[1]   &&提示SQL语句无效
ELSE
    xx[1]="*"
ENDIF
    zfc=xx[1]
IF  !EMPTY(ALLTRIM(thisform.combo2.value))
      SELECT daima FROM flbm2 WHERE flbm2.daimahanyi=ALLTRIM(thisform.combo2.value) INTO ARRAY xx[2]   &&提示SQL语句无效
ELSE 
     xx[2]="**"
ENDIF 
     zfc=zfc+xx[2]     &&提示操作符/操作数类型不匹配
FOR i=3 TO 12
 
    IF   !EMPTY(ALLTRIM("thisform.combo"+ALLTRIM(STR(i))+".value"))
           SELECT daima FROM "flbm"+ALLTRIM(STR(i)) WHERE  "flbm"+ALLTRIM(STR(i))+".daimahanyi"=ALLTRIM("thisform.combo"+ALLTRIM(STR(i))+".value")  INTO  ARRAY xx[i]       &&提示SQL语句无效
    ELSE 
          xx[i]="*"
    ENDIF 
           zfc=zfc+xx[i]      &&提示操作符/操作数类型不匹配 VFP中该如何在一个字段里查找某一个字符某几个字符,并且让符合条件的记录在另外一个表单上显示?VFP中该如何在一个字段里查找某一个字符某几个字符,并且让符合条件的记录在另外一个表单上显示?
ENDFOR 
   select  biao1
   BROWSE FOR LIKEC(ALLTRIM(zfc),编码号)=.t.

#6


INTO ARRAY xx[1] 
这个错了,array 后面跟的是数组名, 而不是数组的某个单元, 只能是INTO ARRAY xx ,

#7


该回复于2014-08-12 09:13:22被管理员删除

#1


本帖最后由 apple_8180 于 2014-08-09 15:24:58 编辑
Select * Into Cursor T1 From 表名 Where Left(编号,1)='J' And Substr(编号,2,2)='01' And Right(Rtirm(编号),2)='45'

实际应用时把'J'、'01'、'45'换成你的控件。
再通过 T1 的记录,来判断查找到的记录是1条,还是N条,还是0,来决定后面的工作

#2


CREATE CURSOR t (bh c(10))
INSERT into t values ('J01C113745')
a = 'J'
b = '01'
c = '45'
SELECT * from t where bh like a+b+'%'+c

#3


不学习,问题只会是越来越多

#4


为了实现该功能,本人写了个测试代码,但首次点击查询时会去找路径,再次点击实则提示biao1正在使用当中,不知道是什么原因,还望各位老师指点...

PUBLIC ARRAY xx[12]
SELECT  biao1
USE  E:\ss\xc\biao1
SELECT flbm1
SELECT flbm2
SELECT flbm3
SELECT flbm4
SELECT flbm5
SELECT flbm6
SELECT flbm7
SELECT flbm8
SELECT flbm9
SELECT flbm10
SELECT flbm11
SELECT flbm12
IF !EMPTY(ALLTRIM(thisform.combo1.value))
    LOCATE FOR flbm1.daimahanyi=ALLTRIM(thisform.combo1.value)
    xx1=ALLTRIM(flbm1.daima)
ELSE
    xx1="_"
ENDIF
    zfc=xx1
IF  !EMPTY(ALLTRIM(thisform.combo2.value))
     LOCATE FOR flbm2.daimahanyi=ALLTRIM(thisform.combo1.value)
     xx2=ALLTRIM(flbm2.daima)
ELSE 
     xx2="__"
ENDIF 
     zfc=zfc+xx2
FOR i=3 TO 12 
    IF   !EMPTY(ALLTRIM("thisform.combo"+ALLTRIM(STR(i))+".value"))
          LOCATE  FOR "flbm"+ALLTRIM(STR(i))+".daimahanyi"=ALLTRIM("thisform.combo"+ALLTRIM(STR(i))+".value")
          xx[i]=ALLTRIM("flbm"+ALLTRIM(STR(i))+".daima")
    ELSE 
          xx[i]="_"
    ENDIF 
    zfc=zfc+xx[i]
ENDFOR 
    select * from biao1 where UPPER(alltrim(编码号)) LIKE zfc TO SCREEN 
USE 

VFP中该如何在一个字段里查找某一个字符某几个字符,并且让符合条件的记录在另外一个表单上显示?

#5


请老师帮忙看一下,以下代码错在哪了??

LOCAL  ARRAY xx[12]
LOCAL zfc
SELECT flbm1
SELECT flbm2
SELECT flbm3
SELECT flbm4
SELECT flbm5
SELECT flbm6
SELECT flbm7
SELECT flbm8
SELECT flbm9
SELECT flbm10
SELECT flbm11
SELECT flbm12
IF !EMPTY(ALLTRIM(thisform.combo1.value))
     SELECT daima FROM flbm1 WHERE flbm1.daimahanyi=ALLTRIM(thisform.combo1.value) INTO ARRAY xx[1]   &&提示SQL语句无效
ELSE
    xx[1]="*"
ENDIF
    zfc=xx[1]
IF  !EMPTY(ALLTRIM(thisform.combo2.value))
      SELECT daima FROM flbm2 WHERE flbm2.daimahanyi=ALLTRIM(thisform.combo2.value) INTO ARRAY xx[2]   &&提示SQL语句无效
ELSE 
     xx[2]="**"
ENDIF 
     zfc=zfc+xx[2]     &&提示操作符/操作数类型不匹配
FOR i=3 TO 12
 
    IF   !EMPTY(ALLTRIM("thisform.combo"+ALLTRIM(STR(i))+".value"))
           SELECT daima FROM "flbm"+ALLTRIM(STR(i)) WHERE  "flbm"+ALLTRIM(STR(i))+".daimahanyi"=ALLTRIM("thisform.combo"+ALLTRIM(STR(i))+".value")  INTO  ARRAY xx[i]       &&提示SQL语句无效
    ELSE 
          xx[i]="*"
    ENDIF 
           zfc=zfc+xx[i]      &&提示操作符/操作数类型不匹配 VFP中该如何在一个字段里查找某一个字符某几个字符,并且让符合条件的记录在另外一个表单上显示?VFP中该如何在一个字段里查找某一个字符某几个字符,并且让符合条件的记录在另外一个表单上显示?
ENDFOR 
   select  biao1
   BROWSE FOR LIKEC(ALLTRIM(zfc),编码号)=.t.

#6


INTO ARRAY xx[1] 
这个错了,array 后面跟的是数组名, 而不是数组的某个单元, 只能是INTO ARRAY xx ,

#7


该回复于2014-08-12 09:13:22被管理员删除