首页 > 解决方案 > cyystal 报告 - 通过全球化设置货币符号(C# winforms)

问题描述

我的项目中有超过 50 份报告,因此我不能选择将货币符号单独传递给每份报告,因此我正在探索一种替代方法,我已经将文化符号设置为我需要的,但我无法设置我的水晶报告接受该符号。

为了您更好地理解,我的数据库中有一个接受货币符号的字段,并且我已将当前文化货币符号设置为该值,但我不知道如何设置我的所有水晶报告以接受该值作为我的默认货币符号,我也是由于我是水晶报告的新手,因此想请求详细的逐步解决此问题的方法。

对于替代方案,我在枚举、数据库、文化中有货币符号,任何解决这个问题的捷径都值得赞赏,因为我不必单独将值传递给水晶报告,通过任一公式传递它们可能是相当可观的,但我希望设置货币类型的字段,让框架为我处理其余部分。

标签: crystal-reportscrystal-reports-2008crystal-reports-8.5

解决方案


我已经制作了一个参数公式字段来获取值并通过发送值将其带到报告中

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports CrystalDecisions.ReportSource
Imports TimexSageEvoReportsWriter.clsEvoRequired

Private Const crParameterCurrency As String = "CurrencyCode"
Dim CrystlRpt As New ReportDocument
Dim myParameterFields As ParameterFields  
CrystlRpt.FileName = reportPath
myParameterFields = CrystlRpt.ParameterFields
myParameterFields.Item(0).CurrentValues.Clear()
Dim currentParameterValues As ParameterValues = New ParameterValues()
            Dim thisParameterField As ParameterField = myParameterFields(crParameterCurrency)
            If thisParameterField.PromptingType = DiscreteOrRangeKind.DiscreteValue Then
                Dim myParameterDiscreteValue As ParameterDiscreteValue = New ParameterDiscreteValue()
                myParameterDiscreteValue.Value = myArrayList(0)(0).ToString()
                currentParameterValues.Add(myParameterDiscreteValue)
            End If
crViewer.ViewerCore.ReportSource = CrystlRpt

只有我必须得到一个公式才能使它出现在字段的货币符号中,现在我已将货币代码放在金额字段附近以显示为格式化的金额,并手动使符号在 Crystal 中为空白。


推荐阅读