【问题标题】:cyystal reports- setting currency symbol via globalisation (C# winforms)水晶报告-通过全球化设置货币符号(C#winforms)
【发布时间】:2020-10-10 16:49:22
【问题描述】:
我的项目中有超过 50 个报告,因此我不能选择将货币符号单独传递给每个报告,因此我正在探索一种替代方法,我已经将文化符号设置为我需要的,但我无法设置我的水晶报表以接受该符号。
为了您更好地理解,我的数据库中有一个字段接受货币符号,并且我已将当前文化货币符号设置为该值,但我不知道如何设置我的所有水晶报告以接受该值作为我的默认货币符号,由于我是水晶报表的新手,所以我也想请求详细的逐步解决此问题的方法。
对于替代方案,我在枚举、数据库、文化中有货币符号,任何解决此问题的捷径都值得赞赏,因为我不必单独将值传递给水晶报告,通过任一公式传递它们可能是相当可观的,但我希望将字段设置为货币类型,并让框架为我处理其余部分。
【问题讨论】:
标签:
crystal-reports
crystal-reports-2008
crystal-reports-8.5
【解决方案1】:
我已经制作了一个参数公式字段来获取值并通过发送值将其带到报告中
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 中为空白手动。