лучшие книги по экономике
Главная страница

Главная

Замовити роботу

Последние поступления

Форум

Создай свою тему

Карта сайта

Обратная связь

Статьи партнёров


Замовити роботу
Книги по
алфавиту

Б
В
Г
Д
Е
Ж
З
И
К
Л
М
Н
О

Інформатика та комп’ютерна техніка

Страницы [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ]
[ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ]
[ 33 ] [ 34 ] [ 35 ] [ 36 ] [ 37 ] [ 38 ] [ 39 ] [ 40 ] [ 41 ] [ 42 ] [ 43 ] [ 44 ] [ 45 ] [ 46 ] [ 47 ] [ 48 ] [ 49 ] [ 50 ]

10.2.12. Створення програмних файлів

Ранні версії FOXPRO містили мову програмування Xbase, яка являла собою процедурну мову. VISUAL FOXPRO, як і раніше, підтримує процедурне програмування та, крім того, об’єктно-орієнтоване. Процедурне програмування дозволяє виконувати тільки одну операцію у кожний момент часу. Об’єктно-орієн­товане програмування використовує можливості WINDOWS для одночасного відкриття меню, кількох вікон, блоку діалогу із множиною засобів управління. У цьому випадку кожна дія розглядається як окремий об’єкт і код (програма) реалізації цього об’єкта відокремлений від основної частини програми. У цьому розділі розглядаюся лише елементи процедурного програмування. Об’єктно орієнтоване програмування буде розглянуте у наступному розділі.
Створення програмного файла можна виконати за допомогою меню FILE>NEW та натиснути на селекторну кнопку PROGRAM або ввести команду MODIFY COMMAND <ім’я PRG-файла>.
Виконання програмного файла відбувається за допомогою меню PROGRAM> DO або команди DO <ім’я PRG-файла>.
Редагування програмного файла можна виконати за допомогою меню FILE>OPEN та натиснути на селекторну кнопку PROGRAM або увести команду MODIFY COMMAND <ім’я PRG-файла>.
Наприклад, задано таблицю ПОТРЕБА, яку було отримано на основі уявлення ПОТРЕБА (див. розділ 10.2.10, рис. 10.52, 10.53). Необхідно вивести записи, в яких потреба в деталях (КІЛК_ВИР*КІЛК_ДЕТ) більша за середню. Цю задачу можна виконати за допомогою запиту. Але запит не дозволяє розрахувати середню потребу. Проте у запиті можна використати змінну з будь-якою назвою (наприклад, S) для порівняння з потребою, а перед викликом запиту розраховувати середню потребу і надавати її значення змінній S. На рис. 10.74 та 10.75 зображено дві вкладин­ки створення запиту FIELDS та FILTER, а на рис. 10.76 — програ­ма для запуску запиту. На рис. 10.77 наведено запит мовою SQL.
Для розрахунку середньої потреби використовується команда AVERAGE. Формат команди: AVERAGE <діапазон> [<вираз>] [FOR<логічний вираз>] TO <ім’я змінної>. Змінна повинна бути визначена до виконання команди AVERAGE за допомогою команди STORE або наданням їй значення 0. Наприклад, визначити середню потребу в деталях A1231:
S=0
AVERAGE КІЛЬК_ВИР*КІЛЬК_ДЕТ FOR КОД_ДЕТ="А1231"
Крім команди AVERAGE існують ще дві команди для виконання операцій над групами записів: SUM (підсумовування) та COUNT (кількість записів, що задовольняють заданій умові). Приклад використання цих команд — у розділі «Створення форм».

Рис. 10.74. Вкладинка FIELDS для визначення
полів та виразів, які будуть з’являтися у запиті


Рис. 10.75. Вкладинка FILTER —
задання умов вибирання записів

Рис. 10.76. Запит мовою SQL

Рис. 10.77. Програма, яка обчислює середню потребу
в деталях та запускає на виконання запит
на виведення записів, у яких потреба більша за середню

