Сортировка по Вычесляемому Полю

отредактировано October 2009 Раздел: FastReport .NET
проблема следующего характера, есть таблица (с sql сервера)
подключаем, размещаем в Бенде Data всё работает
создаем вычисляемое поле (поле формируется из функции типа String, в функцию передается поле из таблицы (тоже String))
делаем сортировку по вычисляемому полю, возвращается ошибка :)

Интерфейс IComparer (или методы IComparable), на основе которых он создан) не вернул ноль, когда метод Array.Sort вызвал x. CompareTo(x). x:
System.Data.DataRow типа: x: "DataRow" Интерфейс IComparer: "FastReport.Data.DataSourceBase+Dafl<набор рандомных символоов>
   в System.Array.SorterObjectArray.SwapIfGreaterWithItems(Int32 a, Int32 b)
   в System.Array.SorterObjectArray.QuickSort(Int32 left, Int32 right)
   в System.Array.Sort(Array keys, Array items, Int32 index, Int32 length, IComparer comparer)
   в System.Collections.ArrayList.Sort(Int32 index, Int32 count, IComparer comparer)
   в System.Collections.ArrayList.Sort(IComparer comparer)
   в FastReport.Data.DataSourceBase.Init(Relation relation, String filter, SortCollection sort)
   в FastReport.Data.DataSourceBase.Init(DataSourceBase parentData, String filter, SortCollection sort)
   в FastReport.DataBand.InitDataSource()
   в FastReport.GroupHeaderBand.N9FPctQji()
   в FastReport.Engine.ReportEngine.ogwDZp0Hw(GroupHeaderBand )
   в FastReport.Engine.ReportEngine.8caPnqWKit(BandCollection )
   в FastReport.Engine.ReportEngine.OcePtFrWXp(ReportPage )
   в FastReport.Engine.ReportEngine.pkhPljh5jG()
   в FastReport.Engine.ReportEngine.YGY4Z4AQ3(Boolean , Boolean , ReportPage )
   в FastReport.Engine.ReportEngine.LXb93sCn3(Boolean , Boolean )
   в FastReport.Report.Prepare(Boolean append)
   в FastReport.Report.Prepare()
   в TIBYLe4OxXrKLP04F1B.jUf7Et4NSv4sh0EOmaM.2xhLLpi0b()

если в поле сортировки указать саму функцию, то сортрует нормально, но получается, что сперва FR формирует и вычисляет всё поле, затем делает всё еще раз во время сортировки... хотелось бы сразу по полю. Отображается поле в Дата бенде нормально, но сортироваться по нему не хочет :) а очень охото!

нужно это для группировки, но для неё поля надо сортировать либо в самом бенде, либо в группе, что как я понимаю равносильно. но не сортирует не там, не там :) Хелп :) я знаю, вы знаете в чем проблем )
(вся работа идет с данным String, типы везде объявлены аналогичные

могу выслать пример в личку, но его можно сделать за 5 минут, только что пробовал, int32 (вычисляемые) поля тоже не работают с такой же ошибкой!

Комментарии

  • отредактировано 15:16
    У вычисляемого поля обязательно надо установить св-во DataType- не забыли это сделать?
  • отредактировано 15:16
    да, DataType стоит String
  • отредактировано 15:16
    Ошибку исправил, ждите очередного билда (сегодня ночью).
  • отредактировано 15:16
    большое спасибо, только что проверил Стринги теперь сортирует нормально, а вот int32 нефига не робит. Мне оно побоку, но имейте ввиду :)

    Спасибо :)
  • отредактировано 15:16
    Проверил работу с Int32 на демо-отчете. Все в порядке.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.