Разработка программного обеспечения, ведение базы данных и получение ведомости с частичными суммами. Реализация алгоритма обработки данных и ведения реляционной базы данных. Анализ обработки БД для е получения а По какому файлу проводится главный цикл обработки Главный цикл обработки в подпрограмме vedom - п.п которая осуществляет выявление всех случаев превышения нормативных интервалов между профилактиками, вывод их в выводной файл
DD, а также осуществляет выдачу ведомости на принтер проводится по файлу bb.dbf . б Как он должен быть упорядочен Он должен быть упорядочен в хронологическом порядке. Пример index on bb- invnom dtocbb- dateprof to bb0001 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. Принципы подготовки данных для тестового примера и заполнения исходных данных. Эти данные были выбраны произвольно - из головы 1 Идентификатор типа станка 2 Инвентарный номер станка 3 Вид профилактики 4 Наименование типа станка Идентификатор записи в файле bb.dbf заполнялся по убыванию от 1 до 18, где 1- первая запись, а 18- последняя.
Норма кол-ва дней между профилактиками была выбрана произвольна. Дата профилактики выбиралась так, чтобы норма кол-ва дней между профилактиками была превышена для всех видов профилактик. б Пункты меню, что в них делается Меню 1 Сразу приступить к работе с Базой Данных 2 Заново построить все индексы Базы Данных 3 Провести компрессию
Базы Данных 4 Выход из Базы Данных При выборе п.1, если индексы уже имеются мы попадаем в меню 2. При выборе п.2 заново происходит построение всех индексов Б.Д . При выборе п.3 производится компрессия уплотнение Б.Д . При выборе п.4 появляется горизонтальное подменю а Сохранить и продолжить б Завершить работу П.а Сохранить все внесенные изменения и продолжить
П.б Завершить работу с базой данных с сохранением всех изменений Меню 1 Ведение файла Нормативы профилактики оборудования 2 Ведение файла Профилактика 3 Получение ведомости нарушение норм техобслуживания 4 Выход из Базы Данных При выборе п.1 мы попадаем в редактор файла aa.dbf - Нормативы профилактики оборудования, где мы можем его просматривать и редактировать.
При выборе п.2 мы попадаем в редактор файла bb.dbf - Профилактика, где мы можем его просматривать и редактировать. При выборе п.3 происходит выявление всех случаев превышения нормативных интервалов между профилактиками, вывод их в выводной файл DD, а также выдача ведомости на принтер. При выборе п.4 выполняются действия аналогичные п.4 в меню 1.
Ведение БД . Какими табл. представлено ведение БД, по какой табл. указывается текущая рабочая область, е слуги, колонки таблицы, набор клавиш на которые предусмотрена реакция системы. Клавиши на которые реагирует система PgUp PgDn Home End - Перемещение курсора Enter - Выбор задачи в меню и редактирование полей в редакторе Esc - Возврат на шаг назад. Отмена редактирования без сохранения изменненого значения
F8 - Удалить строку F3 - Вставить строку F10 - Выход из задачи с сохранением всей информации или выход без сохранения информации Структура программы а Содержимое rmk-файла kursv.rmk objs main2,aa,util,bb .prg.obj CLIPPER amn .obj.exe RTLINK OUTPUT FI objs PLLbase52 main2.obj main2.prg aa.obj aa.prg util.obj util.prg bb.obj bb.prg kursok.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 dbindexprm sscr24,0,25,79 CLOSE ALL SETCOLOR wn 24,0 CLEAR TO 25,79 24,6 SAY
Ждите идет индексирование COLOR wn use bb index on bb- invnom dtocbb- 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 rscr return nil 2 п.п. открытия индексов func dbopen 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 dbcompress sscr24,0,25,79 CLOSE ALL SETCOLORwn 24,0
CLEAR TO 25,79 24,6 SAY Ждите идет уплотнение COLOR wn 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 rscr RETURN NIL 4 п.п. выдачи информации о клавишах, на которые реагирует система
Help PROCEDURE hlpcallpnt,prm LOCAL retcol,crow,ccol IF prm NIL prm .F. ENDIF crow ROW ccol COL retcol SETCOLORwn 22,0 CLEAR TO 24,79 IF callpnt GET исправленный HLP для GET 26.09.96 22,0 SAY Enter CHR24 CHR25 PgUpPgDn -Завершить редактирование с сохранением измененного значения 22,0 SAY Enter CHR24 CHR25 PgUpPgDn COLOR rn 23,1
SAY CHR26 CHR27 CHR26 CHR27 Home End - Перемещение курсора 23,1 SAY CHR26 CHR27 CHR26 CHR27 Home End COLOR rn 24,1 SAY Esc - Отменить редактирование без сохранения измененного значения 24,1 SAY Esc COLOR rn ENDIF IF callpntAAED .OR. callpntBBED SET COLOR TO wn 22,1 SAY chr24 chr25 CHR26 CHR27 CHR26
PgUp PgDn CHR27 Home End - Перемещение курсора 24,0 SAY Enter - Редактирование 23,23 TO 24,23 DOUBLE 23,25 SAY Esc - Возврат на шаг назад COLOR wn 23,25 SAY Esc COLOR rn 23,54 TO 24,54 DOUBLE 23,55 SAY F8 - Удалить строку 24,55 SAY F3 - Вставить строку SET COLOR TO rn 22,1 SAY chr24 chr25
CHR26 CHR27 CHR26 PgUp PgDn CHR27 Home End 24,0 SAY Enter 23,55 SAY F8 24,55 SAY F3 ENDIF IF callpntCCED .OR. callpntDDED SET COLOR TO wn 22,1 SAY chr24 chr25 CHR26 CHR27 CHR26 PgUp PgDn CHR27 Home End - Перемещение курсора 24,0 SAY Enter - Редактирование 23,23 TO 24,23 DOUBLE 23,25
SAY Esc - Возврат на шаг назад COLOR wn 23,25 SAY Esc COLOR rn 24,25 SAY Enter - Выбор значения COLOR wn 24,25 SAY Enter COLOR rn 23,54 TO 24,54 DOUBLE 23,55 SAY F8 - Удалить строку 24,55 SAY F3 - Вставить строку SET COLOR TO rn 22,1 SAY chr24 chr25 CHR26 CHR27 CHR26
PgUp PgDn CHR27 Home End 24,0 SAY Enter 23,55 SAY F8 24,55 SAY F3 ENDIF SET COLOR TO retcol SETPOScrow,ccol RETURN 5 п.п. выявления всех случаев превышения нормативных интервалов между профилактиками, вывода их в выводной файл DD, а также выдачи ведомости на принтер func vedom local tinvnom,sitog,tdata,tidzap,tidst,idpop set printer on select dd zap linspace17Таблица нарушение норм техобслуживания lin select bb set relat to
bb- invnom into cc set relat to cc- idst into aa additive go top sitog0 do while .not. eof tinvnombb- invnom tdatabb- dateprof tidzapbb- idzap tidstcc- idst skip ifbb- invnomtinvnom.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 sitogsitogdd- 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 tinvnomdd- invnom idpopdd- idzappp lin dd- invnom select bb go top do while .not. eof iftinvnombb- invnom.and.idpopbb- idzap linlinaa- namest dtocbb- dateprof bb- vidprof endif skip enddo select dd idpopdd- idzapsp select bb go top do while .not. eof
iftinvnombb- invnom.and.idpopbb- idzap linlin dtocbb- dateprof bb- vidprof endif skip enddo select dd linlinstrdd- fkdn-dd- norma,4 lin skip enddo lin lin set color to wb lin Всего просроченно дней -strsitog,5 lin set printer off sound inkey0 return nil 6 п.п. подачи звукового сигнала для сигнализации успешного выполнения поставленной задачи func sound tone300,1 tone100,1 tone300,1 tone100,1 return nil 7 п.п. сохранения зкрана FUNC sscrt,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 wind1, t AADD wind2, l AADD wind3, b AADD wind4, r AADD wind5, SAVESCREENt,l,b,r AADD pos1, ROW AADD pos2, COL AADD colr, SETCOLOR AADD curs, SETCURSOR RETURN .T. 8 п.п. восстановления зкрана
FUNC rscr LOCAL ln ln LENwind1 IF ln 0 24,0 SAY Ошибка - стек для восстановления параметров пуст INKEY0 24,0 ENDIF RESTSCREENwind1,ln, wind2,ln, wind3,ln, wind4,ln, wind5,ln ASIZEwind1,ln-1 ASIZEwind2,ln-1 ASIZEwind3,ln-1 ASIZEwind4,ln-1 ASIZEwind5,ln-1 SETPOS pos1,ln, pos2,ln ASIZEpos1,ln-1 ASIZEpos2,ln-1 SETCOLORcolrln ASIZEcolr,ln-1 SETCURSORcursln
ASIZEcurs,ln-1 RETURN .T. 9 п.п. определения - нажата ли клавиша типового метода, если да - то возвращает блок кода с соответствующим методом, если нет - то возвращает NIL. Параметр функции - INKEY-код нажатой клавиши. FUNC basemetcod LOCAL ret , ei , i LOCAL crsm KDOWN , o odown , KUP , o oup , KPGDN , o opagedown , KPGUP , o opageup ,
KCTRLPGDN , o ogobottom , KCTRLPGUP , o ogotop , KRIGHT , o oright , KLEFT , o oleft , KCTRLRIGHT , o opanright , KCTRLLEFT , o opanleft , KEND , o oend , KHOME , o ohome , KCTRLEND , o opanend , KCTRLHOME , o opanhome i ASCAN crsm, ei cod ei1 IF i 0 ret crsmi,2 ELSE ret NIL ENDIF RETURN ret 10 п.п. переключения режима вставказамена и вида курсора
PROCEDURE ReplIns IF READINSERT READINSERT.F. SETCURSORSCINSERT ELSE READINSERT.T. SETCURSORSCNORMAL ENDIF RETURN 11 п.п. перевода в верхний регистр латиницы и кириллицы FUNC UpperCprm 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 122 cs cs - 32 prm STUFF prm , i , 1 , CHR cs
CASE cs 160 .AND. cs 175 cs cs - 32 prm STUFF prm , i , 1 , CHR cs CASE cs 224 .AND. cs 239 cs cs - 80 prm STUFF prm , i , 1 , CHR cs ENDCASE NEXT RETURN prm 12 п.п. выхода из задачи с сохранением всей информации - реакция на клавишу F10 PROCEDURE fquit LOCAL reply reply ALERTСохранить все внесенные изменения и продолжить работу с
Базой данных - т.е. сделать промежуточный SAVE или Завершить работу с базой данных с сохранением всех изменений , Сохранить и продолжить , Завершить работу IF reply 1 .OR. reply 0 DBCOMMITALL ELSE QUIT ENDIF RETURN 13 п.п. вывода сообщения на экран с заданными координатами и цветом PROCEDURE msgsx,y,m,color LOCAL ml,c IF m
NIL RETURN ENDIF mlLENm IF ml0 .OR. ml 80 RETURN ENDIF IF xNIL Центр по X x 80-ml2 ENDIF IF yNIL Центр по Y y 242 - 1 ENDIF IF color NIL c SETCOLORcolor y,x SAY m SETCOLORc ELSE y,x SAY m ENDIF RETURN 14 п.п. создания TBrowse-объекта для просмотра-редактирования файла aa.dbf в окне t,l,b,r
FUNCTION aaCrt,l,b,r LOCAL brws,coln,cblk,chdr brws TBrowseDbt,l,b,r cblk aa- idst chdr Идент. типа станка coln TBColumnNewchdr,cblk colnwidth 19 brwsAddColumncoln cblk aa- namest chdr Наименование типа станка coln TBColumnNewchdr,cblk colnwidth 35 brwsAddColumncoln cblk STR aa- norma,7 chdr Норма,дней coln TBColumnNewchdr,cblk colnwidth 12 brwsAddColumncoln brwscolsep
CHR186 brwsheadsep CHR205 brwscolorspec wb,grrb RETURN brws 15 п.п. просмотра файла aa.dbf с обработкой нажимаемых клавиш и вызовом соответствующих методов или пользовательских функций FUNCTION aaEdbrws LOCAL retfl,sel,otb , w LOCAL cc,rr,nrc0,i LOCAL retNIL LOCAL t brwsnTop , l brwsnLeft , b brwsnBottom , r brwsnRight LOCAL t 5 , l 6 , b 15 , r 74 sscr srs SETCOLOR NW
CLS SETCOLOR grb,wgr hlpAAED SELECT aa SET ORDER TO 2 t-2 , l-1 CLEAR TO b2 , r1 b1, l TO b1, r retfl .F. DO WHILE .NOT. retfl оптимизированная с использованием буфера клавиатуры стабилизация DO WHILE NEXTKEY 0 .AND. .NOT. brwsstabilize ENDDO IF NEXTKEY 0 .AND. RECNO nrc nrc RECNO rr ROW cc COL
SETCOLORbgb t-2 , l1 SAY Нормативы профилактики оборудования b2 , l1 SAY Тип станка b2 , COL1 SAY aa- namest COLOR wb SETPOSrr,cc ENDIF SETCOLORgrrb ожидаем нажатия клавиши nkey Inkey0 если нажата клавиша типового метода - вызовем его blk basemet nKey IF blk NIL EVAL blk , brws ELSE DO CASE CASE bHotkey SETKEY nKey NIL EVAL bHotkey ,
PROCNAME , PROCLINE , READVAR CASE nKey KF8 DELETE потрогаем файловый указатель, если возвращаетя EOF - .T. после Down-Up, значит файл пуст SKIP SKIP -1 IF RECNO RECCOUNT1 retfl .T. завершение просмотра ENDIF brwsRefreshAll nrc 0 CASE nKey KESC retfl .T. завершение просмотра CASE nKey KENTER Редактирование текущего элемента данных aaGetbrws ,
Редактирование файла aa.dbf nrc 0 обновить верхнюю строку CASE nKey KF3 APPEND BLANK brwsRefreshAll ENDCASE ENDIF ENDDO SET RELAT TO srs.T. rscr 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 Проверка обновления экрана, корректности базы и т.д. ForceStablebrws Установка клавиш Up-Arrow и Down-Arrow как клавиш выхода из команды
READ retexit READEXIT.T. Установка клавиши INS для переключения режима вставказамена и соответствующего изменения вида курсора retins SetKey KINS, ReplIns эквивалентно Set Key KINS To Procedure ReplIns Установка вида курсора по текущему состоянию режима retcurs SetCursor IFReadInsert, SCNORMAL, SCINSERT sscr retcol SETCOLORwg brwsnTop-3,0 brwsnTop-3,0 SAY z0 hlpGET
SETCOLORgrn,wg indch .F. DO CASE CASE brwscolpos 1 w aa- idst r,c2 GET w READ IF .NOT. LASTKEY KESC .OR. aa- idst w REPLACE aa- idst WITH w indch .T. ENDIF CASE brwscolpos 2 n aa- namest r,c2 GET n READ IF .NOT. LASTKEY KESC .OR. aa- namest n REPLACE aa- namest WITH n ENDIF CASE brwscolpos 3 w aa- norma r,c1
GET w READ IF .NOT. LASTKEY KESC .OR. aa- norma w REPLACE aa- norma WITH w ENDIF ENDCASE SETCOLORretcol rscr SETPOSr,c IF indch brwsRefreshAll ELSE brwsRefreshCurrent Обеспечить перерисовку текущей строки, ENDIF поскольку изменялся элемент данных Восстановление формы курсора и режима выхода из READ по стрелкам и процедуры по клавише KINS SetCursorretcurs
READEXITretexit SetKeyKINS, retIns Проверка требования ухода с текущей записи после GET nKey LASTKEY IF nKey KUP .OR. nKey KDOWN .OR. nKey KPGUP .OR. nKey KPGDN управление курсором переход к другой записи KEYBOARD CHRnKey ENDIF RETURN
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |