【发布时间】:2012-02-10 11:38:25
【问题描述】:
当我向此函数提供字符串 stknummer = "*VU-NR:-93.10xxxxxxxx_2-12-2011*" 时:
whileprintingrecords;
shared stringvar tstnummer;
shared stringvar stknummer;
local stringvar tst;
local stringvar stk;
local stringvar bc;
tst := tstnummer;
stk := stknummer;
//why is this not evaluated?
tst := Replace (tstnummer,":" ,"_" );
tst := Replace (tstnummer,"." ,"_" );
tst := Replace (tstnummer,"=" ,"_" );
tst := Replace (tstnummer,"/" ,"_" );
tst := Replace (tstnummer,"\" ,"_" );
tst := Replace (tstnummer,"?" ,"_" );
tst := Replace (tstnummer,"#" ,"_" );
tst := Replace (tstnummer,"." ,"_" );
tst := Replace (tstnummer,"*" ,"_" );
tst := Replace (tstnummer,"|" ,"_" );
tst := Replace (tstnummer,"<" ,"_" );
tst := Replace (tstnummer,">" ,"_" );
tst := Replace (tstnummer," " ,"-" );
//and this neither?
stk := Replace (stknummer,":" ,"_" );
stk := Replace (stknummer,"." ,"_" );
stk := Replace (stknummer,"=" ,"_" );
stk := Replace (stknummer,"/" ,"_" );
stk := Replace (stknummer,"\" ,"_" );
stk := Replace (stknummer,"?" ,"_" );
stk := Replace (stknummer,"#" ,"_" );
stk := Replace (stknummer,"." ,"_" );
stk := Replace (stknummer,"*" ,"_" );
stk := Replace (stknummer,"|" ,"_" );
stk := Replace (stknummer,"<" ,"_" );
stk := Replace (stknummer,">" ,"_" );
stk := Replace (stknummer," " ,"-" );
//select file output format
if {?barcode_type} = true
then (if trim(stk) =""
then
bc:= "*" + tst + "_" + totext(dateValue({@signdate})) + "*"
else
(
bc:= "*" + stk + "_" + totext(dateValue({@signdate})) + "*");;)
else bc := "*" + tst + "_" + totext(dateValue({@signdate})) + "*"
结果是没有进行替换(即 : 仍然存在)
当我将 Replace(stk, ":", "_") 放在底部函数中时:
//select file output format
if {?barcode_type} = true
then (if trim(stk) =""
then
bc:= "*" + tst + "_" + totext(dateValue({@signdate})) + "*"
else
(
bc:= "*" + Replace (stk, ":", "_") + "_" + totext(dateValue({@signdate})) + "*");;)
else bc := "*" + tst + "_" + totext(dateValue({@signdate})) + "*"
替换已正确完成。
为什么在第一个示例中没有进行替换?
我很好地将所有替换项都放在函数中,但这并不是太优雅....
谢谢
【问题讨论】:
标签: crystal-reports replace formula