Отображение графика на форме посредством элемента управления MS Chart 2.0

Всегда хотелось иметь в приложениях возможность отображения графиков. На данном сайте есть решение, которое позволяет делать это на базе Excel. Но ведь Excel использует тот же самый Ms Chart 2.0!!! Так зачем же это промежуточное звено Excel, которое постоянно виснет, глючит и не хочет работать? Вот эту идею я и реализовал в этом классе. Графики строятся непосредственно в элементе Ms Chart 2.0. Безусловно, реализованы не все возможности Ms Chart, но концепцию советую посмотреть.

Отображение графика на форме посредством элемента управления MS Chart 2.0

Есть класс, базирующийся на ActiveX элементе управления. Элемент управления называется MS Chart 2.0 и обычно три файла, которые необходимы для работы этого элемента, находятся в каталоге WindowsSystem: mschrt20.dep, mschrt20.ocx, mschrt20.srg.
Для того, чтобы начать работу на конкретной станции с классом mschart, надо этот элемент управления зарегистрировать с помощью утилиты regsvr32, которая находится в том же каталоге.

Потом ставите на форму элемент класса MSChart и работаете с ним следующими методами:
1. InitChart (cAlias, cFieldsList, cHeadersList, cColorField) – инициализация графика
Calias – алиас таблицы или курсора с данными
CFieldsList – список полей (через ‘’) для вывода в графике - чтобы можно было передавать не просто поля, но и выражения типа IIF
CHeadersList – список заголовков (подписей) на графике, тоже через ‘’
CColorField – имя поля в таблице или курсоре alias, куда класс будет писать цвет конкретной линии. Это для того, чтобы отражая данные таблицы в гриде, вы могли подсветить каждую строку своим цветом, соответствующим цвету линии на графике.

Например:

THISFORM.Grd1.SETALL("dynamicForeColor", "color", "COLUMN") - в форме есть грид grd1, в котором отображаются названия позиций товаров цветом, который задан полем color

thisform.oleAmountChart.InitChart ('vCharts','m1m2m3m4’,’month1month2month3month4’,'color') – вызываем метод initChart, в который передаем названия таблицы, числовых полей m1..m4, названия заголовков month1..month4 и название поля цвета color

2. Requery() – перезапрос графика, после того, как данные в курсоре или таблице alias обновились.

Например:

thisform.oleAmountChart.Requery() – перезапрашиваем график

И еще у класса есть три логических свойства (точнее, свойств больше, но вам нужны только эти три):
1. lAverage – строить средний график;
2. lSummary – строить суммовой график;
3. lShowLabels – строить на графике цифры – значения в каждой точке графика.

После изменения этих флагов надо вызвать метод Requery.

Если есть какие-либо дополнения или вопросы - пишите!

Автор: Шулындин Кирилл

Автор публикации

не в сети 20 лет

savage

Комментарии: 0Публикации: 3Регистрация: 17-11-2003
Вложенные файлы
#
Название
Тип файла
Размер
1 308chart .zip 5,11 КБ
Материалы по теме
Оставить комментарий
//////////////// ///////////////
Авторизация
*
*
Генерация пароля