VFP中的两个小问题,欢迎不吝赐教!

来源:百度知道 编辑:UC知道 时间:2024/05/27 11:39:50
一、dbf表中有这样一个字段,存储字符串如:aaaa|abc|ddd|eee
我拟将该字段中内容以“|”为分界分别存储到另外四个字段A、B、C、D中,即A中存储aaaa,B中存储abc,C中存储ddd,D中存储eee;请问如何编写代码实现?(注:该字段中“|”的个数是确定的,两个“|”之间可能是空数据,即有可能以这种形式存储aaaa||ddd|eee)
二、在VFP中设计报表中遇到这样一个问题,在数据环境中某一字段是以代码形式中存在的,如民族码(mzm),"01"代表“汉族”,“02”代表“满族”等,该数据以另一个dbf表(“民族代码”,“民族名称”,等等)存在。请问在报表设计时如何将民族码为“01”时自动转化为“汉族”?
没有办法啊,现在手头就要做这个东西,别的一下子还学不了啊

问题一:

LOCAL lc_Temp
LOCAL li_Pos

lc_Temp="aaa||cccc|dddddd"
li_Pos = At("|",lc_Temp,1)
REPLACE A WITH Left(lc_Temp,li_Pos-1)

lc_Temp = Substr(lc_Temp,li_Pos+1)
li_Pos = At("|",lc_Temp,1)
REPLACE B WITH Left(lc_Temp,li_Pos-1)

lc_Temp = Substr(lc_Temp,li_Pos+1)
li_Pos = At("|",lc_Temp,1)
REPLACE C WITH Left(lc_Temp,li_Pos-1)

lc_Temp = Substr(lc_Temp,li_Pos+1)
REPLACE D WITH lc_Temp

问题二:利用函数

假设01对应汉族表为zzz (code c(10),mz c(10))
code mz
01 汉族
02 苗族
03 壮族

FUNCTION NumConvert
PARAMETERS pc_num
LOCAL lc_mz
LOCAL ll_zzzUsed

ll_zzzUsed = Used("zzz")
lc_mz=""

SELECT * FROM zzz ;
WHERE code=pc_num ;
INTO CURSOR cur_Temp

IF _TALLY>0
lc_mz = cur_Temp.mz
ENDIF

USE IN cur_Temp