在(总表)零售价修改的地方增加一个判断,调用一个自定义函数。调用的时候把参数spbm和lsj传递过去,就可以在修改(总表)价格的时候修改(价格表)中对应的价格了。
提前把价格建立复合索引:
index on spbm tag ispbm
自定义函数的写法:
Para mSpbm,mlsj
if !Used('价格')
Use 价格 in 0
endif
Sele 价格
Set order to ispbm
if seek(m.mspbm)
replace lsj with m.mlsj
else
wait'这个编码没有在价格表中找到!!!' windows
endif
return
当然,总表和价格表反过来查,做法相同。
方法二:
全部修改完价格以后再替换:
if !Used('价格')
Use 价格 in 0
endif
Sele 价格
Set order to ispbm
if !Used('总表')
Use 总表 in 0
endif
Sele 总表
Scan
Sele 价格
if seek(m.mspbm)
replace lsj with m.mlsj
else
?spbm,'这个编码没有在价格表中找到!!!'
endif
endscan
return
可以, 使用chrtran()函数比如:
select 表名
replace all 字段1 with chrtran(字段1,'-',''),字段2 with chrtran(字段2,'-','') ......以此类推
附:帮助中说明
在一个字符表达式中,把与第二个表达式字符相匹配的字符替换为第三个表达式中相应字符。
CHRTRAN(cSearchedExpression, cSearchExpression, cReplacementExpression)
参数
cSearchedExpression
指定字符表达式,CHRTRAN( ) 替换其中的字符。
cSearchExpression
指定字符表达式,CHRTRAN( ) 在 cSearchedExpression 中寻找该表达式的字符。
cReplacementExpression
指定包含替换字符的表达式。若在 cSearchedExpression 中发现一个 cSearchExpression
中的字符,则用 cReplacementExpression 中的一个字符替换。替换字符在
cReplacementExpression 中的位置与被替换字符在 cSearchExpression 中的位置相同。
若
cReplacenentExpression 中的字符比 cSearchExpression 中的字符少,则删除
cSearchExpression 中多余的字符。若 cReplacementExpression 中的字符比
cSearchExpression 中的字符多,则忽略 cReplacementExpression 中的多余字符。
返回值
字符型
说明
CHRTRAN( ) 使用转换表达式 cSearchExpression 和
cReplacementExpression, 转换字符表达式
cSearchedExpression,并返回结果字符串。
示例
复制代码
? CHRTRAN('ABCDEF', 'ACE', 'XYZ') &&Displays XBYDZF
? CHRTRAN('ABCD', 'ABC', 'YZ') &&Displays YZD
? CHRTRAN('ABCDEF', 'ACE', 'XYZQRST') &&Displays XBYDZF
不着急,很简单,输出下面的一个命令就可以:REPLACE ALL 路由 WITH strtran (路由, "数据中继", "数据")
哦,在这之前要打开数据库,命令是:
USE abc
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)