Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Среднее профессиональное образование 19 страница



12.4.4. Определение позиции печати

PRovvo

Возвращает номер текущей строки на принтере.

Применение команды EJECT (прогон) устанавливает PRO\V() в ноль. 112].

См. пример в п. 12.4.4.


12.5. ФУНКЦИИ РАБОТЫ С МЫШЬЮ

Для управления интерфейсом широко используется манипуля­тор мышь. Позиция курсора мыши определятся с помощью фун­кций, приведенных ниже.

12.5.1. Определение положения маркера мыши

MCOL([<okiio>J)

Возвращает номер колонки, где находится маркер мыши. Ес­ли <окно> не указано, то выдается положение относительно эк­рана или текущего окна. Если маркер находится вне экрана, то возвращается—I.

Пример.

CLEAR? MCOL()

12.5.2. Определение положения маркера мыши

MRO\V([<okho>1)

Возвращает номер строки, где находится маркер мыши (ана­логично МСОЦ)).

Пример.

CLEAR? MR0WO

12.5.3. Контроль нажатия левой кнопки

MDOWN0

Возвращает значение «истина» (.Т.), если левая кнопка мьпш* была нажата во время выполнения функции, и значение «ложь! (.F.) — в противном случае [12]

Пример.

CLEAR

£2,2 SAY 'Нажмите <Esc> для выхода to exit'

DO WHILE.Т.

STORE MDOWNO TO per £4,2 CLEAR TO 4,6 £4,2 SAY per ENDDO

12.6. ТЕХНИЧЕСКИЕ ФУНКЦИИ

Технические функции предназначены для определения состоя­ния и характеристик технических средств персонального компь- кдера, а также текущей среды приложения.

12.6.1- Определение количества доступных функциональных клавиш

FK.V1AX0

Возвращает число фактически доступных функциональных клавиш ПК.

Пример.

CLEAR

SET COMPATIBLE OFF? 'COMPATIBLE OFF'

? 'Доступны функциональные клавиши'

FOR i = 1 ТО FKMAXO? FKLABEL(i)

ENDFOR

SET COMPATIBLE ON

? 'Доступны комбинации функциональных клавиш'

FOR i = 1 TO FKMAXO? FKLABEL(i)

ENDFOR

12.6.2. Определение имени переменной (поля), куда вводятся данные

VARREAD0|SYS(18)

Полностью идентичные функции возвращают (прописными буквами) имя поля/переменной при вводе данных командой если было выполнено прерывание от клавиши с помощью процедуры ON KEY... или сделан вызов пользовательской функ- в опциях VAL1D/WH EN. Функция удобна при вызове на эк­


ран подсказок при вводе данных: для каждого поля — своя под. сказка. Функции можно использовать совместно с командами BROWSE/CHANGE (в параметрах:W,:V,:Е) или с командой ON KEY LABEL <клавиша> DO <процсдура> WITH VARREAD().

Однако имя поля передается в них, по не прописными (боль­шими), кроме первой буквы, а строчными буквами. При жела­нии можно воспользоваться функцией UPPER().

12.6.3. Включение/выключение курсора на экране

SYS(2002[,1])

Включает/выключает (с параметром 1) курсор на экране. Функция аналогична команде: SET CURSOR ON/OFF.



12.6.4. Определение статуса SET-команд

SET(<Bbip. 01,1])

Возвращает текущий статус различных SET-команд.

Если используется параметр 1, то определяется статус SET-I команд вида SET...ON/OFF. Если параметр 1 опушен, то опреде­ляется статус SET-команд вида: SET...TO.

Пример Если ранее командой SETT ALTERNATE ТО model был назначен альтернативный табличный файл с именем model.txt, то использование функции SETO дает следующие результаты:

SET('alter') && возвращает OFF

SET('alter',1) && возвращает D:\FOX\LENA\model.txt.

12.6.5. Определение типа процессора

SYS(17)

Возвращаеттип процессора 18086/88; i80286; i80386 i80486 и т. Д-

12.6.6. Олреление типа видеоадаптера и монитора

SYS(2006)

