В Аксапте есть встроенная компонента для вывода графиков. Совет Зерова Анатолия о том, что должен сделать программист, чтобы показать график пользователю.
Анатолий Зеров, zerov@rabota-na-rezultat.ru
Загрузить
Zan_Graphics_test_Project_without_DS.xpo (18Кб, для загрузки требуется регистрация на форуме у Mazzy)
Документация по Chart FX 2.0 (zip, 290Кб, внутри hlp-файлы, для загрузки требуется регистрация на форуме у Mazzy)
Работа с графиками
В Аксапте для отображения аналитической информации в виде графиков используется DLL cfx2032.dll (ChartFx) от компании Software FX. Для работы c DLL в Аксапте имеется класс ChartFx, который, в свою очередь, используется классами Graphics и Graphics_Period (Graphics_Period является наследником Graphics). От нас же требуется только подготовить данные и передать их в "Наш" класс, расширенный от Graphics или Graphics_Period.
Отличие Graphics_Period от Graphics заключается в том, что Graphics_Period используется для представления графики с временными интервалами (периодами).
Создадим график, используя в качестве родительского класса Graphics_Period. В результате мы получим график следующего вида:

Создание графика
- Создаем новый проект.

- В проекте создаем группы Forms и Classes
- Создаем форму в группе Forms.

- Создаем класс в группе Classes.

- Наследуем его от Graphics_Period

- Перекрываем методы title(), titleXaxis(), titleYaxis(), titleZaxis() (данные методы используются для определения наименований заголовков осей и заголовка графика, они только возвращают строку)

- Создаем для класса статический конструктор newGraphics().
- Для контрола Window перекрываем метод size() и добавляем код для инициализации созданного нами класса и изменяем свойства контрола, для того, чтобы он мог изменять свои размеры при изменении размеров формы.
!!! Метод size () вызывается при изменении размеров формы, а инициализация размеров графики происходит при инициализации класса.


- В методах формы создаем метод showGraph().

В этом методе происходит заполнение данными графика, вызов диалоговой формы, отображение графика. Для передачи данных используем метод loadData() экземпляра нашего класса.

В метод loadData(TempStr x, TempStr z, RealBase y) необходимо передать три параметра:
- значение по оси Х
- значение по оси Y
- значение по ост Z
Передачу данных для построения графика осуществляем в цикле. В нашем случае для оси Х - это дата, для оси Z - это имя клиента, для оси Y - это ежедневные платежи клиентов.
- Метод setup() вызывает диалоговую форму «Настройка графики».

В диалоговой форме можем задать параметры отображения графика. Для просмотра графика используем метод showGraph().
- В методах формы перекрываем метод close().

Этот метод срабатывает при закрытии формы. В этом методе после super() вызываем метод closeGraph() для освобождения памяти, которая использовалась для рисования графика.
- В методах формы перекрываем метод init() Это необходимо сделать для инициализации размеров формы. После super() добавляем необходимый для этого код.
!!!Это частный случай. Обычно для инициализации размеров перекрывать метод init() нет никакой необходимости, но на нашей форме нет контролов, которые определяли бы ее размер, поэтому если не делать инициализацию размеров, то форма будет открываться маленького размера и ее придется растягивать.


- В Design формы создаем контрол ButtonGroup.
- В контроле ButtonGroup создаем контрол Button.
- Для контрола Button перекрываем метод clicked().
- В метод clicked() после вызова super() добавляем вызов метода формы showGraph().
Просмотр графика
- Открываем созданную нами форму.
- Нажимаем на кнопку Просмотр графика. (Открывается диалоговое окно, в котором при необходимости можем определить параметры для отображения отчета)

- После нажатия на Ок, будет построен график, исходя из используемых данных и определенных нами параметров.

Анатолий Зеров, zerov@rabota-na-rezultat.ru