Процедурна мова VFP містить дуже велику кількість команд. Розглянемо деякі з них.
Умовна команда IF має такий формат:
IF <умова>
<команди>
[ELSE
<команди>]
ENDIF
Якщо умова вірна, виконуються команди, які розташовані після умови, якщо ні — після ELSE. Допускається використання вкладених команд IF. Наприклад, необхідно розрахувати прибутковий податок (ПОДАТОК), який нараховується за такою формулою:

Текст програми та результат її виконання показано на рис. 10.78.

Рис. 10.78. Програма для розрахунку податку на дохід
та результат її виконання

Як бачимо з рисунка 10.78, за допомогою команди INPUT можна ввести будь-яке значення доходу для подальшого розрахунку податку з нього.
Команда форматованого введення-виведення @…SAY…GET має такий формат:
@ <номер рядка>,<номер стовпчика>
[SAY <вираз>
[PICTURE <символ>]
[FONT <назва шрифта> [, <розмір шрифта>]] [STYLE
<стиль>]]
[GET <змінна>
[PICTURE <символ>]
[FONT <назва шрифта> [, <розмір шрифта>]] [STYLE
<стиль>]]
Ця команда з заданої позиції виводить на екран вираз, який записаний після SAY, а змінна, яка записана після GET, виводиться одразу після виразу. Якщо після команди @…SAY…GET задана команда READ, тоді є можливість в інтерактивному режимі ввести або відредагувати значення змінної.
Параметр PICTURE дозволяє задати шаблон відображення виразу або змінної. Наприклад, він може приймати такі значення:

  • А — допускає тільки алфавітні символи;
  • N — допускає тільки літери та цифри;
  • 9 — допускає тільки числові дані;
  • # — приймає цифри, пропуски та знаки;
  • . — описує позицію десяткової крапки.

Параметр СТИЛЬ може приймати такі значення:

  • B — жирний;
  • I — курсив;
  • N — нормальний;
  • U — підкреслений.

Якщо раніше використовувалась команда SET DEVICE TO PRINT (призначення принтера пристроєм для виведення даних), тоді команда @…SAY…GET виконує виведення на принтер. Для поновлення виведення на екран використовується команда SET DEVICE TO SCREEN.
Наприклад, скласти програму редагування заданих записів таблиці ПЛАН_ВИР. Для вирішення цієї задачі програма повинна: визначити додаткові змінні МІС та КОД; відкрити таблицю та індекс, який створений на основі такого ключового виразу: STR(МІСЯЦЬ)+STR(КОД_ВИРОБУ); запросити місяць (змінна МІС) та код виробу (змінна КОД) для пошуку потрібного запису (запит виконати з координат на екрані відповідно 13,20 та 15,20; шрифт встановити «arial», розмір шрифта — 16, стиль — жирний); виконати пошук потрібного запису; якщо запис знайдений, вивести значення поля КІЛЬК_ВИР з можливістю його редагування, у противному разі — вивести повідомлення «запис не знайдено».
На рис. 10.79 наведено програму для розв’язання задачі, а на рис. 10.80 — результат її виконання.

Рис. 10.79. Програма редагування заданого запису
таблиці ПЛАН_ВИР

Рис. 10.80. Виконання програми редагування
заданого запису таблиці ПЛАН_ВИР
Команда циклу DO WHILE має такий формат:
DO WHILE <умова>
<команди>
[LOOP
<команди>]
[EXIT]
ENDDO
Команда DO WHILE працює таким чином: доки умова є вірною, виконуються команди, що розташовані між DO та ENDDO.
Команда EXIT є необов’язковою командою, яка передає управління з циклу DO … ENDDO першій команді, наступною за командою ENDDO. Фактично вона виконує припинення циклу при вірній умові.
Команда LOOP є необов’язковою командою, яка може бути розташована у будь-якому місці структури DO … ENDDO і використовується для обминання команд, розташованих між LOOP та ENDDO.

Приклад 1.
Скласти програму для додавання записів у таблицю ПЛАН_ВИР. У програмі передбачити припинення роботи за бажанням користувача. На рис. 10.81 представлено програму та результат її виконання.


