ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    курсовик по FoxPro
         

     

    Інформатика, програмування

    Міністерство освіти Російської Федерації

    Кубанський державний технологічний університет

    Кафедра??

    ПОЯСНЮВАЛЬНА ЗАПИСКА

    до курсової роботи з предмету передача даних в інформаційно керованих системах

    тема курсової роботи:

    «Створення та управління базою даних в СУБД FoxPro».

    Виконав
    : Студент гр. ??-??-??

    ????

    номер залікової книжки ??-??-???

    Керівник:???

    ????

    ???

    2001

    Державний комітет Російської Федерації з вищої освіти

    Кубанський державний технологічний університет

    ЗАВДАННЯ


    На курсову роботу

    Студенту гр.

    З дисципліни

    Тема курсової роботи

    Вихідні дані

    1 Виконати завдання:

    1.1

    1.2

    1.3

    1.4

    1.5

    1.6

    1.7

    1.8


    2 Оформити розрахунково-пояснювальну записку

    3 Основна література

    Завдання видано

    Термін здачі роботи

    Завдання прийняв

    Керівник

    Робота захищена

    З оцінкою

    ЧЛЕНИ КОМІСІЇ:

    РЕФЕРАТ

    реляційна база даних, реляційна ТАБЛИЦЯ, ПЕРВИННИЙ КЛЮЧ,
    ВТОРИННИЙ ІНДЕКС, ІНФОРМАЦІЙНИЙ ЗАПИТ.

    У цій роботі розглянуто питання реалізації реляційноїбази даних, яка містить одну таблицю. Поставлено завдання реалізації самоїбази даних, а також інформаційних запитів до неї в СУБД FoxPro. Базаданих і таблиця були створені за допомогою внутрішніх візуальних засобіввибраної СУБД, а інформаційні запити оформлені у вигляді окремихпрограм, що входять в проект Visual FoxPro.

    Курсова робота містить 34 сторінки, 1 таблицю, 17 малюнків, 4джерела.

    ЗМІСТ

    Введення
    .................................................. ....................... 5

    Опис предметної області

    ......... ................................ 6

    1. Словесний опис предметної області .......................... 6

    2. Опис предметної області у вигляді діаграми ................ 6

    Складання словника даних ................. ........................... 7

    Складання структури бази даних ........... ...................... 7

    Складання програмних запитів до бази даних .............. 8

    3. Створення бази даних

    ........................................ ........... 8

    4. Виконання фільтрації, індексації, пошук записів .......... 12

    5. Пошук записів за допомогою циклів WHILE і SCAN .............. 13

    6. Побудова меню і видача повідомлень ............................. 14

    7. Вивчення графічних можливостей

    ............................... 15

    8 . Використання модулів (підпрограм) ............................ 16

    9. Страхове копіювання даних та реалізація довідки ......... 17

    10. Створення нових таблиць і арифметичні дії ........... 20

    Висновок
    .................................................. ................... 23

    Список літератури
    .................................................. ......... 24

    Додаток А
    .................................................. ................ 25

    Додаток Б
    .................................................. ................ 26

    Додаток В
    .................................................. ................ 28

    Додаток Г
    .................................................. ................ 29

    Додаток Д
    .................................................. ................ 31

    Додаток Е
    .................................................. ................ 32

    Додаток Ж
    .................................................. ............... 34

    ВСТУП

    Сучасне виробництво неможливе без керуючих систем різноїступеня складності. Але будь-який управляє системі необхідно відповіднеінформаційне та програмне забезпечення, інакше вона не зможе продуктивнопрацювати. Якщо розглядати інформаційне забезпечення (бази даних), тосучасний ринок програмного забезпечення може запропонувати доситьвеликий вибір систем управління базами даних (СУБД), орієнтованих нарізних користувачів: від дрібних підприємців до великих підприємстві корпорацій. Наш вибір FoxPro обумовлений насамперед різнобічністюцієї СУБД, зручністю як для розробника програм, так і для звичайногокористувача. Наявність в ній мови програмування дозволяє створюватискладні системи обробки даних, орієнтовані на конкретні завдання інавіть під конкретного користувача. З іншого боку, в ній відображені і врізною мірою використовуються багато сучасні технології програмування:
    ActiveX, COM, SQL, ODBC, OLE, DCOM, API і ISAPI, і багато іншого. При всьомуце вона зберегла сумісність зі старими версіями під DOS, створенимище фірмою Fox Software. Якщо ще додати, що FoxPro реалізований також всередовищах Macintoch і Unix, то наш вибір стає обгрунтованим.

    Завданням даної курсової роботи є побудова бази даних івиконання над нею заданих операцій. База даних і таблиця були створені здопомогою діалогових вікон, а операції з базою даних виконані за допомогоюпрограм.

    1. Опис предметної області

    1. Словесний опис предметної області

    Предмет складання бази даних - надходження товарів на склад.
    Складемо концептуальну модель представлення реальності в базі даних.
    Згідно з умовою, єдиним об'єктним безліччю є об'єктнебезліч "товари". До його складу входить незліченна кількість об'єктів -
    "Степлери", "дискети", "олівці" та ін Кожен з цих об'єктів маєоднаковим за структурою безліччю атрибутів (ознак). Кожен затрибутів характеризує конкретний об'єкт з будь-якої сторони: кількість,якість, ціна і т.д.

    Приклад: об'єкт "клавіатури" входить до складу об'єктного безлічі
    "Товари" і володіє наступними атрибутами: найменування (клавіатури), ціназа одиницю товару (150 р.), кількість одиниць товару (3), одиниця вимірутовару (штука), дата надходження (01.04.2001), якість товару (середнє),постачальник (Тайвань).

    2. Опис предметної області у вигляді діаграми

    На підставі попереднього пункту складемо концептуальну модельмайбутньої бази даних у вигляді діаграми "об'єкти-зв'язку".

    Малюнок 1.1.1 - Діаграма "об'єкти - зв'язки".

    2. Складання словника даних

    На основі моделі даних складемо словник даних. Словник даних --це система, в якій зберігається інформація про об'єкти, їх атрибути, прозначеннях і форматах представлення даних. Опишемо призначення і властивостіполів реляційної таблиці "товари".

    - Назва продукту. Служить первинним ключем, за яким можна отримати доступ до будь-якої рядку таблиці. Тип даних - рядковий

    (Character), довжина - 20 символів. Ширина поля - 20 символів.

    Можливі значення - назви товарів, що мають відношення до офісу.

    - Ціна одиниці товару. Зберігає ціну певного виду товарів. Тип даних - грошовий (Currency) точністю до 4 знаків після коми.

    Ширина поля - 8 символів. Можливі значення обмежені шириною поля.

    - Кількість одиниць товару. Зберігає число одиниць товару, що знаходяться в даний момент на складі. Тип даних - цілий (Integer). Ширина поля - 4 символу. Можливі значення обмежені шириною поля.

    - Одиниця вимірювання. Зберігає назва одиниці виміру товару. Тип даних - рядковий (Character), довжина - 15 символів. Ширина поля -

    15 символів. Можливі значення - відповідно до першого полем таблиці.

    - Дата надходження. Зберігає число, місяць і рік надходження товару.

    Тип даних - вираз дати (Date). Ширина поля - 8 символів.

    Можливі значення записуються у форматі: мм/дд/рррр, де мм - номер місяця (01 .. 12), дд - день (01 .. 31), рррр - номер року.

    - Якість товару. Зберігає умовну оцінку якості надійшов товару. Тип даних - рядковий (Character), довжина - 7 символів.

    Ширина поля - 7 символів. Можливі значення - 'висока',

    'середня', 'низька'.

    - Постачальник. Зберігає назва країни - виробника даного товару.

    Тип даних - рядковий (Character), довжина - 20 символів. Ширина поля - 20 символів. Можливі значення обмежені коректними назвами країн.

    3. Складання структури бази даних

    На підставі діаграми і словника даних складемо структуру базиданих "Goods". Оскільки на діаграмі зображено тільки одне об'єктнебезліч, то, отже, в базу даних буде входити лише одинреляційна таблиця. Перерахуємо і дамо назви полів таблиці
    "Table_Goods" відповідно до діаграмою:

    Таблиця 3.1 - Поля таблиці "Table_Goods"

    | Значення поля | Ім'я поля | Тип | Довжина |
    | Найменування | Name_unit | Character | 20 |
    | Ціна за одиницю товару | Price_unit | Currency | |
    | Кількість | Amount | Integer | |
    | Одиниця виміру | Unit_measure | Character | 5 |
    | Дата надходження | Date_recep | Date | |
    | Якість товару | Quality_goods | Character | 7 |
    | Постачальник | Supplier | Character | 20 |
    | Загальна сума (ви-| Sum = Amount * Price_unit | Numeric | |
    | числяться поле) | | | |

    4. Складання програмних запитів до бази даних

    Розпочнемо програмної реалізації бази даних. Взагалі слідвідзначити, що в Visual FoxPro є 2 шляхи реалізації майже будь-якийзавдання: візуальний і програмний. У першому випадку необхідні діївиконуються за допомогою команд меню самого FoxPro і спеціалізованихмайстрів. У другому - за допомогою вбудованої мови програмування,уряд отримав у спадщину ще від попередніх версій. У всіх випадках ми будемо користуватисядругим способом, окрім самого створення бази даних. Справа в тому, що напершому етапі необхідно створити так званий проект Visual FoxPro, вскладу якого надалі будуть входити всі без виключення використовуванінами компоненти. Для більшої наочності бажано створити проект
    "Вручну". Крім того, існують 2 види таблиць FoxPro: вільні тапов'язані, тобто що входять до складу баз даних. Наша таблиця відноситься додругого типу, в той час як команда CREATE TABLE створює вільнутаблицю. З урахуванням цього, створення бази даних проведемо візуально, а всіінші маніпуляції - програмно.

    1. Створення бази даних

    База даних створюється за допомогою диспетчера бізнес-проектів Visual FoxPro.
    Спочатку створимо новий проект. Назвемо його Kurs і розмістимо його в папці
    MyProject.

    Малюнок 4.1.1 - Вікно диспетчера проектів

    Всі компоненти, які ми зможемо створити, можна пов'язати з проектом,при етоім вони будуть зберігатися в "рідною" каталозі проекту.

    Тепер можна створювати базу даних. Натиснувши правою кнопкою миші напідрозділ "Бази даних" розділу "Дані". Необхідно ввести ім'я майбутньоїбази даних. Нову базу даних зберігаємо в папці проекту. Після цьогоз'являється вікно Дизайнера баз даних. З його допомогою можна додавати в базуданих нові компоненти: таблиці, запити, локальні і віддаленіподання, з'єднання і впроваджені процедури.

    Малюнок 4.1.2 - Вікно Дизайнера баз даних

    За допомогою Дизайнера баз додамо в проект таблицю.

    Після присвоєння імені нової таблиці створюємо її структуру ввідповідно до завдання. Структура таблиці представляє собою список поліві їх характеристику: тип даних, розмір, довжину символьного подання
    (для типу Character) та ін У полі "Caption" можна вказати напис-заголовокстовпця для кожного поля, що буде висвітлюватися при відображеннітаблиці.

    Малюнок 4.1.5 - Створення структури таблиці

    Після завершення введення можна переглянути отриману структуру порожнійтаблиці, вибравши в меню команду Browse.

    Заповнити таблицю можна за допомогою тієї ж команди, якщо вибрати вменю "Edit" пункт "Append mode" ( "Режим долучення"). Результат заповненнятаблиці даними показаний на малюнку 4.1.6.

    Малюнок 4.1.6 - Записи таблиці Table_Goods.

    2. Виконання фільтрації, індексації, пошук записів

    У FoxPro є команда

    SET FILTER TO, яка дозволяє встановити FOR-умова для всіх без виняткукоманд обробки даних. Тут вказує на те, які самезаписи можуть бути доступні для обробки.

    Виконаємо фільтрацію по полю "Постачальник". Якщо після цього, наприклад,написати команду BROWSE, то це буде еквівалентно BROWSE FORsupplier = 'Росія'.

    Малюнок 4.2.1 - Результат фільтрації по полю supplier.

    Створення індексних файлів в базах даних має на меті прискоренняпошуку записів і для упорядкування записів в таблицях. Взагалі в FoxProіснують 2 типи індексних файлів: *. idx (звичайний індексний файл) та *. cdx
    (складової індексний файл, що містить кілька індексів). У нашому випадкупотрібно провести індексацію по одному полю - полю "Кількість товару",тому створюємо звичайний індексний файл indtab.idx в папці проекту за допомогоюкоманди:

    INDEX on amount to C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1indtab

    Слід зазначити, що таке індексування проводиться тільки зазростанням. Відобразимо отриманий результат за допомогою команди LIST

    LIST amount, name_unit, price_unit

    Отриманий результат відображено на малюнку 4.2.1

    Малюнок 4.2.1 - Результат індексування.

    відобразити всі записи про товари низької якості

    BROWSE FOR quality_goods = 'низька'

    Малюнок 4.2.2 - Записи про товари низької якості.

    Знайдемо номер перший із записів про товар у кількості 10.

    LOCATE FOR amount = 10

    Знайшовши запис, FoxPro встановить внутрішній покажчик на необхіднузапис, не виводячи жодних повідомлень. Те, що запис було знайдено, можнапобачити в рядку стану головного вікна FoxPro.

    Малюнок 4.2.3 - Рядок стану FoxPro.

    Повний текст програми наведено у додатку А.

    3. Пошук записів за допомогою циклів WHILE і SCAN

    Для послідовного пошуку самої першого запису бази даних,задовольняє заданому FOR-умовою і до тих пір, поки дотримується WHILE -умова (якщо є), застосовується команда LOCATE. Для продовження пошуку,розпочатого командою LOCATE, застосовується команда CONTINUE.

    Реалізація ітераційних циклів, тобто циклів із заздалегідь відомимумовою їх закінчення і невідомим числом повторів, виконується наступногоінструкцією:

    DO WHILE

    ENDDO

    Для послідовного перегляду бази даних, пошуку всіх записів,задовольняють умови і виконання над знайденими записами будь-якихоперацій, служить команда SCAN.

    SCAN [] [FOR]

    ENDSCAN

    За завданням необхідно знайти всі товари, поставлені з Росії, атакож загальну вартість всіх товарів, що надійшли на склад у період з
    15.01.2001 по 15.03.2001. Кожен з цих запитів, у свою чергу,реалізований в 2-х варіантах: з використанням циклу WHILE і з використаннямциклу SCAN. Повний текст програми наведено у додатку Б, а результатроботи - на малюнку 4.3.1.

    Малюнок 4.3.1 - Результати роботи програми.

    4. Побудова меню і видача повідомлень

    Для організації в програмах POPUP-меню необхідно спочатку визначитипараметри майбутнього меню за допомогою команди

    DEFINE POPUP,

    куди входить ще досить багато параметрів. Видача меню проводиться покоманді

    ACTIVATE POPUP.

    Для виконання якої-небудь дії при натисканні клавіші або сполученняклавіш, використовується наступна команда:

    ON KEY [LABEL <ім'я клавіші>] [команда].

    За завданням потрібно вивести POPUP-меню з полями Name_unit,
    Quality_goods, Supplier, якщо в таблиці БД є товари з ціною <100 р.
    Крім того, при натисненні Alt + F1 необхідно вивести повідомлення 'Помилкапам'яті '. Повний текст програми наведено у додатку В, а результат роботи
    - На малюнках 4.4.1 та 4.4.2.

    Малюнок 4.4.1 - POPUP-меню.

    Малюнок 4.4 .2 - Повідомлення, що видається за Alt + F1.

    5. Вивчення графічних можливостей

    FOX PRO містить засоби створення зображень з елементівпсевдографіки:

    @ BOX.

    Команда формує в заданих координатах рамку фон прямокутника збудь-яких символів, які включені в. Це символьний вираз можемістити до 9 символів (по 4 символу для кутів та сторін прямокутника,починаючи з лівого верхнього кута за годинниковою стрілкою).

    @ TO [DOUBLE/PANEL /] -

    команда формує рамку з координатами X1, Y1 та X2, Y2.

    @ SAY -

    команда виводить текст, починаючи з координат X, Y.

    Для завдання кольору у всіх вищенаведених командах використовується опція
    COLOR із зазначенням необхідної колірної схеми. Причому при описі кольорунеобхідно вказати не тільки колір елементу, якого ми хочемо намалювати,але і колір фону, на якому виробляється малювання (у нашому випадку - білий).

    У завданні необхідно побудувати діаграму кількості товарів. Черезнестачі місця виведені не назви, а номери товарів. При цьому стовпчик,що відноситься до найдорожчого товару, намальований червоним кольором, а до самогодешевому - зеленим, про що сказано в легенді.

    Повний текст програми наведено у додатку Г, а результат роботи --на малюнку 4.5.1.

    Малюнок 4.5.1 - Діаграма кількості товарів.

    6. Використання модулів (підпрограм)

    У мові FoxPro можуть використовуватися зовнішні і внутрішні процедури.

    Зовнішня процедура - це сукупність команд, що здійснюють зазвичайякісь закінчені дії з обробки даних і утворюють окремийкомандний файл, тобто окремо програму (модуль).

    Звернення до процедури виконується командою DO:

    DO

    [WITH] [IN]

    У процедуру можуть бути передані і з неї отримано деякі величини,зазначені в списку параметрів після слова WITH. Цими величинами можуть бутине тільки змінні і константи, але будь-які дозволені вирази. У такомувипадку першою командою в викликається процедурою має бути команда,сприймає їх:

    PARAMETERS

    Сукупність команд, що становлять внутрішню процедуру, повиннапочинатися командою

    PROCEDURE

    Для позначення кінця процедури з возратом в викликає модуль мо?? етвикористовуватися команда RETURN, хоча вона і не обов'язкова.

    За завданням потрібно, використовуючи модулі, вивести відомості про товари,що надійшли пізніше 15.02.2001, а також вивести відомості про товари, у якиходиниця виміру - шт.

    Повний текст програми наведено у додатку Д, а результат роботи --на малюнку 4.6.1.

    Малюнок 4.6.1 - Результати роботи програми.

    7. Страхове копіювання даних та реалізація довідки

    Збій/відключення комп'ютера в момент виконання операцій в прикладнійсистемі викликати важкі наслідки для даних. Щоб уникнути цього, можназробити страхове копіювання всіх або більшості даних на самому початкуроботи в спеціальну директорію, а в самій програмі передбачитиможливість їх повернення в основну директорію.

    Зручним є підтримка в програмі спеціальної змінної (наприклад, з ім'ям NORMZ), що фіксує нормальне/ненормальне завершенняпрограми, а також змінної (NORMD) - дати поточного сеансу та збереженняїх у спеціальному МЕМ-файлі (NORM.MEM). Змінна NORMZ повинна матизначення `істина`, якщо останній сеанс роботи завершився нормально, і
    `брехня` в іншому випадку. Тоді першим кроком прикладної системи повиннібути зчитування цього файлу з диска і аналіз змінної.

    Фрагмент програми, що реалізує страхове копіювання даних,наведено нижче.

    * ---- Використання страхового копіювання даних

    SET CLEAR OFF

    SET SAFETY OFF

    * Якщо файл NORM . MEM є ...

    IF FILE ( 'C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1norm.mem')

    * ... він завантажується в пам'ять.

    RESTORE FROM ( 'C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1norm.mem')

    * Якщо змінна завершення істинна ...

    IF normz

    * .. . копіюємо всі файли таблиць в страхову директорію

    ! COPY C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1 *. dbf
    C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Insure *. dbf> NUL

    * інакше повідомлення.

    ELSE

    WAIT normd + 'було аварійне завершення .'+;

    'Відновити (ENTER) дані?' WINDOW

    * У разі натискання Enter, файли відновлюються зі страховоїдиректорії.

    IF LASTKEY () = 13

    ! COPY C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Insure *. dbf
    C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1 *. dbf> NUL

    ENDIF

    ENDIF

    ENDIF

    * Встановлюється мінлива завершення, мінлива поточної дати іобидві запам'ятовуються в файл. normz =. T. normd = DTOC (DATE ())

    SAVE ALL LIKE norm? TO C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1norm

    Тут спочатку з'ясовується, чи є файл NORM.MEM в поточній директорії.
    Якщо є, файл завантажується і з'ясовується значення змінної NORM. При
    NORMZ =. T. всі файли таблиць копіюються в страхову підтеку всерединіробочої директорії.

    Оскільки файлів в системі зазвичай досить багато, простіше використовуватине власні команди копіювання FoxPro, а виконати (через знак!)відповідні команди DOS, для яких можна вказати маску. Щобсистемні повідомлення команд не виводилися на екран, вони переадресовані напорожній апарат ДОС - NUL. Якщо NORMZ =. F., значить, попередній сеансроботи завершився аварійно. На екран видаються повідомлення і запит щодонеобхідності відновлення даних зі страхової директорії (натисненнямклавіші Enter). Такий запит потрібен для того, щоб відмовитися відкопіювання даних, якщо завершення програми було ненормальним, але дані,як знає користувач, не постраждали. Після завершення аналізу змінної
    NORMZ вона отримує значення. F. і запам'ятовується у файлі NORM.MEM разом ззмінної NORMD. Далі йде тіло власне прикладної системи. Якщо прице станеться збій, мінлива NORMZ збереже своє значення. Принормальному завершенні програми цієї змінної привласнюється значення. Т.і вона зберігається у файлі.

    Крім того, необхідно організувати систему контекстно-залежноїдовідки, що викликається по F1. Текст допомоги попередньо заноситься в файл
    Table_Help.dbf, структура якого наведена нижче.

    Малюнок 4.7.1 - Таблиця даних для допомоги.

    Для виклику процедури допомоги застосована команда ON KEY LABEL. Упроцедуру Helper передається один параметр - ім'я поля вихідної таблицітоварів, яке потрібно пояснити. Функція VARREAD () повертає ім'язмінної пам'яті, елемента масиву або поля (прописними літерами),використаного для створення поточного елемента керування.

    У процедурі здійснюється пошук по цьому полю, і, якщо такезнайдено, відповідне MEMO-поле виводиться за допомогою процедури
    MESSAGEBOX.

    Повний текст програми наведено у додатку Е, а приклад екранудопомоги, що видається користувачеві при натисканні клавіші F1 у той момент, коликурсор знаходиться в полі "Дата надходження" вихідної таблиці, наведено намалюнку 4.7.2.

    Малюнок 4.7.2 - Приклад екрану допомоги.

    8. Створення нових таблиць і арифметичні дії

    При копіюванні відкритого файлу DBF в новий файл, який цієїкомандою створюється, використовується команда

    COPY TO

    [] [FIELDS]

    [FOR <умова>] [WHILE]

    [ TYPE] [WITH CDX]

    У новий файл можна буде скопіювати як усі поля бази даних, так ітільки перераховані в списку FIELDS. Копійовані поля можуть знаходитися нетільки у файлі з робочої активної області, але і в будь-якому іншому файлі БД зінших робочих областей. У цьому випадку імена полів - складові (ім'я бази іім'я поля).

    Існує команда, що виконує фізичне впорядкування файлу:

    SORT TO

    [ASCENDING/DESСENDING]

    ON [/ A] [/ D] [/ C] [, [/ A] [/ D] [/ C ]...]

    [] [FOR] [WHILE]

    [FIELDS]

    Команда створює з активної БД новий файл, в якому записирозташовані в зростаючому (/ А) або спадаючому (/ D) порядку щодовказаного поля/полів. Якщо параметр сортування не зазначений, за замовчуванняммається на увазі/А - зростання. Ключ/С означає, що під час сортуваннябуде ігноруватися регістр букв (малі/великі). Допускаєтьсяпідключення ключа С з іншими ключами, наприклад/DC.

    Для виконання арифметичних операцій з базою даних можнавикористовувати наступні команди:

    COUNT [] [WHILE]

    [FOR] [TO]

    За командою COUNT підраховується кількість записів в заданих межах,задовольняють умови, що заноситься в зазначену.

    SUM [] [WHILE]

    [FOR]

    [ТО/ТО ARRAY]

    За командою SUM сумуються значення перерахованих числових полівзазначені або. У списку виразів дозволяєтьсявказувати не тільки імена числових полів, але і функції від них і функції віддекількох полів одночасно. Це означає, що можна скористатисяфункцією STR () і підсумувати символьні поля з цифровими даними. Можнапідсумувати квадратні корені величин і т.д. Якщо не було домоменту виконання команди, то вони будуть створені, однак повиненвже існувати.

    AVERAGE [] [WHILE]

    [FOR]

    [TO/TO ARRAY]

    За цією командою підраховується середнє арифметичне за тих самихприпущеннях, що і для попередньої команди.

    За умовою потрібно:

    - Створити файл New_goods з полями Name_unit, Price_unit, Amount,

    Unit_measure для всіх товарів з ціною> 50;

    - Створити файл Sort_goods з полями Name_unit, Price_unit, Amount,

    Quality_goods. Файл відсортувати по полях: Price_unit - за зростанням, Name_unit - за абеткою;

    - Підрахувати кількість товарів на 'С ...', загальну суму всіх товарів і середнє арифметичне ціни товарів.

    Слід відзначити, що складна сортування в даному завданні відрізняєтьсявід індексації в другому завданні. При упорядкуванні перше зазначене полеє основним. У нашому випадку це ціна. Якщо ж у таблиці зустрінутьсякілька рядків, в яких буде збігатися ціна, то в силу вступає другапараметр - а саме, товари з однаковою ціною будуть відсортовані поалфавітом. У таблиці Table_Goods записи з однаковою ціною відсутні,тому продемонструвати сортування за алфавітом одночасно зсортуванням за ціною не представляється можливим.

    Повний текст програми наведено у додатку Ж, а результати роботипрограми - на малюнках 4.8.1 - 4.8.3.

    Малюнок 4.8.1 - Структура таблиці New_Goods.

    Малюнок 4.8.2 - Структура таблиці Sort_Goods.

    Малюнок 4.8.3 - Результати роботи програми.

    ВИСНОВОК

    У курсовій роботі були розглянуті прийоми проектування і реалізаціїреляційних баз даних і таблиць в СУБД Visual FoxPro 6.0. Буласпроектована структура реляційної таблиці, в неї були внесені дані здопомогою спеціальних запитів. Операції над даними таблиці були виконаніпрограмним шляхом за допомогою створення автономних модулів *. prg, що входять доскладу проекту Visual FoxPro.

    СПИСОК ЛІТЕРАТУРИ

    1. Попов А.А. Створення додатків для FoxPro 2.5/2.6 в DOS і

    WINDOWS .- М.: Видавництво "Калашников і К", 1997. - 660 с.: Іл.

    2. FoxPro. Language Refrence. - Microsoft Corp., 1994.

    3. Пінтер Ліс. Розробка додатків в Microsoft FoxPro 2.5. - М.:

    ТОО Едель, 1995.

    4. Дейт К. Посібник з реляційної СУБД DB2. - М.: Фінанси і статистика, 1988.

    ДОДАТОК А

    Текст програми фільтрації, індексації та пошуку

    * Очищаємо екран

    CLEAR

    * Відкриваємо таблицю з бази даних

    USE C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Table_goods

    * Виконуємо фільтрацію по полю 'Постачальник'

    SET FILTER to supplier = 'Росія'

    BROWSE

    * Виконуємо індексування по полю 'Кількість' (тільки зазростанням)

    INDEX on amount to C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1indtab

    * Виводимо запису

    LIST amount, name_unit, price_unit

    * Вибираємо з таблиці всі записи про товари низької якості

    BROWSE FOR quality_goods = 'низька'

    * Вибираємо з таблиці перший запис про товар у кількості 10

    LOCATE FOR amount = 10

    ДОДАТОК Б

    Текст програми пошуку за допомогою циклів WHILE і SCAN

    * Очищаємо екран

    CLEAR

    * Відкриваємо таблицю з бази даних

    USE C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Table_goods

    * Шукаємо всі товари, поставлені з Росії, за допомогою циклу WHILE < p>? 'Товари з Росії (цикл WHILE):'

    * Шукаємо перший товар

    LOCATE FOR supplier = 'Росія'

    * Якщо знайшли .. .

    IF FOUND ()

    * Друкуємо назва

    ? name_unit

    ENDIF

    * Продовжуємо пошук до вичерпання записів

    DO WHILE. NOT. EOF ()

    CONTINUE

    IF FOUND ()

    ? Name_unit

    ENDIF

    ENDDO

    * Шукаємо всі товари з Росії за допомогою SCAN-циклу

    ? 'Товари з Росії (цикл SCAN):'

    SCAN FOR supplier = 'Росія'

    * Виводимо найменування, ціну і кількість товару

    ? name_unit + '' + STR (price_unit) + '' + STR (amount)

    ENDSCAN

    * За допомогою WHILE знаходимо загальну ціну товарів, що надійшли

    * в період з 15.01.2001 по 15.03.2001

    * _SUM - мінлива підсумовування

    _SUM = 0

    * Знаходимо перший запис

    LOCATE FOR date_recep> = (^ 2001/01/15). AND. date_recep = (^ 2001/01/15). AND. date_recep_Max_price

    * то робимо поточну максимальної

    _Max_price = price_unit

    * і запам'ятовуємо її номер

    _Number_max_price = I < p> ENDIF

    * Якщо поточна ціна (^ 2001/02/15)

    * Виводимо найменування, ціну і кількість товару

    ? name_unit + '' + STR (price_unit) + '' + STR (amount)

    ENDSCAN

    ENDPROC

    * Опис процедури Show_units_for_measure

    PROCEDURE Show_units_for_measure

    ? 'Товари, у яких одиниця виміру - шт.'

    ?''

    ? 'Назва ціна кількість'

    SCAN FOR unit_measure = 'Штука'

    * Виводимо найменування, ціну і кількість товару

    ? name_unit + '' + STR (price_unit) + '' + STR (amount)

    ENDSCAN

    ENDPROC

    ДОДАТОК Е

    Текст програми страхового копіювання і контекстної довідки

    * ---- Використання страхового копіювання даних

    SET CLEAR OFF

    SET SAFETY OFF

    * Якщо файл NORM.MEM є ...

    IF FILE ( 'C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1norm.mem')

    * ... він завантажується в пам'ять.

    RESTORE FROM ( 'C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1norm.mem')

    * Якщо змінна завершення істинна ...

    IF normz

    * ... копіюємо всі файли таблиць в страхову директорію

    ! COPY C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1 *. dbf
    C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Insure *. dbf> NUL

    * інакше повідомлення.

    ELSE

    WAIT normd + 'було аварійне завершення .'+;

    'Відновити (ENTER) дані?' WINDOW

    * У разі натискання Enter файли відновлюються зі страховоїдиректорії.

    IF LASTKEY () = 13

    ! COPY C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Insure *. dbf
    C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1 *. dbf> NUL

    ENDIF

    ENDIF

    ENDIF

    * Встановлюється мінлива завершення, мінлива поточної дати іобидві запам'ятовуються в файл. normz =. T. normd = DTOC (DATE ())

    SAVE ALL LIKE norm? TO C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1norm

    *================================== =============================

    * ---- Виклик контекстно-залежної екранної підказки після натискання F1 .

    * ---- Esc - вихід з програми.

    * ---- Довідка видається за назвою поля таблиці.

    * Відкриваємо таблицю з бази даних

    USE C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Table_goods

    * При натисканні F1 викликаємо процедуру Helper

    ON KEY LABEL F1 DO Helper WITH VARREAD ()

    * Нескінченний цикл BROWSE

    DO WHILE. T.

    USE C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Table_goods

    * відображаються таблиці < p> BROWSE

    * Якщо натиснута клавіша Esc ...

    IF LASTKEY () = 27

    * ... то на вихід.

    EXIT

    ENDIF

    ENDDO

    * Опис процедури Helper

    PROCEDURE Helper

    * Параметр процедури - ім'я поля, яке потрібно пояснити

    PARAMETERS _Item

    * Відкриваємо базу допомоги

    USE C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Table_Help

    * Шукаємо потрібне поле

    LOCATE FOR index_help = _Item

    * Якщо знайшли потрібне поле (воно одне) - виводимо

    IF FOUND ()

    _Out_text = text_help

    MESSAGEBOX (_Out_text)

    ELSE

    MESSAGEBOX ( 'Довідка по цьому розділу не передбачена.
    Вибачте .')

    ENDIF

    RETURN

    ДОДАТОК Ж

    Текст програми створення нових таблиць і арифметичних дій

    * Очищаємо екран

    CLEAR

    * Відкриваємо таблицю з бази даних

    USE C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Table_goods

    * Створюємо нову таблицю, вкоторую входять всі товари з ціною> 50

    COPY TO C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1New_Goods FIELDSname_unit, price_unit, amount, unit_measure FOR price_unit> 50

    * Звертаємося до нової таблиці

    USE C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1New_Goods

    * Переглядаємо її

    BROWSE

    * Створюємо новий файл, відсортований відповідно до завдання

    USE C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Table_goods

    SORT TO C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Sort_Goods ONprice_unit/A, name_unit/A

    USE C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Sort_Goods

    * Виводимо відсортовану таблицю

    LIST OFF price_unit, name_unit < p> USE C: MY_WORKSTRANSF ~ 1MYPROJ ~ 1Table_goods

    * Виводимо кількість товарів на букву 'З'

    COUNT FOR (LEFT (name_unit, 1) = 'З') TO _Count

    ? 'У вихідній таблиці міститься' + STR (_Count) + 'товару (-ів) набукву `С` '

    * Виводимо загальну вартість усіх товарів

    ?' Загальна вартість усіх товарів дорівнює '

    SUM price_unit * amount

    * Виводимо середнє арифметичне цін усіх товарів

    ? 'Середнє арифметичне цін усіх товарів одно'

    AVERAGE price_unit
    -----------------------

    "Товари"

    "Клавіатури"

    найменування

    ціна

    кількість

    одиниця виміру

    дата надходження

    якість

    постачальник

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status