Возвращаеттип платы адаптера и монитора ПК.

&& возвращает EGA/Color

Пример:

? SYS(2006)

12.6.7. Определение готовности принтера

SYS(13)

Возвращает прописными буквами статус готовности принтера READY — готов; OFFLINE — не готов.

12.6.8. Проверка готовности принтера

PRINTSTATUSO

Возвращает значение «истина* (.Т.), если принтер готов, и значение «ложь» (.F.) — если не готов. Эта функция удобнее SYS(13).

Пример:

I? 1 PR_NTSTATL'S ()

? «Подготовьте принтер» EKDIF

• Лфф XX U* Ы

12.6.9. Определение объема свободной основной оперативной памяти

SYS(12)

Возвращает число свободных байтов основной оперативной памяти (из 640Кб).

12.6.10. Определение объема свободной (доступной) оперативной памяти

MEMoryo

Возвращает число килобайтов доступной оперативной памя- 111 Для загрузки внешних программ по команде RUN или!


12.6.11. Определение общего объема оперативной памяти

SYS(lOOl)

Возвращает размер всей имеющейся оперативной памяти (до 1Мб).

12.6.12. Определение объема оперативной памяти, занятой временными файлами

SYS(16)

Возвращает число — объем оперативной памяти, занятой пе­ременными, окнами, меню, открытыми файлами.

12.6.13. Определение типа монитора

ISCOLOR0

Возвращает значение «истина» (.Т.), если монитор цветной и значение «ложь» (-F.), если монохроматический.

12.6.14. Определение цветовой пары

