gpt4 book ai didi

localization - Crystal Reports 本地化不会改变货币符号

转载 作者:行者123 更新时间:2023-12-04 06:10:51 24 4
gpt4 key购买 nike

我正在使用不同本地化的 Crystal Reports 导出。对于此示例,我尝试将本地化设置为使用欧元的法语。

我使用以下 C# 代码设置本地化:

    ReportDocument report = new ReportDocument();

report.ReportClientDocument.LocaleID = CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleFrench;
report.ReportClientDocument.PreferredViewingLocaleID = CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleFrench;
report.ReportClientDocument.ProductLocaleID = CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleFrench;

当我导出报告时,会显示以下值:
135,00 $

请注意,数字的格式正确更改,但货币符号没有更改。

我一直在寻找解决方案,但几乎所有内容都集中在设计时更改货币上,但我需要能够根据用户选择的其他一些值在运行时更改它。

我已经看到一些关于使用参数传递值和在设计器中使用公式的提示,但我对 Crystal Reports 不够熟悉,无法弄清楚。

我在 Visual Studio 2010 和 .Net 3.5 中使用 Crystal Reports 10.5。

任何帮助或提示表示赞赏。

最佳答案

我想通了,并根据我所做的研究,我认为这是唯一的方法。

我很确定符号不会故意改变。按照报表仅用于一种货币的逻辑,即使格式会随文化而变化,但实际货币值是相同的。无论以何种语言查看报告,100 美元始终是 100 美元,这样,报告就不必担心将数据转换为不同的金额。

在我的应用程序中,数据仅存储为一个数字,货币由数据库中的其他值和代码决定。

但为了切入正题,我根据问题中的代码指定了报告的语言环境。然后要更改货币符号,我必须进入报表设计器并格式化货币问题。

在格式编辑器的“数字”选项卡中,确保选中“显示货币符号”框。然后单击“自定义”按钮和“货币符号”选项卡。转到货币符号的公式工作室,然后输入以下代码:

Local StringVar locale := LowerCase(ContentLocale);
if locale = "fr_fr" then
"€"
else if (locale = "en_gb") then
"£"
else if(locale = "en_us" OR locale = "en_ca") then
"$"
else
""

这只是我现在支持的语言的一个例子,但我认为它已经说明了这一点。另请注意,Crystal 在区域设置 ID 中使用下划线而不是连字符。

有点冗长的答案,但希望这会对其他人有所帮助。

关于localization - Crystal Reports 本地化不会改变货币符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7796006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com