Crystal reports 水晶报告电话号码

Crystal reports 水晶报告电话号码,crystal-reports,formatting,Crystal Reports,Formatting,我在crystal report中工作,需要格式化电话号码字段。我处理的数据有些混乱,有些数字格式正确 (111)111-1111 还有一些1111 我正在尝试编写这个公式,它将删除括号并重新格式化字符串。这是我到目前为止所知道的,我不知道为什么这行不通 StringVar phone = Replace({AssessorTrainingReport;1.Phone1},"(",""); phone := Replace({AssessorTrainingReport;1.Phone1},"

我在crystal report中工作,需要格式化电话号码字段。我处理的数据有些混乱,有些数字格式正确

(111)111-1111

还有一些1111

我正在尝试编写这个公式,它将删除括号并重新格式化字符串。这是我到目前为止所知道的,我不知道为什么这行不通

StringVar phone = Replace({AssessorTrainingReport;1.Phone1},"(",""); 
phone := Replace({AssessorTrainingReport;1.Phone1},")","");
Picture (CStr (phone), "(xxx) xxx-xxxx");

第二个替换调用应该对第一个替换调用的stringvar结果进行操作

phone := Replace(phone,")","");

另外,是否也需要删除
-

第二个替换调用应该对第一个替换调用的stringvar结果进行操作

phone := Replace(phone,")","");

也是,你是否需要删除<代码> ->代码>?

如果你的数字可以被“弄乱”,那么你可能会考虑对整个字符串进行消毒(也为那些好奇的人如何在CR中实现):

如果你的数字可能被“弄乱”,那么你可能会考虑对整个字符串进行消毒(也为那些好奇的人如何在CR中实现):


创建自定义函数以“补充”Replace()函数:

// ----------------------------------------------------------------------
// ReplaceEx()
// Author:      Craig Buchanan
// Purpose:     Support an array of find tokens
// Parameters:  text - the string being searched
//              find - an array of characters to be found
//              replacement - value to substitute
// ----------------------------------------------------------------------
Function (Stringvar text, Stringvar Array find, Stringvar replacement)

    local numbervar i;

    For i:=1 To Ubound(find) do (

        text:=Replace(text, find[i], replacement)

    );

    text;
在公式字段中使用自定义函数:

// returns {612) 555-1212
Picture(ReplaceEx("612-555-1212", ["(",")","-"], ""), "(xxx) xxx-xxxx")

创建自定义函数以“补充”Replace()函数:

// ----------------------------------------------------------------------
// ReplaceEx()
// Author:      Craig Buchanan
// Purpose:     Support an array of find tokens
// Parameters:  text - the string being searched
//              find - an array of characters to be found
//              replacement - value to substitute
// ----------------------------------------------------------------------
Function (Stringvar text, Stringvar Array find, Stringvar replacement)

    local numbervar i;

    For i:=1 To Ubound(find) do (

        text:=Replace(text, find[i], replacement)

    );

    text;
在公式字段中使用自定义函数:

// returns {612) 555-1212
Picture(ReplaceEx("612-555-1212", ["(",")","-"], ""), "(xxx) xxx-xxxx")

//试试这个,在这种情况下,它允许你替换任何你需要的东西

    StringVar phone:= {yourTable.field};
    phone:= Replace(phone,"(","*");
    mid(phone, 1);
    replace(mid(phone, 1),")", "* "); 

//试试这个,在这种情况下,它允许你替换任何你需要的东西

    StringVar phone:= {yourTable.field};
    phone:= Replace(phone,"(","*");
    mid(phone, 1);
    replace(mid(phone, 1),")", "* "); 
试试这个

右键单击电话号码字段,然后选择格式字段 从“格式”字段中选择“常用”选项卡。在“显示字符串”下,单击X-2框 然后使用公式->图片({YOURTABLE.FIELD),“(XXX)XXX-XXXX”)

希望这有帮助!

试试这个

右键单击电话号码字段,然后选择格式字段 从“格式”字段中选择“常用”选项卡。在“显示字符串”下单击X-2框 然后使用公式->图片({YOURTABLE.FIELD),“(XXX)XXX-XXXX”)


希望这有帮助!

预期的输出是什么?是否要将第一个字符串格式化为第二个字符串或其他方式?预期的输出是什么?是否要将第一个字符串格式化为第二个字符串或其他方式?我也尝试过这样做,但没有发现任何结果。我最终在拉入s的字段上使用了sql替换tored过程并修复了它。replace(replace)(replace(cj.Phone1,“-”,“,”,“(”,“,”),”)作为phone我也尝试过这样做,但什么都没有出现。我最后在我拉入存储过程的字段上使用了sql replace,并修复了它。replace(replace(replace(cj.Phone1,“-”,“,”,“(,”,“,”),“),”)作为电话,没有必要大声喊叫。偶尔尝试使用小写。没有必要大声喊叫。偶尔尝试使用小写。