Crystal reports 从数字字段中删除逗号和小数点

Crystal reports 从数字字段中删除逗号和小数点,crystal-reports,formula,crystal-reports-2008,Crystal Reports,Formula,Crystal Reports 2008,我试图在一个字段前面添加两个零位持有者,而不改变所涉及的实际值。该字段是从MOMs提取的订单号。所以现在字段的公式是{cms.ORDERNO} 当我尝试'00'+{cms.ORDERNO}时,字段显示001254.00。如何删除小数和逗号,使其显示001254?您肯定想为此使用替换公式几次。下面的公式将ORDERNO转换为字符串,删除所有逗号和尾随的小数位数,然后在开头添加两个零: `00` + REPLACE(REPLACE(CSTR({cms.ORDERNO}),".00",""),",",

我试图在一个字段前面添加两个零位持有者,而不改变所涉及的实际值。该字段是从MOMs提取的订单号。所以现在字段的公式是
{cms.ORDERNO}


当我尝试
'00'+{cms.ORDERNO}
时,字段显示
001254.00
。如何删除小数和逗号,使其显示
001254

您肯定想为此使用替换公式几次。下面的公式将ORDERNO转换为字符串,删除所有逗号和尾随的小数位数,然后在开头添加两个零:

`00` + REPLACE(REPLACE(CSTR({cms.ORDERNO}),".00",""),",","")

因此,例如,如果
cms.ORDERNO
1254.00
,则此公式的输出将为
001254

您肯定要为此使用替换公式几次。下面的公式将ORDERNO转换为字符串,删除所有逗号和尾随的小数位数,然后在开头添加两个零:

`00` + REPLACE(REPLACE(CSTR({cms.ORDERNO}),".00",""),",","")

因此,例如,如果
cms.ORDERNO
1254.00
,那么这个公式的输出将是
001254

通常的技巧是在左边填充大量额外的数字,然后从右边只取你真正想要的六个数字。这将处理从1到999999的任何订单号

right("000000" + totext({cms.ORDERNO}, "0"), 6)
当您尝试不指定格式字符串时,它使用通常来自Windows的默认设置。顺便说一下,如果我没记错的话,
cstr()
totext()
在大多数情况下是等效的,但是
totext()
有更多的选择

您还应该能够指定“000000”作为格式字符串,以生成左填充的零。遗憾的是,我没有安装Crystal Reports,或者我会帮你检查一下。如果是这种情况,那么如果只想使用画布上字段的格式选项,则可能不需要公式。如果你真的使用公式,它仍然很简单

totext({cms.ORDERNO}, "000000")

通常的技巧是在左边加上很多额外的数字,然后从右边只取你真正想要的六个数字。这将处理从1到999999的任何订单号

right("000000" + totext({cms.ORDERNO}, "0"), 6)
当您尝试不指定格式字符串时,它使用通常来自Windows的默认设置。顺便说一下,如果我没记错的话,
cstr()
totext()
在大多数情况下是等效的,但是
totext()
有更多的选择

您还应该能够指定“000000”作为格式字符串,以生成左填充的零。遗憾的是,我没有安装Crystal Reports,或者我会帮你检查一下。如果是这种情况,那么如果只想使用画布上字段的格式选项,则可能不需要公式。如果你真的使用公式,它仍然很简单

totext({cms.ORDERNO}, "000000")

我知道这是旧的,但更好的解决方案存在,我遇到了同样的问题。ToText内置了您需要的功能

“00”+ToText({cms.ORDERNO},0,”)

从Crystal文档中:

图腾文字(x,y,z)

x是要转换为文本字符串的数字或货币值;信息技术 可以是整数值或分数值

y是一个整数,表示要携带的小数位数 x到中的值(此参数是可选的)

z是一个单字符文本字符串,指示要输入的字符 用于在x中分隔数千个。默认值是中指定的字符 您的国际或地区设置控制面板。(这一论点 是可选的。)


我知道这是旧的,但更好的解决方案存在,我遇到了同样的问题。ToText内置了您需要的功能

“00”+ToText({cms.ORDERNO},0,”)

从Crystal文档中:

图腾文字(x,y,z)

x是要转换为文本字符串的数字或货币值;信息技术 可以是整数值或分数值

y是一个整数,表示要携带的小数位数 x到中的值(此参数是可选的)

z是一个单字符文本字符串,指示要输入的字符 用于在x中分隔数千个。默认值是中指定的字符 您的国际或地区设置控制面板。(这一论点 是可选的。)


我想这会管用的。。然而,订单号通常是001254,但当我尝试添加零时,它包括零,然后再添加小数和逗号。我试着使用你给我的公式,但它说这不是一个公式,我猜这是因为在我编辑它之前,实际顺序字段中没有小数或任何东西。你知道这个额外的inf吗?如果在加零后出现十进制/逗号,你可以改变操作顺序。尝试
REPLACE(REPLACE(CSTR('00'+{cms.ORDERNO}),“.00”,”,“,”,”)
。。然而,订单号通常是001254,但当我尝试添加零时,它包括零,然后再添加小数和逗号。我试着使用你给我的公式,但它说这不是一个公式,我猜这是因为在我编辑它之前,实际顺序字段中没有小数或任何东西。你知道这个额外的inf吗?如果在加零后出现十进制/逗号,你可以改变操作顺序。尝试
REPLACE(替换(CSTR('00'+{cms.ORDERNO}),“.00”,”,“,”,”)
。。这很有道理!谢谢你的帮助!!!!你太棒了:)这篇文章写得很好。。这很有道理!谢谢你的帮助!!!!你太棒了:)