Здравствуйте, dinja, Вы писали:
D>CrystalDecisions.CrystalReports.Engine.LineObject
D>у когонибудь получалось?
D>на knowledge base нашел тоько это:
D>http://support.crystaldecisions.com/library/kbase/articles/c2010613.asp
D>собственно потому и вопрос возник
Не могу сказать ничего по поводу линий, но в целом для себя я решил, что чем меньше изменяешь отчет CR.NET в рантайме, тем лучше. Причина тут в несколько "странном" (мягко говоря) портировании CR в .NET.
В частности, я хотел в рантайме изменять формат дат, выводимых в отчете — чтобы не делать отдельные отчеты для каждой локали. Так вот, была даже написана вот такая функция:
Public Sub SetDateFieldFormat(ByRef rpt As ReportDocument)
Dim field As FieldObject
Dim rptObj As ReportObject
Dim dateFormat As DateFieldFormat
Dim dateTimeFormat As DateTimeFieldFormat
Dim rptDef As ReportDefinition = rpt.ReportDefinition
For Each rptObj In rptDef.ReportObjects
If TypeOf (rptObj) Is FieldObject Then
field = CType(rptObj, FieldObject)
If field.DataSource.ValueType = FieldValueType.DateField Then
dateFormat = field.FieldFormat.DateFormat
End If
If field.DataSource.ValueType = FieldValueType.DateTimeField Then
dateTimeFormat = field.FieldFormat.DateTimeFormat
End If
End If
Next
End Sub
Здесь после получения dateFormat или dateTimeFormat, предполагалась изменять их свойства так, чтобы они соответствовали текущей локали. И что же? Да ничего! Этот самый "формат даты" позволяет регулировать количество циферок для числа, месяца и года, не позволяя менять их порядок (посмотрите на определение
DateFieldFormat). И спрашивается, зачем этот "формат даты" нужен?..
То что мне реально удавалось делать в рантайме — это подставлять значение параметра в ParameterField и заменять текст в TextObject.
Что могу еще посоветовать — попробуй поставить CR.NET HotFix — вдруг они наконец разрешили этот issue.
... << RSDN@Home 1.0 beta 6a >>