OTCH_CL (Ведение реляционной БД на яз. CLIPPER 5.02), страница 2
Описание файла
Документ из архива "Ведение реляционной БД на яз. CLIPPER 5.02", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "OTCH_CL"
Текст 2 страницы из документа "OTCH_CL"
Экранный кадр № 6:
Московская государственная текстильная академия ( МГТА )
БАЗА ДАННЫХ Нарушение норм техобслуживания:
Курсовая работа по курсу :
"Алгоритмические языки обработки данных и технология программирования"
----------------------------------------------------------------------------------а А.Н.
¦ Сохранить все внесенные изменения и продолжить ¦*****
¦ работу с Базой данных - т.е. сделать промежуточный SAVE ¦
¦ или ¦
¦ Завершить работу с базой данных с сохранением всех ¦.А.
¦ изменений ¦.
¦ Сохранить и продолжить Завершить работу ¦
----------------------------------------------------------------------------------
Выберите одну из следующих задач
Ведение файла "Нормативы профилактики оборудования"
Ведение файла "Профилактика"
Получение ведомости нарушение норм техобслуживания
Выход из Базы Данных
б) Пункты меню, что в них делается ?
Меню № 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.
.................................................................................................................................
8. Ведение БД .
Какими табл. представлено ведение БД, по какой табл. указывается текущая рабочая область, её слуги, колонки таблицы, набор клавиш на которые предусмотрена реакция системы.
Клавиши на которые реагирует система:
/ ¯ / ® / ¬ /; PgUp / PgDn; Home / End - Перемещение курсора
Enter - Выбор задачи в меню и редактирование полей в редакторе
Esc - Возврат на шаг назад. Отмена редактирования (без сохранения изменненого значения)
F8 - Удалить строку
F3 - Вставить строку
F10 - Выход из задачи с сохранением всей информации или выход без сохранения информации
Таблицы ведения Б.Д.:
Табл. №1
Нормативы профилактики оборудования:
Идент. типа станка Наименование типа станка Норма, дней
-----------------------------------------------------------------------------------------------
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
------------------------------------------------------------------------------------------------
Тип станка:
Табл. №2
Профилактики:
Инв.№ станка Вид профилактики Дата профилактики
----------------------------------------------------------------------------------------------
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
------------------------------------------------------------------------------------------------
Инв.№ станка:
Вид профилактики:
Дата профилактики:
.................................................................................................................................
9. Структура программы :
а) Содержимое rmk-файла “kursv.rmk”:
objs = main2,aa,util,bb
.prg.obj:
CLIPPER $< /a/m/n
.obj.exe:
RTLINK OUTPUT $* FI $(objs) /PLL:base52
main2.obj : main2.prg
aa.obj : aa.prg
util.obj : util.prg
bb.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 bb
index on bb->invnom + dtoc(bb->dateprof) to bb0001
use aa
index on aa->idst to aa0002
use cc
index on cc->invnom to cc0003
use dd
index on dd->(norma-fkdn) to dd0004
close all
r_scr()
return nil
2) п.п. открытия индексов:
func db_open
close all
use aa index aa0002
use bb index bb0001 new
use cc index cc0003 new
use dd index dd0004 new
return 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' ;
+ " -Завершить редактирование с сохранением измененного значения"
@ 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 vedom
local tinvnom,sitog,tdata,tidzap,tidst,idpop
set printer on
select dd
zap
lin:=space(17)+"Таблица нарушение норм техобслуживания:"
? lin
select bb
set relat to bb->invnom into cc
set relat to cc->idst into aa additive
go top
sitog:=0
do while .not. eof()
tinvnom:=bb->invnom
tdata:=bb->dateprof
tidzap:=bb->idzap
tidst:=cc->idst
skip
if(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 bb
endif
enddo
lin:="+-----------------------------------------------------------------------------+"
? lin
lin:="¦ Инв.¦ Наименование ¦ Дата ¦ Вид предвор. ¦ Дата ¦ вид след. ¦Просроч.¦"
? lin
lin:="¦номер¦ типа станка ¦ ¦ профилактики ¦ ¦ профилактики ¦ дней ¦"
? lin
lin:="¦-----+--------------+--------+--------------+--------+--------------+--------¦"
? lin
select dd
set relat to dd->invnom into cc additive
go top
do while .not. eof()
tinvnom:=dd->invnom
idpop:=dd->idzappp
lin:="¦ "+dd->invnom+" ¦ "
select bb
go top
do while .not. eof()
if(tinvnom=bb->invnom).and.(idpop=bb->idzap)
lin:=lin+aa->namest+" ¦"+dtoc(bb->dateprof)+"¦ "+bb->vidprof
endif
skip
enddo
select dd
idpop:=dd->idzapsp
select bb
go top
do while .not. eof()
if(tinvnom=bb->invnom).and.(idpop=bb->idzap)
lin:=lin+" ¦"+dtoc(bb->dateprof)+"¦ "+bb->vidprof+"¦ "
endif
skip
enddo
select dd
lin:=lin+str(dd->fkdn-dd->norma,4)+" ¦"
? lin
skip
enddo
lin:="+-----------------------------------------------------------------------------+"
? lin
set color to w+/b
lin:=" Всего просроченно дней -"+str(sitog,5)
? lin
set printer off
sound()
inkey(0)
return nil
6) п.п. подачи звукового сигнала для сигнализации успешного выполнения
поставленной задачи:
func sound
tone(300,1)