2009-06-10 38 views
0

我有一些可能會更改的合同文本。將值注入文本

它是目前(非實時系統)存儲在數據庫字段中(我們通過使用表中的其他字段來確定要獲取哪個合同文本)。但是,我需要在本文中顯示具體日期(基於個人合同)。

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。

回答

1

您可以使用某些「保留字符串」(例如「{0}」)作爲合同的一部分,然後在從數據庫中讀取後執行替換。

如果有這個保留字符串中沒有選項(例如,如果合同可以包含任意順序,我覺得這不太可能的任何類型的字符串中的字符),那麼你可能需要分割成2個文本字段

1

您是否嘗試過在水晶報表代碼中放置文字標記,如{0}以上可以替換?

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} 
0

我假設你有一個數據源連接到你的repor噸。您可以將該字段從數據庫資源管理器下拉列表中拖出。這種方式每當報告運行時,總是會顯示正確的文本。