Переход с Fastcube 1 на Fastcube 2.
уважаемые разработчики.
очень ценю Ваш труд - новый fastCube (судя по демкам) получился очень интересным продуктом. Но попробовать его в реальных проектах для меня пока невозможно - переход сложен и неоднозначен. Многих компонентов и модулей уже нет, многие переименованы.
Не могли бы вы создать примерное руководство по переходу на новую версию: какие модули удалить, какие компоненты переименовать и т.д. В идеале - лучше конвертор форм, но не уверен, что это реально. Поэтому опишите пока ручной процесс обновления проекта на новые компоненты.
Вот мои вопросы (частично - с уже найденными ответами):
модули изменившие названия:
fcTypes => fcxTypes
fcCube => fcxCube
frcComponents => fcxComponent
fcSlice => fcxSlice
fcPainters => fcxPainters
fcCustomGrid => fcxCustomGrid
fcTypes => fcxTypes
что с этими модулями, их можно удалять из проекта?
fcToolBar
frcCross
frcGridReport
Компоненты изменившие названия:
TfcGrid => TfcxSliceGrid
TfcSlice => TfcxSlice
TfcCube => TfcxCube
TfcChart => TfcxChart
Изменилось использование FieldsOfRegion
Slice.FieldsOfRegion(rf_CapXAx) => Slice.FieldsOfRegion[rf_CapXAx]
А дальше вопросы не имеющие пока решения:
Вопрос: Чему соответвует TfrcGrid?
Вопрос: что стало с TfcGetFieldConverter?
Отсутсвуют свойства Slice.MeasureIndexInY, Slice.MeasureIndexInХ
Что вместо?
очень ценю Ваш труд - новый fastCube (судя по демкам) получился очень интересным продуктом. Но попробовать его в реальных проектах для меня пока невозможно - переход сложен и неоднозначен. Многих компонентов и модулей уже нет, многие переименованы.
Не могли бы вы создать примерное руководство по переходу на новую версию: какие модули удалить, какие компоненты переименовать и т.д. В идеале - лучше конвертор форм, но не уверен, что это реально. Поэтому опишите пока ручной процесс обновления проекта на новые компоненты.
Вот мои вопросы (частично - с уже найденными ответами):
модули изменившие названия:
fcTypes => fcxTypes
fcCube => fcxCube
frcComponents => fcxComponent
fcSlice => fcxSlice
fcPainters => fcxPainters
fcCustomGrid => fcxCustomGrid
fcTypes => fcxTypes
что с этими модулями, их можно удалять из проекта?
fcToolBar
frcCross
frcGridReport
Компоненты изменившие названия:
TfcGrid => TfcxSliceGrid
TfcSlice => TfcxSlice
TfcCube => TfcxCube
TfcChart => TfcxChart
Изменилось использование FieldsOfRegion
Slice.FieldsOfRegion(rf_CapXAx) => Slice.FieldsOfRegion[rf_CapXAx]
А дальше вопросы не имеющие пока решения:
Вопрос: Чему соответвует TfrcGrid?
Вопрос: что стало с TfcGetFieldConverter?
Отсутсвуют свойства Slice.MeasureIndexInY, Slice.MeasureIndexInХ
Что вместо?
Комментарии
Видимо необходимость создания такого руководства действительно есть, так как вы не первый задаете вопросы о переходе.
fcToolBar = fcxSliceGridToolbar.pas
frcCross = fcxpCross.pas
fcGridReport - пока отсутствует, но если нужен, то вернем.
TfcxpSliceGridProvider
Теперь появился класс TfcxMeasuresContainer со свойством Container - можете посмотреть лежит ли он в Page, XAxis, YAxis
С Уважением,
Павел Ишенин
Спасибо за оперативный ответ.
дополнение.
frcComponents соответствует fcxpComponents, а не fcxComponent.
вопрос остался:
Slice.MeasureIndexInY, Slice.MeasureIndexInХ - возвращали индекс в списке измерений по осям. Не очень понял, как получить эти значения через Slice.MeasuresContainer.
Вопросы еще: Slice.GetFactFields - как теперь получить?
Slice.XAxisLevelCount
Slice.XAxisAllCountInLevel
Slice.XAxisValueTypeAbs
Slice.CapFactsFieldsAbs - тоже непонятно.
Собственно, вопрос вот в чем - последняя группа свойств нужна для самописного "мастера" для выбора и построения диаграммы для произвольного набора данных в кубе. Мастер этот писался много лет назад, когда fastCube первой версии только появился. Тогда этим у нас занимался человек, который давно ушел... Многое из того, что он сделал, благополучно работало до сих пор. Но разбираться сейчас в его коде довольно затруднительно, учитывая масштабы изменений в FastCube 2.
Может быть сейчас есть какой -то другой, более простой и доступный способ простого создания произвольных диаграмм из пользовательского приложения???
мы не использовали штатный toolbar для FastCube, а делали свой на основе сторонних компонент. Это позволяло иметь иконки в едином стиле программы и применять темы оформления.
Как использовать экспорт данных теперь? Ранее был метод DoExport, теперь его нет.
к свойствам нужной оси обращаемся через контейнер данной оси:
Slice.XAxisContainer или Slice.YAxisContainer
к свойствам показателей через контейнер показателей:
MeasuresContainer
В FC 2 поле показатели стало "виртуальным", т.е. его нет в списке полей оси.
Можно узнать уровень, где он расположен:
Slice.MeasureIndexInX => Slice.XAxisContainer.MeasuresLevel
Slice.MeasureIndexInY => Slice.YAxisContainer.MeasuresLevel
Slice.XAxisLevelCount =>
Тут несколько свойств (значение всех этих свойств может отличаться):
Slice.XAxisContainer.LevelCount - число уровней в оси с учетом подгрупп (при наличии группировки в измерении), но без учета наличия поля "показатели"
Slice.XAxisContainer.RealLevelCount - число уровней в оси с учетом подгрупп (при наличии группировки в измерении), но с учетом наличия поля "показатели"
Slice.XAxisContainer.VisibleLevelCount - число видимых (не свернутых) уровней. учитывает наличия поля "показатели"
Slice.XAxisContainer.Fields.Count - полей, помещенных в ось.
Slice.CapFactsFieldsAbs => Slice.MeasuresContainer.MeasureFields.Caption
Slice.XAxisAllCountInLevel
Slice.XAxisValueTypeAbs
Данные свойства аналогов не имеют. Теперь для получения полной информации о ячейках оси необходимо вызывать TraverseAxis.
Да, изменения произошли кардинальные.
Диаграмма строится на основе среза, срез настраивается с помощью грида.
Дополнительные свойства диаграммы настраиваются в редакторе диаграммы.
Ничего иного у нас не создавалось.
С уважением,
Олег Прялков.
function Export(AFilter: TfcxCustomExportFilter): Boolean;
Если у Вас версия про, то в исходниках всё наглядно видно.
Есть вариант - вы нас скидываете этот мастер диаграмм с примером работы для первого куба и если это оказывается полезным для включения в пакет FastCube 2, то мы адаптируем код и просто добавим его в пакет.
С Уважением,
Павел Ишенин
Насколько я понимаю, стримы созданные SliceOLAP.SaveToStream для старой и новой версии будут несовместимы между собой???
насколько совместимы между собой файлы схем отчетов, созданные/ загружаемые процедурами
SliceOLAP.SaveToFile;
SliceOLAP.LoadFromXML
что с этими процедурами:
OLAPGrid.FieldEditor.Show;
SliceOLAP.ManageFacts
SliceOLAP.RangeConfig
OLAPGrid.FieldEditor.Show => SliceGrid.ShowFieldsEditor
SliceOLAP.ManageFacts => больше такого нет. Можно редактировать один показатель, но редактора всех показателей больше нет. Есть другие способы редактирования показателей, например через выпадающий список.
SliceOLAP.RangeConfig => только для отдельного показателя:
С Уважением,
Павел Ишенин
AddFieldTo - добавить измерение на основе поля AFieldName в область ARegionOfField, установив для него название ACaption.