
- •План лабораторної роботи:
- •Ціль роботи:
- •Хід роботи:
- •1. Розробка структури бази даних на папері (файли plan, prim, norm, zena)
- •Вихідні дані для формування масиву плану виробництва продукції (plan)
- •Додаток 3
- •Методичні вказівки щодо використання ппп скбд visual FoxPro9.0
- •1. Загальні відомості щодо системи visual FoxPro
- •2. Структура даних, елементарні операції
- •3. Основні діалогові команди
- •Основні операції visual FoxPro діалогового режиму
- •1. Створення бази даних
- •2. Створення запиту
- •Методичні вказівки щодо використання ппп скбд visual FoxPro
- •1. Загальні відомості щодо системи visual FoxPro
- •2. Структура даних, елементарні операції
- •3. Основні діалогові команди
- •Основні операції visual FoxPro діалогового режиму
- •1. Створення бази даних
- •2. Створення запиту
3. Основні діалогові команди
3.1. Команди створення БД:
CREATE <ім’я БД> — створення нової БД. Ім’я БД може мати до восьми символів (букв або цифр) і починатися з букви.
Після введення команди на екрані з’являється інформація, яка визначає необхідні дані для створення структури БД:
ІМ’Я ПОЛЯ |
ТИП, ДОВЖИНА |
ТОЧНІСТЬ |
(FIELD NAME) |
(TYPE) (WIDTH) |
(DEC) |
де ім’я поля — рядок не більший восьми символів;
тип поля — С — символьний; N — числовий; довжина — ширина поля, яка дорівнює максимальній кількості символів значення поля.
Якщо поле числове, то ширина поля — кількість цифр цілої частини числа + 1 (на знак розділення) + кількість десяткових цифр (після коми).
Приклад: 1) ширина поля «КНЕУ» дорівнює 4;
2) ширина поля 25,786 дорівнює 6 = (2 + 1 + 3).
Але взагалі в ширину числового поля треба включати ще один символ на знак числа. Точність — кількість цифр після коми.
Тип поля задається натисканням однієї з букв C, N, D або клавіші «пробіл».
Створивши структуру БД, необхідно натиснути 2 рази на клавішу <ENTER>, після чого з’явиться запис
INPUT DATE ? (Y/N)
Для введення даних треба натиснути Y, для виходу з команди — N.
Після натискання Y і після введення всіх даних для виходу з команди треба натиснути клавішу <ENTER>, після чого виконати команду:
USE — закриття БД і запис створеної БД на магнітний диск.
Для відкриття БД і для роботи в нею, необхідно виконати команду:
USE <ім’я БД>,
після чого можна переглянути або вивести на друкування вміст БД чи її структуру:
LIST [<список полів>] [FOR <умова>] — виведення вмісту БД на екран.
DISPLAY [<зона дії>] [<список полів>1 [FOR<умова>] — виведення одного активного запису на екран.
LIST STRU — виведення структури БД на екран.
LIST ТО PRINT — виведення вмісту БД на друкування.
LIST STRU TO PRINT — виведення структури БД на друкування.
3.2. Команди коригування БД:
APPEND — додавання нових записів у кінець БД. Для виходу з команди треба натиснути клавішу <ENTER>, а для запису на магнітний носій — виконати команду USE.
EDIT [RECORD <номер запису>] — редагування одного запису. Для виходу з команди треба натиснути одночасно дві клавіші: CTRL </ W.
BROWSE — повноекранний редактор дає змогу редагувати всі записи, вміщені на екрані. Для виходу з команди треба натиснути одночасно дві клавіші: CTRL / W.
Вилучення записів з БД:
DELETE [<зона дії>] [FOR <умова>]
PACK;
команда
RECAL [<зона дїї>] [FОR <умова>]
знімає помітку вилучення після виконання команди DELETE,
ZAP — вилучення всіх записів БД;
команда
REPLACE [<зона дії>] <поле-1> WITH <вираз1>[, <поле-2> WІТН <вираз 2>... J [FОR<умова>]
змінює значення <поле-1>, <поле-2> значенням виразів після ключового слова WITH.
Команда
LОСАТЕ FOR <умова>
проводить пошук першого запису, для якого виконується УМОВА. Виконуючи команду DISPLAY можна вивести знайдений запис на екран. Для продовження пошуку використовується команда CONTINUE.
GO TOP — переміщення показника запису на початок БД;
GO BOTTOM — переміщення показника запису в кінець БД;
GO <номер запису> — перехід на заданий запис;
SKIP [<± числовий вираз>] — переміщує вперед або назад показник запису від значення <числового виразу> та його знака («+» — уперед, «–» — назад);
? <список виразів> — виведення на екран обчислених значень виразів, або полів;
QUIT — закриває всі бази даних і передає управління операційній системі (вихід з FOXBASE у WINDOWS).
Робота з базами даних: MODIFAY STRUCTURE — оновлення структури існуючої БД.
Для виходу з команди — <CTRL> + W;
команда
SORT ON < ім’я поля-1> [, <ім’я поля-2>,... J ТО <ім’я нової БД>
здійснює сортування активної БД за зростанням полів <поле-1>, <поле-2> і запису нової БД під ім’ям <ім’я нової БД>;
команда
INDEX ON <ключ>-TO <ім’я ключового файла>
створює індексний (ключовий) файл, який відповідає відкритій БД. Для того щоб БД була упорядкована за ключами індексного файла, треба її відкрити за командою:
USE <ім’я БД>, INDEX <ім’я ключового файла>
Для індексованих файлів є дуже швидка команда пошуку:
SEEK <вираз>;
вираз має відповідати значенню ключа, за яким проіндексовано БД. При внесенні змін в БД, необхідно оновлювати індексні файли, які стосуються даної БД. Для цього існують команди:
REINDEX,
яка оновлює всі індексні файли, вказані у попередньо заданій команді, та команда
SET INDEX to <індексний файл-1> [, <індексний файл-2>...],
у списку першим повинен бути той індексний файл, який вказаний у команді БД.
Команда
SELECT <робоча область>
вибирає одну з 10 робочих областей для розміщення одночасно кількох БД: <робоча область> може бути 1÷10, або A÷J.
Кожній робочій області відповідає свій показник запису. Одна БД не може бути відкрита з двох робочих областей одночасно. Дані для поточного запису будь-якої робочої області можуть бути прочитані з якої завгодно робочої області, де відкрито файл. При цьому, використовуючи синтаксис
<псевдонім> ® <ім’я поля>,
можна одержати доступ до поля з другої робочої області.
Команда оновлення БД другої робочої області задається таким чином:
UPDATE ON <ключове cлово> FROM <ALIAS>
REPLACE <ім’я поля> WITH <вираз>
[,<ім’я поля> WITH <вираз>...] [RANDOM]
Вона використовує дані з існуючого файла для зміни вивчення полів записів активної БД, які мають значення ключа, ідентичне значенню ключа файла, вказаного в команді.
БД, у якій проводитимуться зміни, має бути активною в поточній робочій області, редагуючий файл — відкритим в одній із незайнятих робочих областей. Обидві БД мають бути проіндексовані за значенням ключового поля.
Якщо значення ключа змінюваної БД не є унікальним для кожного запису, то тільки перший запис з таким значенням підлягає зміні.
Об’єднання двох БД
Команда
JOIN WITH <ALIAS> TO <ім’я об’єднаної БД>, FOR <умова>, [FIELDS <список полів, які увійдуть до об’єднаної БД>],
об’єднує дві відкриті БД у третю, вказану за ключовим словом to. Активною повинна бути область, де відкрито файл, у записах якого значення ключових полів (за якими об’єднуються дві БД) не повторюються.
Приклад:
SELE 1
USE PRIMDET
SELE 2
USE PLAN
JOIN WITH A TO PLANPRIM FOR KP = = A.KP FIELDS KP EІZH KD PRІМ PLANPGOD
Виконання арифметичних операцій над записами
Команда
TOTAL ON <ключ> ТО <ім’я БД> [<область дії>] [FIELDS <список полів> [FOR <умова>]
обчислює проміжні підсумки полів вказаних в FIELDS з однаковими значеннями ключа.
Команда
SUM <вираз 1> [,<вираз 2>... J [<область дії>] [ТО <список тимчасових змінних>] [FOR <умова>]
підсумовує числові поля (1/або побудовані на їх основі вирази) тих записів відкритої БД, для яких значення <умова> у виразі FOR є «істина» і які помічені виразом <область дії>.
У команді можна задати до п’яти виразів для підсумовування.
Команда
COUNT [<облaсть дії>] [FOR <умова>] [ТО <тимчасова змінна>]
підраховує кількість записів відкритої БД і розміщує в <тимчасову змінну>.
Убудований генератор звітів
СУБД VISUAL FoxPro включає в себе підсистему видавання вмісту БД у вигляді звіту і реалізується в вигляді команди
CREATE REPORT <ім’я звітної форми>,
що створює структуру звітної форми на основі відкритої БД, для якої потрібен звіт визначеної форми; створений цією командою форматний файл звітів має розширення FRM.
Для того щоб записати створений форматний файл звіту, треба перейти до екрану, з яким-небудь полем звіту і натиснути
<CTRL> + W.
Команда
REPORT FORM <ім’я звітної форми> [PLAIN] [NOEJECT][HEADING <символьний вираз>] [ТО PRINT][ТО FILE <ім’я файла>] [SUMMARY]
видає на екран або на друкування звіт, за вмістом активної БД відповідно до підготовленої раніше команди CREATE REPORT форми звіту.
Робота з БД у програмному режимі
Для того щоб працювати з БД у програмному режимі, треба записати послідовність команд (не діалогових) роботи з БД у командний (програмний) файл, який має розширення PRG.
Команда
MODIFY COMMAND <ім’я командного файла>
створює і редагує командний файл з розширенням PRG.
Команда
MODIFY FILE <ім’я текстового файла>
створює текстовий файл з будь-яким розширенням.
У кінці кожного командного файла треба записати команду, яка завершує його роботу. Після створення або редагування командного будь-якого файла, необхідно записати йо-го на МД натисненням клавіш <CTRL> + W. Щоб викликати і запустити на виконання командний файл, треба виконати команду
DO <ім’я командного файла>
Деякі команди, використовувані у програмному режимі:
* — коментарі (не виконувані команди);
STORE <вираз> ТО <список тимчасових змінних> — створює та ініціює одну або декілька тимчасових змінних.
Для означення змінної можна використати альтернативний синтаксис
<тимчасова змінна> = <вираз>.
Для того щоб указати вищий пріоритет тимчасової змінної перед аналогічним іменем поля, треба вдатися до уточненого подання за допомогою символу М. <тимчасова змінна>.
Команда
WAIT [«<деяке повідомлення, яке виводиться на екран»][ТО <тимчасова змінна>]
призупиняє роботу командного файла. Для продовження роботи необхідно натиснути будь-яку клавішу і значення натиснутої клавіші, якщо є ключове слово ТО, передається у <тимчасову змінну>.
Якщо натискується <уведення> або інший недрукований символ, то в <змінну> вводиться пробіл.
Команду
PUBLIC <список тимчасових змінних>
використовують для надання змінним статусу загальних. Ця команда має передувати всім командам, які означують змінні:
STORE <—>.
Команди
DO WHILE <умова>
<команда>
[LOOP] [EXIT]
<команди>
ENDDO
організують повторювання виконання послідовності команд (цикл), які містяться між DO WHILE та ENDDO, допоки значення <умова> — «істина»; LOOP дає змогу перервати виконання і передати управління команді DO WHILE (до початку циклу); EXIT — передає управління наступній за ENDDO команді (вихід з циклу).
Приклад:
* командний файл виведення даних
USE PRIM
GО TOP
SET PRINT ON
DO WHILE .NOT. EOF( )
? FAM + NAM
? «телефон:», TELEF
?
SKIP
ENDDO
SET PRINT OFF
RETURN — кінець командного файла.
Команди
IF <умова>
<команди>
ELSE
<команди>
ENDIF
дають змогу організувати виконання команд залежно від умови: якщо <умова> — «істина», виконуються ті команди, які слідують за IF, потім виконується перехід до команд після ENDIF. Якщо <умова> — «фальш», то виконуються тільки ті команди, які слідують за ELSE.
Команди
DO CASE
CASE <умова 1>
<команди>
CASE <умова 2>
<команди>
[OTHERW ISE]
ENDCASE
використовуються для виконання тільки однієї з кількох послідовностей команд, розміщених після CASE.
Виконуються тільки ті команди, для яких <умова> — «істина», а потім здійснюється перехід до тих команд, які слідують за ключовим словом ENDCASE.
Команди
TEXT
<блок тексту>
ENDTEXT
вміщують у програмний файл уведення тексту, який виводиться на пристрій виведення (екран або друк) залежно від параметра PRINT (SET PRINT OFF/ON).
Команди
?/?? <вираз 1>, <вираз 2>,...
обчислюють список виразів і виводять їх значення на екран;
?? — не переводить курсор на початок наступного рядка.
Команда
<рядок, стовпчик [[SAY <вираз> [PICTURE <шаблон>]]][GET <змінна> PICTURE <шаблон>][RANGE.<вираз N>, <вираз М>] / [CLEAR]
використовується для створення форм користувача для уведення та виведення даних. Ця команда видає інформацію в указаному форматі та у заданих позиціях.
0<= <рядок> <=23
0<= <стовпець> <=79
Для встановлення напрямку видання інформації на принтер необхідно поставити перед цією командою команду
SET DEVICE TO PRINT,
а на екран — команду
SET DEVICE TO SCREEN.
Ключове слово GET видає інформацію з уже існуючої змінної або з якого-небудь поля активної БД.
Команда READ, застосована сумісно з однією або кількома заданими раніше командами ... GET..., активізує режим повно-екранного редагування й всі раніше визначені поля введення можуть бути змінені.
Ключове слово CLEAR витирає частину екрану, починаючи із заданого рядка донизу та із заданого стовпчика праворуч.
Приклад:
команда
7,2 CLEAR
— це вичистити вікно правої нижньої частини екрану, починаючи з 7-го рядка 2-го стовпця.
Ключове слово
PICTURE
дає змогу визначить формат виведення та введення.
Шаблони ключового слова PICTURE
Шаблон формується шляхом завдання поодиноких масок-шаблонів для кожного вивідного або ввідного символу.
Символи шаблону:
9 — дозволяється використовувати тільки цифри в символьних даних;
цифри і знаки (+, –) — для цифрових даних;
# — тільки цифри, пробіли, знаки;
А — тільки букви;
N — букви і цифри;
Х — які завгодно символи;
! — переводити малі букви у великі;
$ — знак долара замість лідируючого нуля;
* — зірочка замість — лідируючого нуля;
— місце десяткової крапки.
Символ $ та * мають сенс тільки за використання SAY.
Символ ! може бути використаний і з SAY і з GET.
Решта символів використовуються тільки з GET.
Приклад:
STORE « » ТО KОD
10.5 SAY «уведіть код» GET KОD РІСТ «AA9999»
READ
Підпрограми
Підпрограма може бути окремим командним файлом, при цьому виклик такої підпрограми здійснюється з викликальної програми оператором DO <ім’я файла>. Повернення управління до викликальної програми здійснюється, коли досягнуто кінець файла підпрограми або виконання команди RETURN.
Підпрограми можна розміщувати у процедурному файлі (розширення PRG). У такому разі їх називають процедурами.
Процедура має таку структуру:
PROCEDURE <ім’я процедури>
[parametrs <список параметрів>]
<команди>
RETURN
Виклику процедури має передувати команда
SET PROCEDURE TO <ім’я процедурного файла>,
з допомогою якої стають допустимими процедури, записані у вказаний файл.
Подальший виклик виконується командою:
DO <ім’я процедури [WHIT <список аргументів>]
Установлення параметрів системи
У VISUAL FoxPro існує низка команд, які встановлюють значення параметрів системи. Їхній синтаксис:
SET <параметр> [ON або OFF]
або
SET <параметр> ТО <значення>
Значення параметрів ON/OFF, прийнятих за замовчанням, вказується першим.
Команда
SET FILTER TO [<умова>]
встановляє умову відбору записів з активної БД. Дія команди поширюється тільки на відкриту БД тієї робочої області, де команду видано. Якщо умова не задана, то команда знімає (або анулює) поставлену раніше умову і поширює дію наступних команд на всю активну БД.
Команда
SET INDEX ТО [«список файлів IDX»]
відкриває індексні файли для відповідних БД, які будуть автоматично оновлюватися. Перший за списком індексний файл є головним, тобто тільки він використовується для команд перегляду, пошуку. Якщо <список файлів> не існує, то закриваються всі індексні файли.
Команда
SET PRINT OFF/ON,
де ON — уся інформація виводиться на друкувальний пристрій;
OFF — інформація на друк не виводиться,
поширюється на всі вивідні на екран команди, окрім команд
... SAYSET TALK ON/OFF,
де ON — результат виконання команд виводиться на екран;
OFF — результат виконання команд не виводиться на екран.
Команда
SET DEFAULT TO <DUCK>
дає змогу вибрати пристрій (активну папку), в якому проводяться всі операції з файлами.
Команда
SET STEP OFF/ON
переводить роботу програми в інтерактивний режим, якщо обрано ключове слово ON;
ON — після завершення виконання кожної команди файла її дія переривається.
Команда
SET BELL OFF
виключає подачу звукового сигналу.
Команда
SET FORMAT TO <ім’я .FМT файла>
активізує додатково створені формати, а команди
... SAY ... GET, APPEND, READ —
уведення та виведення даних.
Команда без параметра <ТО> закриває всі відкриті .FMT файли.
Команда
SET FUNCTION <F2> / ... / <F10> TO <символьний вираз>
дає змогу перепрограмувати функціональні клавіші F2—F10 «;» у складі <символьного виразу> перетворюється на дію клавіші <введення>.
Команда
SET PATH TO [PATH список]
використовується для задання списку шляхів (маршрутів), по яких FoxPro буде виконувати пошук файлів.
Команда
SET PRINTER TO [<DEVICE>/PRN/<ім’я файла>]
дає змогу призначити для виведення інформації або файл, або пристрій.
Команда
SET RELATION ТО [<ключовий вираз> INTO<ALIAS>] [ADDITIVE]
зв’язує два відкритих файли БД з допомогою <ключового виразу>, сумісного з обома базами даних. Одна БД є активною, а інша — відкритою БД в іншій робочій області. Друга БД вказується опцією INTO <ALIAS> і повинна бути проіндексована за <ключовим виразом>, ADDITIVE залишає раніше створені зв’язки без змін.
Приклад:
SELE 1
USE F1
SELE 2
USE F2 INDEX KOD 2
SELE 3
USE F3 INDEX KOD3
SELE 1
SET RELA TO KOD2 INTO B
SET RELA TO KOD3 INTO C ADDI
Команда
SET SAFETY ON/OFF
установлює видачу попередження про запис БД на місці існуючої або пише нову БД на місце старої без попередження;
Команда
SET STATUS ON/OFF
визначає видання або подавлення рядка стану в рядку 22;
Команда
TYPE <ім’я файла з розширенням> [ТО PRINT]
виводить вміст текстового файла (який вимагає тільки символи ASCII) на екран або на друкування.
Функції VISUAL Fox Pro
вбудовані функції:
& <ім’я символьної змінної> — заміна на місце змінної її значення.
Приклад:
STORE «PRIXОD» TO F1
USE &F1
АSС (<символьний вираз>) — повертає значення коду самого лівого символу виразу.
CHR(<двозначне число) — виводить символ, який відповідає значенню аргументу (коду).
COL ( ) — повертає номер стовпця поточного положення курсору на екрані.
EOF ( [<числовий вираз>] ) — перевіряє виконання умови «кінець файла».
Функція повертає логічне значення «істина» (.Т.), якщо показник запису знаходиться після останнього запису або якщо попередні команди SEEK чи FIND не були виконані. У противному разі повертається логічне значення «фальш» (. F.). ERROR ( ) — повертає число, яке відповідає номеру помилки, викликаної виконанням умовного оператоpa ON ERROR.
FILE [<ім’я файла з розширенням>] — повертає логічне значення «істина» (.Т.), якщо існує ім’я файла, вказане як аргумент, і «фальш» (.F.), якщо такого файла не існує.
FOND (<номер робочої області>) — повертає логічне значення «істина», якщо остання команда CONTINUE, FIND, LOCATE, SEEK виконана успішно.
У кожній робочій області може існувати своє значення функції:
ІNКЕY ([<кількість секунд очікування натиснення клавіші>]) — повертає ціле число, яке відповідає коду ASCII для клавіші, натисненої користувачем. Якщо не натиснено на жодну клавішу, то повертається нульове значення;
INKEY (0) — функція чекає натиснення клавіші нескінченно, доки її не буде натиснено;
ІNКЕY ( ) — зразу ж повертає код натисненої клавіші або призупиняє роботу програми, якщо натиснення не було.
ІNТ(<число>) — перетворює будь-яке число (можливо дріб) на ціле число шляхом відкидання десяткової частини після крапки;
LEN (<символьний вираз>) — повертає довжину символьного рядка;
LTRIM (<символьний вираз>) — вилучає пробіли, які мають місце на початку вказаного <символьного виразу>;
MESSAGE ([1]) — функція без apгументу повертає текст поточного повідомлення про помилку. Якщо задається аргумент [1], то повертається вихідний код рядка програми, де виникла помилка.
Приклад:
ON ERROR. DO OBRPOM
***
PROC OBRPOM
APPE BLANK
REPL KОDPOM WITH ERRO ( )
REPL KPOM WITH MESS ()
REPL NRPOM WITH MESS (1)
REPL PROG WITH SYS (16) — ім’я програми, в якій сталася помилка;
PCOL ( ) — повертає поточний номер стовпця для принтера;
PROW ( ) — повертає поточний номер рядка для принтера;
RECCOUNT (<N робочої області>] — повертає кількість записів активного файла (без аргументу) або тієї робочої області, яка вказана як аргумент;
RECNO ([<N робочої області>]) — повертає номер поточного запису активного файла (без аргументу) або файла з робочої області, номер якого задається аргументом;
REPLICATE (<символьний вираз>, <кількість повторень>) — повторює <символьний вираз> стільки разів, скільки вказано в <кількість повторень>;
ROW ( ) — повертає поточний номер рядка в позиції курсора;
RTRIM (<cимвольний вираз>) — повертає значення <символьного виразу> без хвостових пробілів;
SELECT ( ) — повертає номер поточної активної робочої області;
SPACE (<N>) — повертає рядок символів з N пробілами (N<266);
STR (<N>[,<довжина>][,<кількість десяткових знаків>] — перетворює числовий вираз у символьний <довжина> — кількість цілих + 1 + кількість десяткових знаків;
STUFF (<символьний вираз-1>, <пп>, <квc>, <cимволи для заміни>) — заміняє в <символьний вираз-1>, починаючи з <пп>, кількість символів, які задані в <символі для заміни>.
Якщо <символ для заміни> є нульовим рядком (довжина = 0), то <кзс> буде вилучено з <символьного виразу>, починаючи з <пп>.
SUBSTR (<символьний рядок>, <nn>, <кс>) — повертає вказану кількість символів <кс> з <символьного рядка>, починаючи з позиції <пп>.
TIME ( ) — повертає поточний системний час у вигляді символьного рядка, формат: ГГ: ХХ: СС;
TYPE (<символьний вираз) — повертає тип <символьний вираз>.
VAL (<символьний вираз з цифровим символом>) — перетворює <символьний вираз з цифровим символом> у числовий вираз.