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

     

     

     

     

     

         
     
    Ведення реляційної БД на яз. CLIPPER 5.02
         

     

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

    МОСКОВСЬКА ДЕРЖАВНА текстильної академії ім. Косигіна

    Кафедра ІТ та ВТ

    К У Р С О В А Р О Б О Т А

    Тема: "Розробка програмного забезпечення, ведення бази даних і отримання відомості з частковими сумами. "

    за курсом:" Алгоритмічні мови і технологія програмування "

    Виконав:

    Пономарьов А.Н. гр.42-96

    Керівник: доц. Стрельников Б.А. ас. Степанова О.П.

    МОСКВА

    1998
    2. ЗАВДАННЯ:

    ТЕМА КУРСОВОЇ РОБОТИ: Реалізація алгоритму обробки даних і ведення реляційної бази даних.


    ВИХІДНІ ДАНІ:

    Індивідуальне завдання з описом бази даних та виробленої в результаті її обробки відомості з частковими і повними сумами.


    ПЕРЕЛІК ПІДЛЯГАЮТЬ РОЗРОБЦІ ПИТАНЬ (ЗМІСТ РОЗРАХУНКОВО-
    ПОЯСНЮВАЛЬНА ЗАПИСКА)

    1. Розробити структури файлів і створити макет бази даних.

    2. Розробити алгоритм обробки даних для отримання відомості.

    3. Скласти і налагодити програму отримання відомості.

    4. Розробок. форми екранних кадрів і меню для ведення базиданних.

    5. Скласти і налагодити програму реалізації екранного кадру для перегляду основних (ой) таблиць (и).

    6. Доповнити програму п.5 можливістю видалення і додавання рядків до таблиці.

    7. Доповнити програму п.5 можливістю зміни інф-ії в таблиці.

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

    9. Разраб.едіную систему меню для ведення бази даних та її обробки з метою отриманнявідомості.

    10. Розробити систему інтерфейсу користувача (підказки про клавіші, на які передбачена реакція системи і допомогукористувачеві).

    ПЕРЕЛІК Графічний матеріал

    1. Структури файлів бази даних та їх заповнення для тестового прикладу.

    2. Макети екранних кадрів та склад підказок для пунктів очікування вводу від користувача.

    3. Відомість, що отримується в результаті виконання тестового прикладу.

    МАТЕМАТИЧНІ МОДЕЛІ

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

    ТЕХНІЧНІ ЗАСОБИ:

    ПЕОМ IBM

    Система програмування Clipper 5.2

    3. ІНДИВІДУАЛЬНЕ ЗАВДАННЯ.

    Є файли: АА - нормативи профілактики обладнання,

    ВВ - профілактики і СС - склад устаткування

    АА: 1. Ідентифікатор типу верстата ВВ: 1. Інвентарний номер верстата

    2. Найменування типу верстата 2. Вид профілактики

    3. Норма кол-ва днів між 3. Дата профілактики профілактики 4.
    Ідентифікатор запису

    СС: 1. Інвентарний номер

    2. Ідентифікатор типу верстата

    Виявити всі випадки перевищення нормативних інтервалів міжпрофілактика і вивести їх в вивідний файл DD:

    1. Інв. №

    2. Фактичне кол-воднів між профілактики

    3. Нормативне к-ть днів

    4. Іден-торзапису пред. проф-ки

    5. Іден-тор запису слід. проф-ки
    На принтер вивести відомість, упорядковану за спаданням кол-ва простроченихднів:

    Порушення норм техобслуговування
    Інв. №/Тип Дата/Вид пред.проф-ки Дата/Вид след.проф-ки Прострочено, днів
    Інв. №/Тип Дата/Вид пред.проф-ки Дата/Вид след.проф-ки Прострочено, днів
    Інв. №/Тип Дата/Вид пред.проф-ки Дата/Вид след.проф-ки Прострочено, днів

    . . . . . . . . . .

    Загальна к-ть днів прострочення СУМА

    4.Аналіз обробки БД для її отримання:

    а) За яким файлу проводиться головний цикл обробки?

    Головний цикл обробки в підпрограмі vedom - (п.п., яка здійснювала -вляєтся виявлення всіх випадків перевищення нормативних інтервалів міжпрофілактика, виведення їх у вивідний файл "DD", а також здійснює видачувідомості на принтер) проводиться по файлу bb.dbf.

    б) Як він має бути впорядкований?

    Він повинен бути впорядкований в хронологічному порядку.
    Приклад: index on bb-> invnom + dtoc (bb-> dateprof) to bb0001
    Довідка:

    Синтаксис:

    INDEX ON TO
    INDEX - команда обробки бази даних, яка створює файли,містять індекси бази даних на основі значення аргументу. При використанні індексного файлу записи бази данихобробляються в послідовності, заданої ключовим виразом, однакфізичний порядок проходження записів бази даних залишається незмінним.
    INDEX забезпечує послідовність записів,упорядковану по значенням ключового вирази. Для ключів типу
    CHARACTER - у відповідності зі значенням ASCII коду кожного символуусередині рядка, для ключів типу NUMERIC - у відповідності з числовимпорядком, для ключів типу дата - в хронологічному порядку і длялогічних - вважається, що істина (. Т.) - більш високого порядку.
    Memo-поля не можуть бути індексовані.

    в) Чи застосовуються фільтри?

    Хоча команда SET FILTER робить так, що файл в робочій області

    виглядає що складається з підмножини записів, насправдіпослідовно обробляються всі його записи.

    Фільтри не застосовуються, так як час роботи з фільтрованої інефільтроване робочою областю виявляється одним і тим же.

    г) Чи є зв'язку "хазяїн-слуга" і по яких полях?

    У підпрограмі vedom є зв'язку.
    Приклад: а) set relat to bb-> invnom into cc

    Зв'язок по полю "invnom". б) set relat to cc-> idst into aa additive

    Зв'язок по полю "idst". в) set relat to dd-> invnom into cc additive

    Зв'язок по полю "invnom".
    .................................................. ..........................< br>.................................................. .
    5.Структура dbf-файлів (ім'я, тип, формат, кожного поля):

    a) Структура файлу aa.dbf:

    IDST NAMEST NORMA

    1 стругальний 25

    2 Свердлильний 15

    3 Токарний 20
    ......................... ..................................................
    ...........................

    Назва Тип Довжина

    IDST Символ 3

    NAMEST Символ 12

    NORMA Число 3

    б) Структура файлу bb.dbf:

    INVNOM VIDPROF DATEPROF IDZAP

    24 Смазка 09-01-98
    1

    4 Смазка 09-01-98
    2

    231 Смазка 09-01-98
    3

    2 Смазка 09-01-98
    4

    626 Смазка 09-01-98
    5

    323 Смазка 09-01-98
    6

    626 Регулювання 01-02-98 7

    323 Регулювання 28-01-98 8

    2 Регулювання 29-01-98 9

    231 Регулювання 28-01-98 10

    4 Регулювання 19-01-98
    11

    24 Регулювання 18-01-98 12

    626 Чистка 31-03-98
    13

    323 Чистка 15-04-98
    14

    2 Чистка 01-04-98
    15

    231 Чистка 20-03-98
    16

    4 Чистка 10-03-98
    17

    24 Чистка 02-04-98
    18
    .......... .................................................. ...............< br>...........................

    Назва Тип Довжина

    INVNOM Символ 3

    VIDPROF Символ 12

    DATEPROF Дата 8

    IDZAP Символ 3

    в) Структура файлу сс.dbf:

    INVNOM IDST

    323 1

    626 1

    4 2

    231 3

    24 2

    2 3
    .......................................... .................................< br>...........................

    Назва Тип Довжина

    INVNOM Символ 3

    IDST Символ 3

    г) Структура файлу dd.dbf:

    INVNOM FKDN NORMA IDZAPPP IDZAPSP

    2 62 20 9 < p> 15

    231 51 20 10

    16

    24 74 15 12

    18

    323 77 25 8

    14

    4 50 15 11

    17

    626 58 25 7

    13

    ............................................. ...............................< br>.........................

    Назва Тип Довжина

    INVNOM Символ 3 < p> FKDN Число 3

    NORMA Число 3

    IDZAPPP Символ 3

    IDZAPSP Символ 3
    .................................................. ..........................< br>.................................................. ...

    6. Принципи підготовки даних для тестового прикладу і заповненнявихідних даних.

    Ці дані були вибрані довільно - "з голови":
    1) Ідентифікатор типу верстата
    2) Інвентарний номер верстата
    3) Вид профілактики
    4) Найменування типу верстата

    Ідентифікатор запису у файлі bb.dbf заповнювався за спаданням (від 1 до 18),де 1 - перший запис, а 18 - остання.

    Норма кол-ва днів між профілактики була обрана довільна.

    Дата профілактики вибиралася так, щоб норма кол-ва днів міжпрофілактика була перевищена для всіх видів профілактик.
    .................................................. ..........................< br>.................................................. .

    7. Система меню.

    а) Які екранні кадри?

    Екранний кадр № 1:

    Московська державна текстильна академія (МГТА)

    БАЗА ДАНИХ Порушення норм техобслуговування:

    Курсова робота по курсу:

    "Алгоритмічні мови обробки даних і технологія програмування"

    студента гр 42/96
    Пономарьова О.М.

    *************************

    Керівник:

    доц. Стрельников Б.А.

    ас. Степанова О.П.

    Відразу приступити до роботи з Базою Даних

    Заново побудувати всі індекси Бази Даних

    Провести компресію Бази Даних

    Вихід з Бази Даних

    Екранний кадр № 2:

    Московська державна текстильна академія (МГТА)

    БАЗА ДАНИХ Порушення норм техобслуговування:

    Курсова робота по курсу:

    "Алгоритмічні мови обробки даних і технологія програмування"

    студента гр 42/96
    Пономарьова О.М.

    *************************

    Керівник:

    доц. Стрельников Б.А.

    ас. Степанова О.П.

    Виберіть одну з наступних завдань

    Ведення файлу "Нормативи профілактикиобладнання "

    Ведення файлу" Профілактика "

    Отримання відомості порушення нормтехобслуговування

    Вихід з Бази Даних


    Екранний кадр № 3:

    Нормативи профілактики обладнання:

    Ідент. типу верстата Найменування типу верстата Норма, днів
    --------------------------------------- -----------------------------------< br>----------------

    1 | стругальний

    | 25

    2 | Свердлильний < p> | 15

    3 | Токарний

    | 20

    |

    |

    |

    |

    |

    |

    |

    |

    | < p> |

    |

    |

    |

    |

    |

    |

    |

    |
    ------------------------------ --------------------------------------------< br>-----------------

    Тип верстата: стругальний

    (/ (/ (/ (/ ^ (PgUp/PgDn/^ (/ Home/End - Переміщення курсору

    | Esc - Повернення на крок назад | F8
    - Видалити рядок
    Enter - Редагування |
    | F3 - Вставити рядок

    Екранний кадр № 4:

    Профілактики:

    Інв. № верстата Вид профілактики Дата профілактики
    ------ -------------------------------------------------- ------------------< br>--------------

    2 | Мастило |
    01/09/98

    2 | Регулювання |
    01/29/98

    2 | Чистка |
    04/01/98

    231 | Мастило |
    01/09/98

    231 | Регулювання | 01/28/98

    231 | Частка |
    03/20/98

    24 | Мастило |
    01/09/98

    24 | Регулювання | 01/18/98

    24 | Чищення |
    04/02/98

    323 | Мастило |
    01/09/98

    323 | Регулювання | 01/28/98

    323 | Частка |
    04/15/98
    ------------------------------------------ --------------------------------< br>--------------

    Інв. № верстата: 2

    Вид профілактики: Смазка

    Дата профілактики: 01/09/98

    (/ (/ (/ (/ ^ (PgUp/PgDn/^ (/ Home/End - Переміщення курсору

    | Esc - Повернення на крок назад | F8 < br>- Видалити рядок
    Enter - Редагування |
    | F3 - Вставити рядок

    Екранний кадр № 5:

    Таблиця порушення норм техобслуговування:
    -------------------------------------------------- --------------------------< br>--------------------------------< br>| Інв. | Найменування | Дата | Вид предвор. | Дата | вид слід.

    | прострочив. |
    | Номер | типу верстата | | профілактики | |профілактики | днів |
    |------------------------------------------------- --------------------------< br>---------------------------------|< Br>| 24 | Свердлильний | 01/18/98 | Регулювання | 04/02/98 | Частка

    | 59 |
    | 323 | стругальний | 01/28/98 | Регулювання | 04/15/98 | Частка

    | 52 |
    | 2 | Токарний | 01/29/98 | Регулювання | 04/01/98 | Частка

    | 42 |
    | 4 | Свердлильний | 01/19/98 | Регулювання | 03/10/98 | Частка

    | 35 |
    | 626 | стругальний | 02/01/98 | Регулювання | 03/31/98 | Частка

    | 33 |
    | 231 | Токарний | 01/28/98 | Регулювання | 03/20/98 | Частка

    | 31 |
    -------------------------------------------------- --------------------------< br>---------------------------------

    Всього прострочена днів - 252 < p> Екранний кадр № 6:

    Московська державна текстильна академія (МГТА)

    БАЗА ДАНИХ Порушення норм техобслуговування:

    Курсова робота по курсу:

    "Алгоритмічні мови обробки даних і технологія програмування"

    ------------------------------- -----------------------------------< br>---------------- а О.Н.

    | Зберегти всі внесені зміни та продовжити
    |*****

    | роботу з Базою даних - тобто зробити проміжний SAVE |

    | або

    |

    | Завершити роботу з базою даних зі збереженням всіх
    |. А.

    | змін

    |.

    | Зберегти і продовжити Завершити роботу

    |

    -------------------------------------------------- ----------------< br>----------------

    Виберіть одну з наступних завдань

    Ведення файлу "Нормативи профілактики обладнання"

    Ведення файлу "Профілактика"

    Отримання відомості порушення норм техобслуговування

    Вихід з Бази Даних

    б) Пункти меню, що в них робиться?

    Меню № 1:

    1) Відразу приступити до роботи з Базою
    Даних

    2) Заново побудувати всі індекси Бази Даних

    3) Провести компресію Бази Даних

    4) Вихід з Бази Даних

    При виборі п.1, якщо індекси вже є ми потрапляємо в меню № 2.

    При виборі п.2 заново відбувається побудова всіх індексів Б.Д.

    При виборі п.3 виробляється компресія (ущільнення) Б.Д.

    При виборі п.4 з'являється горизонтальне підменю:

    а) Зберегти і продовжити б) Завершитироботу

    П.а) Зберегти всі внесені зміни та продовжити

    п.б) Завершити роботу з базою даних зі збереженням всіх змін

    Меню № 2:

    1) Ведення файлу "Нормативи профілактики обладнання"

    2) Ведення файлу "Профілактика"

    3) Одержання відомості порушеннянорм техобслуговування

    4) Вихід з Бази Даних

    При виборі п.1 ми потрапляємо в редактор файлу aa.dbf - ( "Нормативи

    профілактики обладнання") , де ми можемо його переглядати таредагувати.

    При виборі п.2 ми потрапляємо в редактор файлу bb.dbf - ( "Профілактика"),де ми можемо його переглядати й редагувати.

    При виборі п.3 відбувається виявлення всіх випадків перевищення нормативнихінтервалів між профілактики, виведення їх у вивідний файл "DD", а такожвидача відомості на принтер.

    При виборі п.4 виконуються дії аналогічні п.4 в меню № 1.
    .................................................. ..........................< br>.................................................. ...

    8. Ведення БД.

    Якими табл. представлено ведення БД, за якою табл. вказуєтьсяпоточна робоча область, її слуги, колонки таблиці, набір клавіш на якіпередбачена реакція системи.

    Клавіші на які реагує система:
    (/ (/ (/ (/; PgUp/PgDn; Home/End - Переміщення курсору
    Enter - Вибір завдання в меню і редагування полів у редакторі
    Esc - Повернення на крок назад. Скасування редагування (без збереження ізменненого значення)
    F8 - Видалити рядок
    F3 - Вставити рядок
    F10 - Вихід із завдання зі збереженням всієї інформації або вихід беззбереження інформації

    Таблиці ведення Б.Д.:

    Табл. № 1

    Нормативи профілактики обладнання:

    Ідент. типу верстата Найменування типу верстата Норма, днів
    --------------------------------------- -----------------------------------< br>---------------------

    |

    |

    | < p> |

    |

    |

    |

    |

    |

    |
    ---------------------------------------------- -----------------------------< br>---------------------

    Тип верстата:
    Табл. № 2

    Профілактики:

    Інв. № верстата Вид профілактики Дата профілактики
    --------------------- -------------------------------------------------- ---
    --------------------

    |

    |

    | | < p> | |

    | |

    | |

    | |

    | |

    | |

    | |

    | |
    -------------------------------------------------- --------------------------< br>--------------------

    Інв. № верстата:

    Вид профілактики:

    Дата профілактики:

    ......................................... ...................................< br>.................................................. ...

    9. Структура програми:

    а) Вміст rmk-файлу "kursv.rmk":

    objs = main2, aa, util, bb

    . Prg.obj:

    CLIPPER $

    . obj.exe:

    RTLINK OUTPUT $ * FI $ (objs)/PLL: base52

    main2.obj: main2. prgaa.obj: aa.prgutil.obj: util.prgbb.obj: bb.prg

    kurs_ok.exe: main2.obj aa.obj util.obj bb.obj

    б) Імена та зміст prg-файлів. По кожній функції: ім'я, призначення,параметри, тип даних і сенс, повернене значення, робочі змін Цінні таїх призначення.

    Програмні файли:
    1) aa.prg

    У цій програмі реалізовано:
    1. Створення TBrowse-об'єкта для перегляду-редагування файлу aa.dbf ввікні.

    2) bb.prg

    У цій програмі реалізовано:
    1. Створення TBrowse-об'єкта для перегляду-редагування файлу bb.dbf ввікні.

    3) main2.prg

    У цій програмі реалізовано:

    1.Організація меню.

    2. Індексування файлів.

    3. Ущільнення файлу.

    4. Виявлення всіх випадків перевищення нормативних інтервалів між профілактики, виведення їх у вивідний файл
    "DD", а також видача відомості на принтер.

    5. Виведення на екран інформації про "гарячі" клавіші.

    4) util.prg

    Ця програма містить набір стандартних утиліт:

    1. Збереження екрану, відновлення екрану.

    2. Переклад у верхній регістр як латиниці, так і кирилиці.

    3. Координати, повідомлення, колір.

    4. Вихід із завдання зі збереженням всієї інформації - реакція на клавішу F10.

    5. Подача звукового сигналу для сигналізації успішного виконання поставленого завдання:

    Опис основних підпрограм:
    1) п.п. побудови індексів:func db_index (prm)s_scr (24,0,25,79)
    CLOSE ALL
    SETCOLOR ( "w/n")
    @ 24,0 CLEAR TO 25,79
    @ 24,6 SAY "Чекайте йде індексування!" COLOR "w + */n"use bbindex on bb-> invnom + dtoc (bb-> dateprof) to bb0001use aaindex on aa-> idst to aa0002use ccindex on cc-> invnom to cc0003use ddindex on dd-> (norma-fkdn) to dd0004close allr_scr ()return nil

    2) п.п. відкриття індексів:func db_openclose alluse aa index aa0002use bb index bb0001 newuse cc index cc0003 newuse dd index dd0004 newreturn nil

    3) п.п. ущільнення Б.Д. :
    FUNCTION db_compress () s_scr (24,0,25,79)
    CLOSE ALL
    SETCOLOR ( "w/n")
    @ 24,0 CLEAR TO 25,79
    @ 24,6 SAY "Чекайте йде ущільнення!" COLOR ( "w + */n")
    USE aa// ущільнення файла aa.dbf
    COPY TO work

    IF ERRORLEVEL () = 0

    USE

    DELETE FILE aa.dbf

    RENAME work.dbf TO aa.dbf

    ENDIF
    USE bb// ущільнення файла bb.dbf
    COPY TO work

    IF ERRORLEVEL () = 0

    USE

    DELETE FILE bb.dbf

    RENAME work.dbf TO bb.dbf

    ENDIF

    USE cc// ущільнення файла cc.dbf

    COPY TO work

    IF ERRORLEVEL () = 0

    USE

    DELETE FILE cc.dbf

    RENAME work.dbf TO cc.dbf

    ENDIF

    USE dd// ущільнення файла dd.dbf

    COPY TO work

    IF ERRORLEVEL () = 0

    USE

    DELETE FILE dd.dbf

    RENAME work.dbf TO dd.dbf

    ENDIF

    CLOSE ALL r_scr ()
    RETURN NIL

    4) п.п . видачі інформації про клавіші, на які реагує система

    "Help":
    PROCEDURE hlp (callpnt, prm)

    LOCAL retcol, crow, ccol

    IF prm = NIL prm: =. F.

    ENDIF crow = ROW () ccol = COL () retcol = SETCOLOR ( "w/n")

    @ 22,0 CLEAR TO 24,79

    IF callpnt = "GET"

    // исправленний HLP для GET 26.09.96

    @ 22,0 SAY "Enter /" + CHR (24) + '/' + CHR (25) + '/ PgUp/PgDn'; < p> + "-Завершити редагування із збереженням зміненогозначення "

    @ 22,0 SAY" Enter/"+ CHR (24) + '/' + CHR (25) + '/ PgUp/PgDn' COLOR
    "r +/n"

    @ 23,1 SAY CHR (26) + '/' + CHR (27) + '/ ^' + CHR (26);

    + '/^ '+ CHR (27) +'/Home/End - Переміщення курсору '

    @ 23,1 SAY CHR (26) +'/'+ CHR (27) +'/^ '+ CHR (26);

    + '/ ^' + CHR (27) + '/ Home/End' COLOR "r +/n"

    @ 24,1 SAY 'Esc - Скасувати редагування ';

    +' (без збереження зміненогозначення) '

    @ 24,1 SAY "Esc" COLOR "r +/n"
    ENDIF
    IF callpnt = "AAED". OR. callpnt = "BBED"

    SET COLOR TO ( "w/n")

    @ 22,1 SAY chr (24) + "/" + chr (25) + "/ "+ CHR (26) + '/';

    + CHR (27) + '/ ^' + CHR (26) +" PgUp/PgDn ";

    + '/ ^ '+ CHR (27) +'/Home/End - Переміщення курсору '

    @ 24,0 SAY' Enter - Редагування '

    @ 23,23 TO 24,23 DOUBLE

    @ 23,25 SAY 'Esc - Повернення на крок назад' COLOR "w/n"

    @ 23,25 SAY 'Esc' COLOR "r +/n"

    @ 23,54 TO 24,54 DOUBLE

    @ 23,55 SAY 'F8 - Видалити рядок'

    @ 24,55 SAY 'F3 - Вставити рядок'

    SET COLOR TO ( "r +/n")

    @ 22,1 SAY chr (24) + "/" + chr (25) + "/" + CHR (26) + '/';

    + CHR (27) + '/ ^' + CHR (26) + "PgUp/PgDn";

    + '/ ^' + CHR (27 ) + '/ Home/End'

    @ 24,0 SAY 'Enter'

    @ 23,55 SAY 'F8'

    @ 24,55 SAY 'F3'
    ENDIF
    IF callpnt = "CCED". OR. callpnt = "DDED"

    SET COLOR TO ( "w/n")

    @ 22,1 SAY chr (24) + "/" + chr (25) + "/ "+ CHR (26) + '/';

    + CHR (27) + '/ ^' + CHR (26) +" PgUp/PgDn ";

    + '/ ^ '+ CHR (27) +'/Home/End - Переміщення курсору '

    @ 24,0 SAY' Enter - Редагування '

    @ 23,23 TO 24,23 DOUBLE

    @ 23,25 SAY 'Esc - Повернення на крок назад' COLOR "w/n"

    @ 23,25 SAY 'Esc' COLOR "r +/n"

    @ 24,25 SAY '^ Enter - Вибір значення' COLOR "w/n"

    @ 24,25 SAY '^ Enter' COLOR "r +/n"

    @ 23,54 TO 24,54 DOUBLE

    @ 23,55 SAY 'F8 - Видалити рядок'

    @ 24,55 SAY 'F3 - Вставити рядок'

    SET COLOR TO ( "r +/n")

    @ 22,1 SAY chr (24) + "/" + chr (25) + "/" + CHR (26) + '/ ';

    + CHR (27) +'/^ '+ CHR (26) + "PgUp/PgDn";

    +'/^ '+ CHR (27) +'/Home/End '

    @ 24,0 SAY' Enter '

    @ 23,55 SAY' F8 '

    @ 24,55 SAY' F3 '
    ENDIF

    SET COLOR TO (retcol)

    SETPOS (crow, ccol)
    RETURN

    5) п.п. виявлення всіх випадків перевищення нормативних інтервалів між профілактики, виведення їх у вивідний файл
    "DD", а також видачі відомості на принтер: func vedomlocal tinvnom, sitog, tdata, tidzap, tidst, idpopset printer onselect ddzaplin: = space (17) + "Таблиця порушення норм техобслуговування:"
    ? linselect bbset relat to bb-> invnom into ccset relat to cc-> idst into aa additivego topsitog: = 0do while. not. eof ()tinvnom: = bb-> invnomtdata: = bb-> dateproftidzap: = bb-> idzaptidst: = cc-> idstskipif (bb-> invnom = tinvnom). and. (bb-> dateprof-tdata> aa-> norma) select dd append blank replace dd-> invnom with tinvnom replace dd-> fkdn with bb-> dateprof-tdata replace dd -> norma with aa-> norma replace dd-> idzappp with tidzap replace dd-> idzapsp with bb-> idzap sitog: = sitog + (dd-> fkdn-dd-> norma) select bbendifenddolin :="+--------------------------------------------- ------------------------< br>--------+"< br>? linlin: = "| Інв. | Найменування | Дата | Вид предвор. | Дата | вид слід.
    | Прострочив. | "
    ? linlin: = "| номер | типу верстата | | профілактики | | профілактики
    | Днів | "
    ? linlin :="|-----+--------------+--------+--------------+ --------+--------------< br>+--------|"< Br>? linselect ddset relat to dd-> invnom into cc additivego topdo while. not. eof ()tinvnom: = dd-> invnomidpop: = dd-> idzappplin: = "|" + dd-> invnom + "|"select bbgo topdo while. not. eof ()if (tinvnom = bb-> invnom). and. (idpop = bb-> idzap)lin: = lin + aa-> namest + "|" + dtoc (bb-> dateprof) + "|" + bb-> vidprofendifskipenddoselect ddidpop: = dd-> idzapspselect bbgo topdo while. not. eof ()if (tinvnom = bb-> invnom). and. (idpop = bb-> idzap)lin: = lin + "|" + dtoc (bb-> dateprof) + "|" + bb-> vidprof + "|"endifskipenddoselect ddlin: = lin + str (dd-> fkdn-dd-> norma, 4) + "|"
    ? linskipenddolin :="+--------------------------------------------- ------------------------< br>--------+"< br>? linset color to w +/blin: = "Всього прострочена днів -" + str (sitog, 5)
    ? linset printer offsound ()inkey (0)return nil

    6) п.п. подачі звукового сигналу для сигналізації успішного виконання поставленого завдання:func soundtone (300,1)tone (100,1)tone (300,1)tone (100,1)return nil

    7) п.п. збереження зкрана:
    FUNC s_scr (t, l, b, r)

    IF t = NIL t: = 0

    ENDIF

    IF l = NIL l: = 0

    ENDIF

    IF b = NIL b: = MAXROW ()

    ENDIF

    IF r = NIL r: = MAXCOL ()

    ENDIF

    AADD (wind [1], t)

    AADD (wind [2], l)

    AADD (wind [ 3], b)

    AADD (wind [4], r)

    AADD (wind [5], SAVESCREEN (t, l, b, r))

    AADD (pos [1], ROW ())

    AADD (pos [2], COL ())

    AADD (colr, SETCOLOR ())

    AADD (curs, SETCURSOR ())

    RETURN. T.

    8) п.п. відновлення зкрана:
    FUNC r_scr ()

    LOCAL ln ln: = LEN (wind [1])

    IF ln == 0

    @ 24,0 SAY 'Помилка -- стек для відновлення параметрів порожній '

    INKEY (0)

    @ 24,0

    ENDIF

    RESTSCREEN (wind [1, ln ], wind [2, ln], wind [3, ln], wind [4, ln], wind [5, ln])

    ASIZE (wind [1], ln-1)

    ASIZE (wind [2], ln-1)

    ASIZE (wind [3], ln-1)

    ASIZE (wind [4], ln - 1)

    ASIZE (wind [5], ln-1)

    SETPOS (pos [1, ln], pos [2, ln])

    ASIZE (pos [1], ln-1)

    ASIZE (pos [2], ln-1)

    SETCOLOR (colr [ln])

    ASIZE (colr, ln-1)

    SETCURSOR (curs [ln])

    ASIZE (curs, ln-1)

    RETURN. T.

    9) п.п. визначення - чи натиснута клавіша типового методу, якщо так - топовертає блок коду з відповідним методом, якщо ні - то повертає
    NIL. Параметр функції - INKEY-код натиснутою клавіші.
    FUNC basemet (cod)

    LOCAL ret, ei, i

    LOCAL crsm: = (;

    (K_DOWN, (| o | o: down () ));

    , (K_UP, (| o | o: up ()));

    , (K_PGDN, (| o | o: pagedown ()));

    , (K_PGUP, (| o | o: pageup ()));

    , (K_CTRL_PGDN, (| o | o: gobottom ())); < p>, (K_CTRL_PGUP, (| o | o: gotop ()));

    , (K_RIGHT, (| o | o: right ()));

    , ( K_LEFT, (| o | o: left ()));

    , (K_CTRL_RIGHT, (| o | o: panright ()));

    , (K_CTRL_LEFT, (| o | o: panleft ()));

    , (K_END, (| o | o: end ()));

    , (K_HOME, (| o | o: home ()));

    , (K_CTRL_END, (| o | o: panend ()));

    , (K_CTRL_HOME, (| o | o: panhome ()) )) i: = ASCAN (crsm, (| ei | cod = ei [1]))

    IF i 0 ret: = crsm [i, 2]

    ELSE ret: = NIL

    ENDIF
    RETURN ret

    10) п.п. перемикання режиму вставка/заміна та виду курсору:
    PROCEDURE Repl_Ins ()

    IF READINSERT ()

    READINSERT (. F.)

    SETCURSOR (SC_INSERT)

    ELSE

    READINSERT (. T.)

    SETCURSOR (SC_NORMAL)

    ENDIF
    RETURN

    11) п.п. перекладу у верхній регістр латиниці і кирилиці:
    FUNC UpperC (prm)
    LOCAL n, i, smb, cs n: = LEN (prm)
    FOR i = 1 TO n smb: = SUBSTR (prm, i, 1) cs: = ASC (smb)

    DO CASE

    CASE cs> = 97. AND. cs = 160. AND. cs = 224. AND. cs 80

    RETURN
    ENDIF
    IF x = NIL// Центр з X x: = (80-ml)/2

    ENDIF
    IF y = NIL// Центр з Y y: = 24/2 - 1
    ENDIF
    IF color NIL c: = SETCOLOR (color)

    @ y, x SAY m

    SETCOLOR (c)
    ELSE

    @ y, x SAY m
    ENDIF
    RETURN

    14) п.п. створення TBrowse-об'єкта для перегляду-редагування файлу aa.dbf у вікні t, l, b, r:
    FUNCTION aaCr (t, l, b, r)
    LOCAL brws, coln, cblk, chdr brws: = TBrowseDb (t, l, b, r) cblk: = (| | "" + aa-> idst) chdr: = "Ідент. типу верстата" coln: = TBColumnNew (chdr, cblk) coln: width: = 19 brws: AddColumn (coln) cblk: = (| | "" + aa-> namest) chdr: = "Найменування типу верстата" coln: = TBColumnNew (chdr, cblk) coln: width: = 35 brws: AddColumn (coln) cblk: = (| | STR (aa-> norma, 7)) chdr: = "Норма, днів" coln: = TBColumnNew (chdr, cblk) coln: width: = 12 brws: AddColumn (coln) brws: colsep: = CHR (186 ) brws: headsep: = CHR (205) brws: colorspec: = "w +/b, gr +/rb"
    RETURN brws

    15) п.п. переглянути файл aa.dbf з обробкою натискає клавішу і викликомвідповідних методів або користувача функцій:
    FUNCTION aaEd (brws)
    LOCAL ret_fl, sel, otb, w
    LOCAL cc, rr, nrc: = 0, i
    LOCAL ret: = NIL
    LOCAL t: = brws: nTop, l: = brws: nLeft, b: = brws: nBottom, r: =brws: nRight
    LOCAL t_: = 5, l_: = 6, b_: = 15, r_: = 74 s_scr () s_r_s ()
    SETCOLOR ( "N/W")
    CLS
    SETCOLOR ( "gr +/b, w +/gr")hlp ( "AAED")
    SELECT aa
    SET ORDER TO 2
    @ t-2, l-1 CLEAR TO b 2, r +1
    @ b +1, l TO b 1, r ret_fl: =. F.
    DO WHILE. NOT. ret_fl

    ** оптимізована з використанням буфера клавіатури стабілізація

    DO WHILE (NEXTKEY () == 0). AND. (. NOT. Brws: stabilize ())

    ENDDO
    IF (NEXTKEY () == 0). AND. (RECNO () nrc) nrc: = RECNO () rr: = ROW () cc: = COL ()
    SETCOLOR ( "bg +/b")
    @ t-2, l 1 SAY "Нормативи профілактики обладнання: "
    @ b 2, l 1 SAY" Тип верстата: "
    @ b 2, COL () +1 SAY aa-> namest COLOR" w +/b "
    SETPOS (rr , cc)
    ENDIF
    SETCOLOR ( "gr +/rb")
    ** очікуємо натискання клавіші nkey: = Inkey (0)
    // якщо натиснута клавіша типового методу - викличемо його blk: = basemet (nKey)

    IF blk NIL

    EVAL (blk, brws)

    ELSE

    DO CASE

    CASE (bHotkey: = SETKEY (nKey)) NIL

    EVAL (bHotkey, PROCNAME (), PROCLINE (), READVAR ())

    CASE (nKey = K_F8)

    DELETE

    // помацати файловий вказівник, якщо

    // возвращаетя EOF () -. T. після Down-Up,

    // значить файл порожній

    SKIP

    SKIP -1

    IF RECNO () = RECCOUNT () 1 ret_fl: =. T.// Завершення перегляду

    ENDIF brws: RefreshAll () nrc: = 0

    CASE nKey = K_ESC ret_fl: =. T.// Завершення перегляду

    CASE (nKey = K_ENTER)

    // Редагування поточного елемента даних aaGet (brws;

    , "Редагування файлу aa.dbf") nrc: = 0// оновити верхній рядок

    CASE nKey == K_F3

    APPEND BLANK brws: RefreshAll ()

    ENDCASE
    ENDIF
    ENDDO
    SET RELAT TO s_r_s (. T.) r_scr ()
    RETURN ret

    16) п.п. виконання GET в поточній колонці файлу aa.dbf:
    PROCEDURE aaGet (brws, z0)

    LOCAL r, c, w, w2, otb

    LOCAL retcurs, retexit// форма курсору і режим виходу з READ

    LOCAL retins, retcol// режим вставка-заміна в READ

    LOCAL indch: =. F.// Прапор змін значень полів, що входять до

    // індекснове вираз (тоді потрібно REFRESHALL (),

    // а не REFRESHCURRENT ())

    LOCAL col r: = ROW () c: = COL ()

    // Перевірка оновлення екрану, коректності бази і т.д.

    ForceStable (brws)

    // Установка клавіш Up-Arrow і Down-Arrow як клавіш виходу з

    // команди READ retexit: = READEXIT (. T.)

    // Установка клавіші INS для перемикання

    // режиму вставка/заміна

    // і відповідної зміни вигляду курсора retins: = SetKey (K_INS, (| | Repl_Ins ()))

    // еквівалентно Set Key K_INS To Procedure
    Repl_Ins

    // Установка вигляду курсору по поточному стану режиму retcurs: = SetCursor (IF (ReadInsert (), SC_NORMAL, SC_INSERT)) s_scr () retcol: = SETCOLOR ( "w +/g")

    @ brws: nTop-3, 0

    @ brws: nTop-3, 0 SAY z0 hlp ( "GET")

    SETCOLOR ( "gr +/n, w +/g ") indch: =. F.
    DO CASE

    CASE brws: colpos = 1 w: = aa-> idst

    @ r, c 2 GET w

    READ

    IF. NOT. (LASTKEY () = K_ESC). OR. (aa-> idst == w)

    REPLACE aa-> idst WITH w indch: =. T.

    ENDIF

    CASE brws: colpos = 2 n: = aa-> namest

    @ r, c 2 GET n

    READ

    IF. NOT. (LASTKEY () = K_ESC). OR. (aa-> namest == n)

    REPLACE aa-> namest WITH n

    ENDIF

    CASE brws: colpos = 3 w: = aa-> norma

    @ r, c 1 GET w

    READ

    IF. NOT. ((LASTKEY () = K_ESC). OR. (aa-> norma = w))

    REPLACE aa-> norma WITH w

    ENDIF
    ENDCASE
    SETCOLOR (retcol) r_scr ()
    SETPOS (r, c)
    IF indch brws: RefreshAll ()
    ELSE brws: RefreshCurrent ()// Забезпечити перемальовування поточного рядка,
    ENDIF// оскільки змінювався елемент даних

    // Відновлення форми курсору і режиму виходу з READ по стрільцям

    // і процедури по клавіші K_INS

    SetCursor (retcurs)

    READEXIT (retexit)

    SetKey (K_INS, retIns)

    // Перевірка вимоги відходу з поточного запису після GET nKey: = LASTKEY ()

    IF nKey == K_UP. OR. nKey == K_DOWN. OR. ; NKey == K_PGUP. OR. nKey == K_PGDN

    // керування курсором - перехід до іншого запису

    KEYBOARD (CHR (nKey))

    ENDIF
    RETURN


    Примітка: У звіті не описані п.п.: а) для створення TBrowse-об'єкта для перегляду-редагування файлу bb.dbf у вікні t, l, b, r; б) для перегляду файлів bb.dbf з обробкою натискає клавішу і викликомвідповідних методів або користувача функцій; в) для виконання GET в поточній колонці файлу bb.dbf:
    Оскільки ці підпрограми практично аналогічні підпрограм для файлу aa.dbf
    !!!
    .................................................. ..........................< br>.................................................. ...


    10. Результати тестового прикладу:

    а) Вміст вивідного файлу dd.dbf:

    INVNOM FKDN NORMA IDZAPPP IDZAPSP

    2 62 20 9

    15

    231 51 20 10

    16

    24 74 15 12

    18

    323 77 25 8

    14

    4 50 15 11

    17

    626 58 25 7

    13

    б) Вміст файлу (print.prn), що виводиться на принтер:

    Таблиця порушення норм техобслуговування:
    -------------------------------------------------- --------------------------< br>-------------------------------------< br>| Інв. | Найменування | Дата | Вид предвор. | Дата | видслед. | Прострочив. |
    | Номер | типу верстата | | профілактики | |профілактики | днів |
    |------------------------------------------------- --------------------------< br>-------------------------------------|< Br>| 24 | Свердлильний | 01/18/98 | Регулювання | 04/02/98 | Частка

    | 59 |
    | 323 | стругальний | 01/28/98 | Регулювання | 04/15/98 | Частка

    | 52 |
    | 2 | Токарний | 01/29/98 | Регулювання | 04/01/98 |
    Чистка | 42 |
    | 4 | Свердлильний | 01/19/98 | Регулювання | 03/10/98 | Частка

    | 35 |
    | 626 | стругальний | 02/01/98 | Регулювання | 03/31/98 | Частка

    | 33 |
    | 231 | Токарний | 01/28/98 | Регулювання | 03/20/98 | Частка

    | 31 |
    -------------------------------------------------- --------------------------< br>-------------------------------------

    Всього прострочена днів - 252

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

     

     

     

     

     

     

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