У меня есть текст контракта, который может измениться.
В настоящее время он (не действующая система) хранится в поле базы данных (мы определяем, какой текст контракта получить, используя другие поля в таблице). Однако мне нужно отобразить конкретную дату (основанную на индивидуальном контракте) в этом тексте.
IE (но 12 января, меняется в зависимости от индивидуального контракта):
бла-бла-бла ... 12 января 2009 г. ... бла-бла-бла
Но все остальное в тексте контракта то же самое.
Я ищу способ вставить дату в этот текст. Подобно .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}») как часть контракта, а затем выполнить замену после чтения из базы данных.
Если для этой зарезервированной строки нет опции (например, если контракт может содержать строковые символы любого типа в любой последовательности, что я считаю маловероятным), то вам, вероятно, придется разделить на 2 текстовых поля.
Я предполагаю, что к вашему отчету подключен источник данных. Вы можете перетащить поле из раскрывающегося списка Database Explorer туда, где оно должно появиться. Таким образом, всякий раз, когда отчет запускается, всегда будет отображаться правильный текст.
Вы можете создать поле формулы и объединить туда свой текст.
Если данные хранятся в базе данных, текст формулы должен выглядеть так:
"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} выше, который можно заменить в коде отчетов Crystal?
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.