SCHEME* <вырГЧ1> [,<BMpN2>D

Возвращает цветовую пару номер <BbipN2> списка цветовых пар из схемы цветов номер <вырМ>. Если <BbjpN2> опушено, то выдается весь список.

12.6.15. Определение версии FoxPro

VERSION([l])

Возвращает номер версии пакета FoxPro, а если указан пара­метр I, то и дату создания и номер самого пакета.

12.7. ФУНКЦИИ ВРЕМЕНИ

Для управления параметром «время* программисту предложен широкий набор функций времени.


12-7.1 • Определение времени в часах

HOlR(<Bbip. Т>)

Функция возвращает количество часов из указанного выра­жения в 12-часовом или 24-часовом формате.

12.7.2. Определение времени в минутах

MINUTE(<Bup. т>)

Функция возвращает количество минут из указанного выра­жения.

12.7.3. Определение времени в секундах

SEC(<Bbip. Т>)

Функция возвращает количество секунд из указанного выра­жения.

12.7.4. Определение времени в секундах

SECONDS0

Функция возвращает количество секунд на отрезке между по­луночью и текущим моментом времени в чистовом формате с точностью.001 сек.

12.7.5. Определение времени в секундах

SYS(2)

Возвращает число секунд (в виде строки символов), считая от Полуночи.

12.7.6. Определение текущего (системного) времени

ПМЕ()

Функция возвращает текущее (системное) время в 24-часо- ®°м формате.

12.8. ФУНКЦИИ АНАЛИЗА УСЛОВИИ

12.8.1. Выбор значения по условию

HF(<ycJiOBHe>, <выр1>, <выр2>)

Если <условие> истинно (True), то функция возвращает <выр!>, а если ложно (False), то — <выр2>.

Эта функция может быть помешена практически в любую ко­манду в качестве <выражения> или в другую функцию. Необхо­димо только соблюсти тип выражения. Допускается вложение функций IIF.

12.9. ФУНКЦИИ АНАЛИЗА ТИПА И НАЛИЧИЯ ДАННЫХ

При программном обращении к данным необходимо знать, есть ли данные вообще, а если они есть, то какого типа. Исходя из получен­ного ответа, строится дальнейший алгоритм обработки данных.

12.9.1. Проверка заполнения поля (переменной)

ЕМРТУ(<выр.>)

Возвращает значение "истина” (.Т.), если <выр.> (ноле или переменная) не имеет данных, в противном случае — значение ’’ложь” (.F.).

Поле (переменная) считается пустым в зависимости от его ти­па и содержания (табл. 12.1).

Таблица 12.1

Тип

пробелы

Содержание

символьное

знаки табуляции

возврат каретки

переводы строки

цифровое

даты

False

нулевое значение {..} или {)

логические

memo

отсутствует содержимое мемо-поля

12.9.2. Определение типа данных в поле (переменной)

ТУРЕ(<выр. О)

Возвращает прописной буквой символ, обозначающий тип данных <выр. О:

С — символьный;

N — числовой;

D — лата;

L — логический;

М— мемо-полс,

U — неопределенный.

Имя анализируемой переменной (<выр. С>) должно быть взя­то в апострофы или кавычки.

12.10. ФИНАНСОВЫЕ ФУНКЦИИ

Так как базы данных широко используются для хранения эконо­мических показателей фирм различной сферы деятельности, то для обработки экономических показателей используются функ­ции, представленные ниже. Стандартно поставляемые функции не могут охватить всего круга задач, поэтому дтя каждой конк­ретной фирмы необходимо дополнительно создавать специаль­ные экономические и финансовые функции.

12.10.1. Возврат кредита равными долями

PAYMENT(<Bwp. Nl>, <выр. N2>, <выр. N3>)

Вычисляет размер периодических выплат за взятый кредит, на который установлен определенный процент и указано число периодов погашения кредита:

<вьимата>=РАУМЕКТ(<кредит>, <процснт>, <число периодов>)

Расчет производится по сложной ставке процентов.

Пример. В банке взят кредит на 2 года в сумме 100000 руб- Лей из расчета 10% годовых по сложной ставке процентов с еже­месячным погашением кредита равными долями.

? PAYMENT(ЮСООО, 0.1/12,241 && выводит на экран 4614.49

Если погашать кредит 1 раз в год двумя выплатами, то:

7?AYKENT(100000,0.1,2) && выводит на экран 56719.05

12.10.2. Определение общей суммы, полученной вкладчиком

FV(<BMp. Nl>, <выр. N2>, <выр. N3>)

Результат вычислений сохраняется в переменной <общая сумма>:

<о5щая сумма>=FV(<сумма пер. ззноса>, <процент>, <чис:ю периодоз>)

Пример. В течение 3 лет ежемесячно вносилась сумма 1000 рублей при годовой ставке сложных процентов — 10%. Определить общую сумму, полученную вкладчиком через 3 года.

? FV(1СС0,0.1/12,36) && выводит на экран 41781.82

* Сумма вклада 36*1000 = 36000

* Обдая сумма 41781.82

12.10.3. Определение суммы за будущие платежи

FV(<»np. Nl>, <выр. N2>, <вьф. N3>)

<выплата>=РУ(<период выплаты>, <процент>, <число пе­риодов^

Пример. За аренду помещения надо платить ежегодно по 10000 рублей. Срок аренды — 3 года (30000 рублей). Годовая став­ка процентов — 10%. Какую сумму надо заплатить вперед (сегод ня) за 3 года аренды?

? PV(10000,0.1/12,36) && выводит на экран 25826.03

12.11. ФУНКЦИИ ПОДСТАНОВКИ

Эти функции дают возможность формировать имена перемен­ных. функции и команды непосредственно в программе.

12.11.1. Функция макроподстановки

&<снмв. псремеииая>[<выр. О]

Превращает содержимое <снмв. пере енной> или мемо-поля непосредственно в объект, который она изображает.

Пример.

а=''model.dbf''

USE &а

Иногда удобно имя файла формировать программным спосо­бом, тогда функция & незаменима.

Если имеется несколько однотипных файлов отличающихся номерами: model 1.dbf, model2.dbf, model3.dbf и т. д., то для открытия нужного файла надо выполнить команды:

INPUT 'Укажите номер файла' СО пет && нажать клавишу 3 п = 'model' LTRIM (STR (пот.))

USE &п && выводит на экран mode 13

Аргументом функции & являются вес символы, следующие за & до первого пробела.

Если необходимо составить фразу, содержащу ю кроме макро­подстановки и некоторую строку <выр. О, то их соединяют точ­кой. Если <выр. О уже содержит точку, то их должно быть две.

INPUT 'Укажите номер удаляемого файла' СО пот п = 'model' + LTRIM (STR (пот))

ERASE &п..dbf

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

ERASE (п + '.dbf')

Макроподстановка может применяться и дтя формирования

команд:

INP'JT 'Укажите номер удаляемого файла' ТО пот п = 'ERASE T.cdel' + LTRIM (STR (пот)) + '.dbf'

Ьп

Запрещено формировать команду после символа «&*, поэто­му запись:

й'ERASE model' - LTRIM (STR (nom)) + '.dbf'

является недопустимой.

Допускается вложение макроподстановок друг в друга. Общая длина одной макроподстановки не должна превыша 255 символов.

Пр и м е р: команду DISPLAY ALL можно представить

X ='DISPLAY' у ='ALL'

&х &у && пробел обязателен, т.к. он присутству­ет в команде DISPLAY ALL

либо X ='DISP' у ='LAY ALL'

&х&у

12.11.2. Вычисление результата выражения

EVALUATE(<Bup. О)

Рассматривает <выр. О как некоторую формулу и возвраща­ет вычисленный результат. Эта функция используется только в составе команд и работает очень быстро.

Пример.

? EVALUATE (' 2**3 '), EVALUATE (' DATE O')

&& выводит на экран 8, 05-01-94

USE model

? EVALUATE('rame„model')

да выводит на экран Волга

12.11-3. Команда вызова функции без присвоения

=<выр.>[,<выр.>].„

В качестве <выр.> можно использовать как встроенные функ­ции, так и пользовательские функции [12].

Пример.

= CAPSLOCK(True) && эта команда повлечет переход

* на верхний регистр

= INKEY{120) && эта команда повлечет паузу в

* 2 кинуты.

12.12. НЕКОТОРЫЕ ПОЛЕЗНЫЕ ОПЕРАТОРЫ

12.12.1. Оператор комментария

Скоманда | функция | оператор > && < строчной комментарий

В некоторых случаях удобно текст программ снабжать строч­ным комментарием. Строчный комментарий облегчает чтение программы. Оператор && означает, что далее следует текст-по­яснение.

12.12.2. Оператор сравнения

<выр. 1> # <выр. 2>

Если <выр. 2> не входит в <выр. 1>, то оператор возвращает значение «истина* (.Т.).

12.12.3. Комментарий в целую строку

* < комментарий >

Комментарий занимает всю строку. Оператор «* * пишется с первой позиции.

12.12.4. Оператор продолжения строки

Наличие символа «;» в конце строки означает, что следующая стРока — продолжите этой строки.


При работе с базами данных информация хранится в таблицах. Просмотр табличной информации в явном виде неудобен. Поэто­му информацию из таблицы (или таблиц) извлекают, группи­руют, сортируют и выводят на экран или бумагу. Под отчетом понимают отформатированную информацию, которая выводится на экран, принтер или в файл. FoxPro позволяет создать несколь­ко видов отчетов:

• одностраничный табличный отчет;

• многостраничный табличный отчет;

• отчет в свободной форме;

• почтовая этикетка.

Табличный отчет представляет собой регулярную структуру, которая состоит из произвольного количества однотипных запи­сей. В качестве столбцов (полей) можно использовать физические поля таблицы (или нескольких таблиц) и вычисляемые поля. По желанию пользователя строки могут быть сгруппированы и отсортированы.

Если отчет создан в свободной форме, то информация, при­надлежащая одной строке таблицы, может быть размещена на экране или бумаге произвольным способом. В этом случае одна строка занимает весь экран или весь печатный лист.

Почтовая этикетка является разновидностью отчета в свобод­ной форме. На части печатного листа формируют почтовый адрес адресата и адресанта. Затем созданный блок многократно размно­жают на листе. При этом в каждую почтовую этикетку будет поме­щен уникальный почтовый адрес адресата (клиента фирмы) ** одинаковый почтовый адрес адресанта (самой фирмы).


 

РРР

 

А

 

 

 

 

 

 

-

М,|.

&

V

£»*vxv#

. ' Г

Гг.

Л

i/I-

J

 

 

.

 

< с'

 

VV

 

.И*

 

 

E3 Fgrni

■ 5Я?33

£? Lsbri.

MiciotuM Vitud FonPtb


1 " - '■


Рис. 13.1. Запуск Мастера отчетов.

В Visual FoxPro создать любой из отчетов можно одним из спо­собов:

• Стандартный отчет (Quick Report) — отчет создается по дан­ным одной или нескольких таблиц; в отчет помешаются все поля всех указанных таблиц;

• Мастер отчетов (Report Wizard) — отчет создается поданным одной или нескольких таблиц; допускается произвольный выбор полей из указанных таблиц, сортировка и группиров­ка данных, изменение стиля отображения данных;

• Конструктор отчетов — при создании отчета любого вида предварительно открывается база данных (проект), для ко­торой надо создать отчет.

Для запуска Мастера отчетов надо выполнить следующее:

• На вкладке окна проекта выбрать кнопку Document. Если вкладка Document содержит кнопки управления, то выбрать

кнопку New. Если на вкладке Document кнопок управлений нет, то на экран надо вызвать контекстное меню, из которо­го выбрать команду New (рис. 13.1).

Эту же процедуру можно выполнить через главное меню Visual FoxPro подав команду File, а в подменю надо указать команду New.

В том и другом случае на экран выводится диалоговая панель New Report (рис. 13.2), где надо выбрать одну из кнопок:

• Report Wizard — запускает Мастер отчетов.

Рис. 13.2. Задание способа создания отчета.

• New Report — запускает Конструктор отчетов.

New Report

E3

 

 

 

...

 

 

•. V'.

i_J

 

Report

iJew Report

 

If Canoe?;|

 

 

.... . .

 

Wtzatd Selection


 

Лгу» R-«■<' Wca«J

----- TTT.---- " ".

ШШ

Report Wizard

 

 

 

 

i/\

 

 

щ

 

______

 

ОеяДч'юо:

Столе? a(£*cut that croup* lecctdt I pie eparert trice locoidj horo i chtd tabe


 

:'rA

Рис. 13.3. Выбор способа создания отчета.

После запуска Мастера отчетов надо определить, какие данные из одной или нескольких таблиц будут помешены в соала- ваемый отчет. Для этого в диалоговой панели Wizard Selection (рис. 13.3) надо выбрать одну из команд:


• One-to-Many Report Wizard — создание отчета по данным из нескольких таблиц, тогда между таблицам и будут установле­ны взаимосвязи «один-ко-миогим*.

• Report Wizard — создание отчета по данным одной таблицы.

13.1. СОЗДАНИЕ ТАБЛИЧНОГО ОТЧЕТА ПО ДАННЫМ

ОДНОЙ ТАБЛИЦЫ С ПОМОЩЬЮ МАСТЕРА ОТЧЕТОВ

В диалоговой панели Wizard Selection надо выбрать команду Report Wizard и нажать кнопку Ок.

Все диалоговые окна Мастера отчетов содержат по пять иго­лок управления:

• Cancel — отказ от построения отчета.

• Back — возврат к предыдущему шагу построения отчета;

• Next — переход к следующему шагу построения отчета;

• Finish — построить отчет по указанным данным;

• Help — выводит на экран контекстную подсказку.

На первом шаге Мастера отчетов «Step 1 — Select fields» (рис. 13.4) надо определить имя таблицы, по значениям которой

fwalable fiotds



) 1 Select Fetdt Whcb bcuit do vcuwint rt >>511 teport?

Setectpdatabstewf/eo Taofcs tern abfeotvrv»,

and iHen «fed tfe ftekb >юи wart.


Rcpoit Wizoid


Repoit Wizard


a^c S ьптжу Options"




How do ум кам(tc jKwn,.xr гесовд? You can select из to

I4*»!* c4 ffOCprigt


I T с soscdy о эгоа4* crf.eoa lor»he ijoupi’Xtcfck Giouprq


1:1


3]


•w.i

гл/уЛ


S ximaydVjiv.


J|


J


Fkisf:



Г


будет создан отчет. В раскрывающемся списке Databases and tables надо выбрать имя базы данных, которой принадлежит нужная | нам таблица. Ниже раскрывающегося списка расположено окно, в котором перечислены имена всех таблиц, принадлежащих вы­бранной базе данных. Справа от раскрывающегося списка Databases and tables расположена кнопка обзора, при помо­щи которой можно определить место хранения базы данных.

В окне Available fields указаны имена полей выбранной табли­цы. Поля, значения которых надо поместить в отчет, по очереди выделяют курсором и нажимают одну из кнопок:

перенос выбранного поля из окна Available fields в окно Selected fields.

I; перенос всех полей из окна Available fields в окно Selected ” fields. |

Если поле помещено в отчет ошибочно, то это поле выделяют курсором в окне Selected fields и нажимают одну из кнопок:

удаление выбранного поля из окна Selected fields.


На втором шаге «Step 2 — Group Recodrs» создания отчета оп­ределяется необходимость группировки данных в отчете. По умолчанию группировка данных не производится (None), то есть данные помещаются в отчет в том порядке, как они хранятся в таблице. Для задания группировки по значению какого-либо по.ля надо в раскрывающемся списке «1» выбрать имя нужного поля. Допускается группировка данных внутри указанных ipvnn данных по значениям других полей. Глубина вложения группиро­вок — 3, то есть имеются раскрывающиеся списки с именами «2» и «3» (рис. 13.5).

Если задана группировка по значениям хотя бы одного паля, то становится доступной кнопка Grouping Options. Эта кнопка позволяет задать интервалы группировки значений поля и выво­дит на экран диалоговую панель Grouping Intervals (рис. 13.6). Ес­ли поле группировки символьное, то интервал группировки Entir* Field задается либо по одной первой букве, либо по первым дву*1 буквам и т. д. Если поле группировки числовое, то ин тервал груп­пировки Exact Number задается либо по первому десятичному


удаление всех полей из окна Selected fields.


Рис. 13.5. Задание группировки данных.

разряду, либо по первым двум десятичным разрядам и т. д. Интер­вал группировки может быть задан по каждому указанному полю группировки данных.

Для каждого числовою столбца (поля) отчета можно задать вычисление итогового значения по столбцу. После нажатия


У Entire Fiod

■МЧ

 

£ пЬге FiaW

 

■!

SrCM*n$cUsiy£is;


a Letter

|Г Initial Letter* 3 Initial Letta* • Initial Letter* - Initial Ldtsu


ВУ:Ы----------------------------- -.--.у,...'------ I


Wh©* гродгд V'JKVftj; >>.>; wart f<y сгоир-fevfi ГрЗД?


Ccred { < j-acfc J


О roup д Int val


Group-teveJ held*


I Ic

2\


Nan»book


зГ


 


Field.

! Sum

Avj * C«nl

Mir Мех 1

IZ.cOfcJl

Meme_book

Г

г Т

г

Г

CjtdsI j

Yeer

г

г г

г

Г

VaKme

г

г г

г

Г* %

 

 

г

г г

г

г- V

 

^sage

г

г г

г

г.

 

$uiam<*y> Oplioru


Г5" г-х! $_rvivyy jgrnttat1, criy


Г CafcUiie paocr* oUoist 1от sum


 


t*ot««s


 

ЩШШЯ1Ш

Рис. 13.7. Задание вычисления итогового значения.

кнопки Summary Options на экран выводится диалоговая панель Summary Options (рис. 13.7).

Для каждого числового столбца (поля) можно задать вычисле­ние следующих итоговых значений:

Sum — вычислить сумму по столбцу;

Avg — вычислить среднее значение по столбцу;

Count — определить количество значений в столбце;

Min — определить минимальное значение столбца;

Мах — определить максимальное значение оголбца.


Дата добавления: 2015-09-29; просмотров: 17 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.073 сек.)







<== предыдущая лекция | следующая лекция ==>