Re: изменение значений CrystalDecisions....LineObject в ран
От: nzeemin Россия http://nzeemin.livejournal.com/
Дата: 28.03.03 09:44
Оценка:
Здравствуйте, 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 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.