Рис. 10.81. Програма додавання записів у таблицю
ПЛАН_ВИР та результат її виконання
У цій програмі цикл повторюється доти, доки змінна t прий­має значення «Y», «y», «У» або «у» (Перша літера слова YES). Якщо на запитання «Продовжувати введення?» натиснути на будь-яку іншу клавішу, цикл припиниться і, тим самим, припиниться додавання записів. Команда APPEND BLANK створює порожній запис, команда @…SAY…GET запрошує значення полів запису, а команда READ записує ці значення у новий запис таблиці ПЛАН_ВИР.

Приклад 2.
Скласти програму для виведення записів, у яких кількість мен­ша за середню. Цю задачу можна виконати за допомогою команди LIST, але тоді не можна розмістити дані у зручному вигляді. На рис. 10.82 представлена програма та результат її виконання.

Рис. 10.82. Програма виведення кодів виробів, у яких
кількість більша за середню, та результат її виконання

У цій програмі за допомогою команди AVERAGE розраховується середня кількість виробів у 10-ому місяці. Команда GO TOP переміщує покажчик поточного запису на перший запис. Далі починається цикл з команди DO WHILE NOT EOF(), який виконується доти, доки не буде досягнуто кінця файла. Вираз NOT EOF() складається з логічної операції «заперечення» (NOT) та логічної функції EOF(), що приймає значення «TRUE», якщо покажчик поточного запису прийме значення кінця файла. Для переміщення покажчика поточного запису на наступний використовується команда SKIP. Якщо пропустити цю команду, отримаємо «вічний цикл».
Команда циклу FOR…NEXT використовується для організації циклів із відомою кількістю повторень і має такий формат:
FOR <ім’я змінної>=<початкове значення> TO <кінцеве
значення> [STEP <приріст змінної>]
<команди>
[EXIT]
[LOOP]
NEXT
Команди, які розташовані між FOR та NEXT, виконуються доти, доки значення заданої змінної не більше кінцевого значення. Коли команда FOR виконується перший раз, VFP створює задану змінну та надає їй початкове значення. При кожному повторенні команди FOR значення змінної збільшується (або зменшується, якщо приріст від’ємний) на величину приросту змінної STEP. За замовчанням приріст дорівнює 1.
Наприклад, скласти програму, яка повинна вивести на екран у рядок 50 символів «*» з використанням шрифта «Arial» розміром 14:
for i=1 to 50
?? "*" font "arial",14
next

10.2.13. Створення форм

Форми — це вікна, за допомогою яких користувач взаємодіє з програмами та об’єктами даних. Форми мають свої власні властивості, дії та методи, які дозволяють керувати їх виглядом та поведінкою. Форму можна створити за допомогою майстра форм (FORM WIZARD) та конструктора форм (FORM DESIGNER). Форми можна створювати на основі однієї таблиці, двох таблиць або уявлення, яке може бути побудоване на основі кількох таблиць.
Створення форми для роботи з однією таблицею або уявленням за допомогою майстра.
У меню FILE вибрати команду NEW, а потім — FORM і на-
тиснути на кнопку WIZARD. У вікні WIZARD SELECTION (рис. 10.83) вибрати FORM WIZARD.

Рис. 10.83. Вікно вибору майстра форм

На рис. 10.84 зображено вікно першого кроку створення форми — вибирання таблиць та полів, які будуть розміщенні у формі. У полі DATABASE AND TABLES можна вибрати відкриту базу даних або натиснути на кнопку, яка розташована праворуч і вибрати будь-який файл. У першому випадку з’явиться список таблиць та уявлень, котрі містить задана база даних.

Рис. 10.84. Вікно вибирання полів з таблиці
або уявлення для додавання у форму
На другому кроці (рис. 10.85) необхідно вибрати стиль форми та тип її кнопок. Ці параметри впливають тільки на зовнішній вигляд форми. За замовчанням тип кнопок задається як TEXT BUTTONS, (рис. 10.86), тобто на кнопках пишеться назва дії, яка виконується після натиснення кнопки. Якщо вибрати тип PICTURE (рис. 10.87), на кнопках замість надписів будуть розташовані рисунки. Тип NO BUTTONS передбачає відсутність будь-яких кнопок.

