foxpro中如何批量替换

foxpro中如何批量替换,第1张

方法一:

在(总表)零售价修改的地方增加一个判断,调用一个自定义函数。调用的时候把参数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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10647299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存