Crystal reports 在Crystal语法中截断年转换中的小数

Crystal reports 在Crystal语法中截断年转换中的小数,crystal-reports,Crystal Reports,我将次年打印为报告中的字符串,但它打印为2018.00。如何将其打印为不带小数或逗号的四位年份字符串?截断似乎不起作用 CStr (Year({Date}) + 1) 现在的情况是,Year函数将数据转换为一个数字,包括千位分隔符、小数点和小数点后的两位有效数字 为了解决这个问题,我发现有效的方法是从公式中删除CStr函数。通过右键单击字段并选择“格式字段”,可以访问数字数据类型的“格式”选项卡。然后从“数字”选项卡,可以将字段的样式设置为在显示中不使用分隔符或小数点的样式之一 如果您需要

我将次年打印为报告中的字符串,但它打印为2018.00。如何将其打印为不带小数或逗号的四位年份字符串?截断似乎不起作用

CStr (Year({Date}) + 1)  

现在的情况是,Year函数将数据转换为一个数字,包括千位分隔符、小数点和小数点后的两位有效数字

为了解决这个问题,我发现有效的方法是从公式中删除CStr函数。通过右键单击字段并选择“格式字段”,可以访问数字数据类型的“格式”选项卡。然后从“数字”选项卡,可以将字段的样式设置为在显示中不使用分隔符或小数点的样式之一

如果您需要将这个值与另一个字符串连接起来,那么您可以更具创造性地使用像这样的LEFT和REPLACE函数

Left(Replace(Cstr(Year({Date}) + 1), ",", ""), 4)
可以省略CStr函数并在“格式”选项卡上设置数字格式,或者,如果公式需要返回字符串,可以使用CStr或ToText函数的等效参数

设置第二个参数以定义数字格式:

CStr(Year({Date}) + 1, "####")

设置第二个和第三个参数,将小数位数设置为0,并将空字符串设置为千位分隔符:

CStr(Year({Date}) + 1, 0, "")

MatSnow通过利用CStr函数中的格式化选项提供了更好的解决方案。我的解决方案更多的是一种变通方法。