Рис. 10.85. Вікно вибирання стилю форми

На третьому кроці задається порядок сортування (див. питання створення звітів за допомогою майстра).
На четвертому кроці вводиться заголовок форми і визначаються деякі додаткові параметри, такі як SAVE FORM FOR LATER USE (зберегти форму для подальшого використання); SAVE AND RUN FORM (зберегти та виконати форму) тощо.
У результаті буде створено файл з розширенням SCX, який являє собою програмний файл.
Форму можна переглянути в процесі її створення натиснувши на кнопку PREVIEW на четвертому кроці. Для подальшого виконання форми використовується меню PROGRAM>DO. Далі треба вибрати тип файлів FORM та потрібний файл. Форму можна виконати також за допомогою команди DO FORM <ім’я SCX-файла>. Наприклад, DO FORM ПЛАН_ВИР. Залежно від заданого типу кнопок з’явиться форма, яка зображена на рис. 10.86 або 10.87.

Рис. 10.86. Виконання форми (тип кнопок — TEXT BUTTONS)

Рис. 10.87. Виконання форми (тип кнопок — PICTURE)

Кнопки панелі управління мають такі значення:

  • TOP — зображення першого запису таблиці;
  • PREV — відміна попередньої дії;
  • NEXT — зображення наступного запису;
  • BOTTOM — зображення останнього запису;
  • FIND — пошук запису; на рис. 10.88 зображено вікно для задання критеріїв пошуку записів;
  • PRINT — виведення вікна діалогу, яке дозволяє вивести на принтер поточний запис, усі записи або зобразити їх у вікні BROWSE;
  • ADD — додавання запису;
  • EDIT — редагування поточного запису;
  • DELETE — вилучення поточного запису;
  • EXIT — завершення роботи з формою.

Рис. 10.88. Вікно задання критерію пошуку записів

Створення форми для роботи з двома таблицями, між якими встановлюється зв’язок «один-до-багатьох» за допомогою майстра.
Така форма створюється аналогічно формі з однією таблицею за винятком того, що у вікні WIZARD FORM вибирається «ONE-TO-MANY» FORM WIZARD, для вибирання таблиць існує два кроки та присутній додатковий крок встановлення відношення між таблицями (рис. 10.89). Треба мати на увазі, що таблиці повинні бути проіндексовані за тими полями, за якими встановлюється зв’язок.
На рис. 10.90 зображена форма для одночасної роботи з таблицями ПЛАН_ВИР та СКЛАД_ВИР.

Рис. 10.89. Вікно для зв’язування двох таблиць

Рис. 10.90. Форма для роботи з двома зв’язаними таблицями

Створення та редагування форм за допомогою конструктора FORM DESIGNER.
Форма як об’єкт являє собою клас контейнера, який може містити будь-яку кількість об’єктів — елементів управління, таких як текстові поля, кнопки, «прапорці», сітки, а також інші контейнери — набори вкладинок. Екранна форма підтримує всі можливості об’єктно-орієнтованої технології програмування. Базовий клас форми містить біля 100 властивостей та 60 методів.
Створення форми за допомогою конструктора (FORM DESIG­NER) відбувається за допомогою меню FILE>NEW, вибрати селекторну кнопку FORM та натиснути на кнопку NEW. Або ввести команду CREATE FORM <ім’я SCX-файла>. В результаті завантажиться вікно конструктора FORM DESIGNER (рис. 10.91).

Рис. 10.91. Вікно констуктора форм FORM DESIGNER

Страницы [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ]
[ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ]
[ 33 ] [ 34 ] [ 35 ] [ 36 ] [ 37 ] [ 38 ] [ 39 ] [ 40 ] [ 41 ] [ 42 ] [ 43 ] [ 44 ] [ 45 ] [ 46 ] [ 47 ] [ 48 ] [ 49 ] [ 50 ]


ВНИМАНИЕ! Содержимое сайта предназначено исключительно для ознакомления, без целей коммерческого использования. Все права принадлежат их законным правообладателям. Любое использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием содержимого сайта.
© 2007-2021 BPK Group.