将值注入文本

时间:2009-06-10 17:27:12

标签: sql sql-server crystal-reports

我有一些可能会改变的合同文本。

当前(非实时系统)存储在数据库字段中(我们通过使用表中的其他字段来确定要获取的合同文本)。但是,我需要在此文本中显示特定日期(基于个人合同)。

IE(但是1月12日,根据个人合同而变化):

  2009年1月12日,等等等等等等等等等等等等等等等

但合同文本中的其他内容都是相同的。

我正在寻找一种方法将日期注入到本文中。类似于.NET的

Console.Write("Some text here {0} and some more here", "My text to inject");

有类似的东西吗?或者我是否需要将文本拆分为两个字段并且只是连接?

我总是使用Crystal Reports显示这些信息,所以如果我可以通过Crystal注入数据,那就没关系。

我正在使用Crystal Reports,SqlServer 2005和VB.net。

4 个答案:

答案 0 :(得分:1)

您是否尝试过将上述{0}的文字标记添加到水晶报告代码中?

答案 1 :(得分:1)

您可以使用一些“保留字符串”(例如“{0}”)作为合同的一部分,然后在从数据库中读取后执行替换。

如果没有这个保留字符串的选项(例如,如果合同可能包含任何序列中的任何类型的字符串字符,我觉得不太可能),那么您可能需要拆分为2个文本字段

答案 2 :(得分:1)

您可以创建公式字段并在那里连接文本。

如果数据存储在数据库中,公式文本应如下所示:

"Some static text "  & totext({yourRecord.yourDateField}, "yyyy") 

或者您可以在显示报告之前将其作为参数提供:

    Dim parameterValue As New CrystalDecisions.Shared.ParameterDiscreteValue
    value.Value = yourDate
    Dim parameter As New CrystalDecisions.Shared.ParameterField
    parameter.ParameterFieldName = "MyParam"
    parameter.CurrentValues.Add(value)
    parameter.HasCurrentValue = True
    Me.CrystalReportViewer1.ReportSource = rapport
    Me.CrystalReportViewer1.ParameterFieldInfo.Clear()
    Me.CrystalReportViewer1.ParameterFieldInfo.Add(parameter)

然后公式文本应如下所示:

"some static text " & {?MyParam}

答案 3 :(得分:0)

我假设您有一个数据源连接到您的报告。您可以将数据库资源管理器中的字段拖放到应该出现的位置。这样,只要报告运行,将始终显示正确的文本。

相关问题