cyystal报告-通过全球化设置货币符号(C#winforms)

时间:2018-08-02 19:32:21

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

我的项目中有50多个报告,因此我无法选择将货币符号传递给每个报告,因此我正在探索一种替代方法,我已经将文化符号设置为所需的符号,但是我无法将我的水晶报表设置为接受该符号。

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

对于替代方案,我在枚举,db,文化中具有货币符号,因此解决此问题的任何简短方法都值得赞赏,因为我无需将值分别传递给水晶报表,通过任何一个公式传递它们可能都相当可观,但我希望将字段设置为货币类型,然后让框架为我处理其余部分。

1 个答案:

答案 0 :(得分:0)

我已经在参数公式字段中添加了值,并通过发送值将其带入报告中

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中为空白手动。