Программный Файл: ...\Samples\Solution\Reports\Ordgraph.scx

Рассматриваемый пример показывает создание и печать Графиков в режиме Run-Time, при выполнении Отчета, "на-лету" (On the Fly). Система Visual FoxPro обеспечивает необходимый функционал для добавления на пользовательскую (тестовую) Форму Графиков, при этом используются стандартные классы: OleControls или OleBoundControls. После создания Графика, можно сохранить его в соответствующем поле типа General, что обеспечивает связь с исходными данными (о Продукции).

Если вы используете систему Visual FoxPro, Генератор Отчетов, для печати Графиков, то вам можно использовать поля типа General для хранения полученных Графиков (для использования в дальнейшей работе). Простейшим способом сохранения Графика в поле General может являться стандартная команда APPEND GENERAL, например, в виде:

  CopyCode imageКопировать Код
APPEND GENERAL graphfield CLASS "msgraph"

Представленный фрагмент только сохраняет изображение Графика в поле типа General, однако исходные данные не сохраняются (на основе которых построет График). Дополнительная Опция DATA обеспечивает фактическое сохранение исходных данных Графика.

Следующий далее программный код демонстрирует построение необходимой символьной строки, содержащей исходные данные Графика, которые используются при выполнении команды: APPEND GENERAL .... DATA:

  CopyCode imageКопировать Код
SCAN NEXT m.totrecs
m.cData = ""+TAB+m.f2+TAB+m.f3+TAB+m.f4+CRLF+;
EVAL(fields(1))+ TAB + ;
ALLTRIM(STR(EVAL(field(2))))+ TAB +;
ALLTRIM(STR(EVAL(field(3))))+ TAB + ;
ALLTRIM(STR(EVAL(field(4))))
m.cDetails = ;

f2+"-" +ALLTRIM(STR(EVAL(FIELD(2)))) ;
+ CRLF + f3+"-" +ALLTRIM(STR(EVAL(FIELD(3)))) ;
+ CRLF + f4+" - "+ALLTRIM(STR(EVAL(FIELD(4)))) +CRLF
INSERT INTO prodsales ;
VALUES(SalesData.prod_name,tmpgrph.graph,m.cDetails)
APPEND GENERAL prodsales.sales DATA m.cData
ENDSCAN

Как только вы получаете описанную выше Таблицу, содержащую Графики в поле типа General, вы можете распечатать данные Графики при помощи стандартной команды Visual FoxPro REPORT FORM. Вы не можете включать внешние контроллы ActiveX в пользовательские Отчеты.

См. также