Использование элементов управления при проектировании форм приложения
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
ble = .T.
WAIT
< Пример 4: Рассмотрим подробнее параметры метода ChartWizard.
lExpression.ChartWizard(Source, Gallery, Format, PlotBy, CategoryLabels, SeriesLabels, HasLegend, Title, CategoryTitle, ValueTitle, ExtraTitle).ource - источник данных диаграммы
Gallery - тип диаграммы. Может принимать следующие значения:
- Диаграмма с областями
- Линейная диаграмма
- Гистограмма
- График
- Круговая диаграмма
- Лепестковая диаграмма
- Точечная диаграмма
- Нестандартная, график\гистограмма
- Объемный вариант диаграммы с областями
- Объемный вариант линейной диаграммы
- Объемный вариант гистограммы
- Объемный вариант графика
- Объемный вариант круговой диаграммы
- Объемный вариант поверхности
- Кольцевая диаграмма
Format - Разновидность диаграммы, выбранной в параметре Gallery.
PlotBy - Определяет ряды в строках или столбцах. Значение 1 - строки, 2 - столбцы.
SeriesLabels - Имена рядов данных. Задается номер столбца или строки, содержащей названия рядов, отображаемые в легенде.
HasLegend - Определяет включать или нет легенду в диаграмму.
Title - Название диаграммы
CategoryTitle - заголовок оси Х
ValueTitle - заголовок оси Y.
Часто на практике необходимо использовать не просто числовые значения, а данные таблиц. Рассмотрим пример создания рабочего листа с диаграммой, где исходные данные для диаграммы берутся из таблиц Money и Kyrs. Рассмотрим динамику изменения курса одной валюты, для выбора валюты используем элемент управления ComboBox, источником данных для которого является код валюты. Наименование валюты хранится в элементе TextBox - txtName_val.
Public data_n,data_f,n
*Записываем в переменные начальную и конечную дату для выборки,
*которые хранятся в элементах TextBox - text1 и text2.
data_n = ThisForm.text1.Value_f = ThisForm.text2.Value
*Используя команды SELECT проводим выборку значений из таблиц
*и записываем их в курсор kurs
Select k.kod_val, v.name_val, k.kyrs_pok, k.kyrs_prod, k.data_kurs;kurs K, money V; Where K.kod_val=V.kod_val; And K.kod_val=val(Alltrim(ThisForm.Combo1.DisplayValue)); And (Between(K.data_kurs,data_n,data_f)); Group By K.data_kurs; Into cursor kurs
*Для удобства использования данных при построении диаграммы
*необходимые значения можно записать из курсора в массив
select k.kyrs_pok, k.kyrs_prod, k.data_kurs, k.name_val; kursy k;array kursy
*Переменная для подсчета количества строк в массиве
n = Alen(kursy,1)= CreateObject("Excel.Application")
*Добавляем книгу.WorkBooks.Add.WorkBooks.Item(1).WorkSheets.Item(1).Cells.Item(1,1).Value='Покупка'.WorkBooks.Item(1).WorkSheets.Item(1).Cells.Item(1,2).Value='Продажа'.WorkBooks.Item(1).WorkSheets.Item(1).Cells.Item(1,3).Value='Дата'
*Заполняем ячейки первого листа книги значениями из массива *kursy
For i=1 to n.WorkBooks.Item(1).WorkSheets.Item(1).Cells.Item(i+1,1).Value=kursy(i,1).WorkBooks.Item(1).WorkSheets.Item(1).Cells.Item(i+1,2).Value=kursy(i,2).WorkBooks.Item(1).WorkSheets.Item(1).Cells.Item(i+1,3).Value=kursy(i,3)
*Добавляем диаграмму .Charts.Add
*Выделение данных, создание диаграммы
Fula='A1:B'+Transform(n)
oExlApp.ActiveChart.ChartWizard(oExlApp.WorkBooks.Item(1).WorkSheets.Item(1).Range(Fula),4,2,2,,1,1,ThisForm.txtName_val.Value+' - График изменения курса по дням','Дата','Курсы в тенге')
*Используя язык макросов Excel, можно создать подписи к оси X
oExlApp.ActiveChart.SeriesCollection(1).XValues = '=Лист1!R1C3:R'+Transform(n)+'C3'
*Сохраняем и закрываем книгу..WorkBooks(1).SaveAs('C:\Temp.xls').WorkBooks(1).CloseoExlAppForm "C:\a\graph.scx"
Чтобы просматривать диаграмму с помощью формы, необходимо сделать следующее. Создаем таблицу Tgraph с полем типа General. Создаем форму Graph.scx, с размещенным на ней элементом OLEBOUNDCONTROL, источником данных для которого является поле таблицы Tgraph.
В событие Init формы записываем:
CLOSE TABLE ALLTgraph1ALL IN 1 NOOPTIMIZEBLANK && Добавляем запись
*Вставляем в поле General объект Excel
Append General gen FROM ('C:\Temp.xls') Class ExcelChart.oleboundcontrol1.refresh().oleboundcontrol1.visible=.t.
< Пример 5: Для расчитывания сложных математических задач посредством Excel, можно использовать функции Excel.
*Рассчитываем произведение матриц
*Диапазон ячеек, куда будет сохраняться результат произведения
Fla = 'A'+Transform(m)+':E'+Transform(m+4)
*формула расчитывающая произведение двух матриц= '=MMULT(A'+Transform(m+2-7)+':E'+Transform(m+2+4-7)+',A'+Transform(m-n+1-7)+':E'+Transform(m-7)+')'.Application.WorkBooks.Item(1).WorkSheets.Item(1).(Fla).FormulaArray = Formula
*Рассчитываем обратную матрицу
Fla = 'A'+Transform(m4+1)+':E'+Transform(m4+1+4)= '=MINVERSE
(A'+Transform(m3+1)+':E'+Transform(m3+1+4)+')'.Application.WorkBooks.Item(1).WorkSheets.Item(1).Range(Fla).FormulaArray = Formula
*Рассчитываем среднее значение= '=AVERAGE(A'+Transform(2)+':A'+Transform(n+1)+')'.Application.WorkBooks.Item(1).WorkSheets.Item(1).Cells.Item(m6+1,1).Formula = Formula
*Рассчитываем степень числа= '=POWER(A'+Transform(m7+i)+',2)'.Application.WorkBooks.Item(1).WorkSheets.Item(1).Cells.Item(m7+i,6).Formula = Formula
*Рассчитываем сумму ряда и корень из полученного числа
Formula = '=SUM(J'+Transform(m7+1)+':J'+Transform(m7+n)+')'.Application.WorkBooks.Item(1).WorkSheets.Item(1).Cells.Item(m8,10).Formula = Formula= '=SQRT(F'+Transform(m8)+')'.Application.WorkBooks.Item(1).WorkSheets.Item(1).Cells.Item(m8+1,6).Formula = Formula
1)Спроектировать запрос (реализовать в виде формы), в результате работы которого выполнить следующие действия:
а) данные из .DBF таблицы передать в Excel;
в) полученные данные в Excel обработать с помощью Мастера функций;
с) построить график в Excel по данным результата вычислений;
д) создать отчет в VFP и добавить к нему построенный график из Excel.
9. Использование элементов управления ActiveX при проектировании приложения пользователя
Элементы управления ActiveX являются одним из наиболее мощных средств создания приложений. Элемент ActiveX представляет собой файл с расширением OCX, который имеет интерфейс для управления свойствами, событиями и методами элементов ActiveX как на этапе проектирования, так и во время работы приложения.
Перечень поставляемых с Visual FoxPro элементов управления ActiveX приведен в таблице 1.
Таблица 1 Элементы управления ActiveX
Имя файлаЭлемент управления ActiveXНазначениеCOMCTRL.OCXImageList ControlДля хранения коллекции объектов ListImageListView ControlДля отображения списков различных объектовProgressBar ControlДля визуально?/p>