注册 登录
编程论坛 VFP论坛

字段变量如何替换?

fdqzy 发布于 2022-04-13 19:52, 1200 次点击
程序代码:
Create table b1 (jnh n(2),m1 c(2),m2 c(2),mt c(2))
insert into b1 values (1,"M1","","")
insert into b1 values (2,"","M2","")
insert into b1 values (3,"M1","","")
insert into b1 values (4,"M1","M2","")
insert into b1 values (5,"","M2","")

REPLACE all;
        mt WITH IIF(!EMPTY(m1),'A',"")
brow      


当字段改为:
      
k1=m1
REPLACE all;
        mt WITH IIF(!EMPTY(k1),'A',"")
brow   

k1就不是m1字段了,为什么?
3 回复
#2
sdta2022-04-13 20:17
k1 = m1
这时 m1 字段的值为第5条记录的值,也即空("  ")
#3
fdqzy2022-04-13 21:11
回复 2楼 sdta
谢谢版主回复,进一步请教:
程序代码:
Create table b1 (jnh n(2),m1 c(2),m2 c(2),mt c(2))
insert into b1 values (1,"M1","","")
insert into b1 values (2,"","M2","")
insert into b1 values (3,"M1","","")
insert into b1 values (4,"M1","M2","")
insert into b1 values (5,"","M2","")


USE b1 IN 0 ALIAS t1 AGAIN
USE b1 IN 0 ALIAS t2 AGAIN

 
SELECT t1
SET RELATION TO RECNO()+1 INTO "t2"
SELECT t1

      REPLACE ALL ;
      t2.mt with  IIF(!EMPTY(t1.m1) and !EMPTY(t2.m1) OR ;
                      !EMPTY(t1.m2) and !EMPTY(t2.m2) ,'MT',"")

SET RELATION TO
brow                    


在这段代码中能否改为如下通用模式:
程序代码:
USE b1 IN 0 ALIAS t1 AGAIN
USE b1 IN 0 ALIAS t2 AGAIN

 
SELECT t1
SET RELATION TO RECNO()+1 INTO "t2"
SELECT t1

      REPLACE ALL ;
      t2.mt with  IIF(!EMPTY(t1.k1) and !EMPTY(t2.k1) OR ;
                      !EMPTY(t1.k2) and !EMPTY(t2.k2) ,'MT',"")

SET RELATION TO
brow     

即k1=m1
  k2=m2
  也可表示其他字段
应如何写?谢谢!



#4
fdqzy2022-04-14 06:56
这样写:
程序代码:
k1='m1'
k2='m2'
USE b1 IN 0 ALIAS t1 AGAIN
USE b1 IN 0 ALIAS t2 AGAIN

 
SELECT t1
SET RELATION TO RECNO()+1 INTO "t2"
SELECT t1

      REPLACE ALL ;
      t2.mt with  IIF(!EMPTY(t1.&k1) and !EMPTY(t2.&k1) OR ;
                      !EMPTY(t1.&k2) and !EMPTY(t2.&k2) ,'MT',"")

SET RELATION TO
brow                    

有其他好的写法否?
1