我有一些可能会改变的合同文本。
当前(非实时系统)存储在数据库字段中(我们通过使用表中的其他字段来确定要获取的合同文本)。但是,我需要在此文本中显示特定日期(基于个人合同)。
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。
答案 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)
我假设您有一个数据源连接到您的报告。您可以将数据库资源管理器中的字段拖放到应该出现的位置。这样,只要报告运行,将始终显示正确的文本。