Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Форма отображения 10-ти лучших работников зоопарков Украины.↑ ⇐ ПредыдущаяСтр 7 из 7 Содержание книги
Поиск на нашем сайте
Для отображения 10-ти лучших работников зоопарков всей Украины используется форма Top10, которая вызывается из главного меню Справочники - Топ 10 работников.
Свойства формы: AutoCenter =.T. - True BorderStyle = 0 – No border Caption = ’ Топ 10 работников’ DataSession = 2 – Private Data Session Height = 228 Icon = ’fox8.ico’ MaxButton =.F. – False MinButton =.F. – False Name = ’top10’ Width = 663 oTop10 =.F.
Методы формы: До создания формы выполняется процедура Load. В ней создается курсор (временная таблица), которая связываются с таблицей базы данных сервера. SET TALK OFF && Не выводить промежуточные результаты SET SAFETY OFF && Не запрашивать системного подтверждения на удаление SET NEAR ON && Выполнять поиск до близлежащего элемента
thisform.oTop10=CREATEOBJECT('ocad') && создать объект-курсор для таблицы thisform.oTop10.Alias='Top10' && имя курсора thisform.oTop10.SelectCmd='SELECT * FROM Top10()'&& команда для заполнения курсора && структура курсора thisform.oTop10.CursorSchema='id I, workname C(30), zooname C(20), cityname C(15), kol I' IF thisform.oTop10.CursorFill(.T.,.F., 1, loCmd)=.F. && если заполнение курсора не получилось LOCAL laerror(1) && объявление массива = AERROR(laerror) && чтение ошибки в массив MESSAGEBOX('Top10 '+STR(laerror(1))+' '+laerror(2)) && выдать сообщение об ошибке RETURN.F. && возврат с ошибкой ENDIF
Объекты формы: Grid1 – отображение таблицы BaseClass = Grid, ColumnCount = 5, DeleteMark =.F. – False, HighlightStyle = 2, Name = ’Grid1’, ReadOnly =.T. – True, RowSource = ’Top10 ’, ScrollBars = 0 – None
Дополнительные процедуры Эти процедуры вызываются из форм программы и выполняют определенные действия над объектами, которые передаются в виде параметров.
· Add_record – добавляет новую запись в таблицу LPARAMETERS tabname, objLst, objCursor && параметры - имя таблицы, объект-список, объект-курсор
&& Вызвать форму запроса нового имени и возврат его в переменную cName DO FORM zapros_name WITH tabname, '' TO cName IF EMPTY(cName) && Если запрос отменен RETURN && Возврат ENDIF
oTemp=CREATEOBJECT('ocad') && создать объект для временного курсора oTemp.Alias='Temp' && имя временного курсора && составление командной строки для запроса oTemp.SelectCmd='SELECT * FROM add_'+tabname+'(?cName) as ret' oTemp.CursorSchema='ret I' && структура курсора IF oTemp.CursorFill(.T.,.F., 1, loCmd)=.F. && если заполнение курсора не получилось LOCAL laerror(1) && объявление массива = AERROR(laerror) && чтение ошибки в массив MESSAGEBOX('Temp '+STR(laerror(1))+' '+laerror(2)) && выдать сообщение об ошибке RETURN.F. && возврат с ошибкой ENDIF
IF temp.ret>0 && если сервер БД вернул код > 0 IF USED('City') && если открыт курсор City idCity=City.id && запомнить его id (он может использоваться в параметре функции на сервере БД ENDIF IF USED('Zoo') && если открыт курсор Zoo idZoo=Zoo.id && запомнить его id (он может использоваться в параметре функции на сервере БД ENDIF objCursor.CursorRefresh() && обновить курсор objLst.Requery && перезалить список =SEEK(temp.ret, tabname, 'id') && найти новую запись в списке ENDIF
· Upd_record – изменяет запись в таблице LPARAMETERS tabname, nId, objLst, objCursor && параметры - имя таблицы, id изменяемой записи, объект-список, объект-курсор
SELECT (tabname) && переключиться на курсор && Вызвать форму запроса нового имени и возврат его в переменную cName DO FORM zapros_name WITH tabname, ALLTRIM(name) TO cName IF EMPTY(cName) && Если запрос отменен RETURN && Возврат ENDIF
nId=id && запомнить id в переменной для использования в параметре функции oTemp=CREATEOBJECT('ocad') && создать объект для временного курсора oTemp.Alias='Temp' && имя временного курсора && составление командной строки для запроса oTemp.SelectCmd='SELECT * FROM upd_'+tabname+'(?nId,?cName) as ret' oTemp.CursorSchema='ret I' && структура курсора IF oTemp.CursorFill(.T.,.F., 1, loCmd)=.F. && если заполнение курсора не получилось LOCAL laerror(1) && объявление массива = AERROR(laerror) && чтение ошибки в массив MESSAGEBOX('Temp '+STR(laerror(1))+' '+laerror(2)) && выдать сообщение об ошибке RETURN.F. && возврат с ошибкой ENDIF
IF temp.ret>0 && если сервер БД вернул код > 0 objCursor.CursorRefresh() && обновить курсор objLst.Requery && перезалить список =SEEK(temp.ret, tabname, 'id') && найти новую запись в списке ENDIF
· Del_record – удаляет запись из таблицы LPARAMETERS tabname, nId, objLst, objCursor && параметры - имя таблицы, id удаляемой записи, объект-список, объект-курсор
&& запрос подтверждения удаления ret_val=MESSAGEBOX('Действительно удалить эту запись?',4+32,'Удаление') IF ret_val<>6 && если выбрано не "Да" RETURN && вернуться ENDIF
SELECT (tabname) && переключиться на курсор old_name=name && сохранить удаляемое имя oTemp=CREATEOBJECT('ocad') && создать объект для временного курсора oTemp.Alias='Temp' && имя временного курсора && составление командной строки для запроса oTemp.SelectCmd='SELECT * FROM del_record(?tabname,?nId) as ret'
oTemp.CursorSchema='ret I' && структура курсора IF oTemp.CursorFill(.T.,.F., 1, loCmd)=.F. && если заполнение курсора не получилось LOCAL laerror(1) && объявление массива = AERROR(laerror) && чтение ошибки в массив MESSAGEBOX('Temp '+STR(laerror(1))+' '+laerror(2)) && выдать сообщение об ошибке RETURN.F. && возврат с ошибкой ENDIF
IF temp.ret>0 && если сервер БД вернул код > 0 IF USED('City') && если открыт курсор City idCity=City.id && запомнить его id (он может использоваться в параметре функции на сервере БД ENDIF IF USED('Zoo') && если открыт курсор Zoo idZoo=Zoo.id && запомнить его id (он может использоваться в параметре функции на сервере БД ENDIF IF USED('Worker') && если открыт курсор Worker idWorker=Worker.id && запомнить его id (он может использоваться в параметре функции на сервере БД ENDIF objCursor.CursorRefresh() && обновить курсор SELECT (tabname) && переключиться на курсор objLst.Requery && перезалить список =SEEK(old_name, tabname, 'name') && выполнить поиск близлежащего названия к старому IF EOF() && если вышли за конец курсора GO BOTTOM && перейти в его конец ENDIF ENDIF
|
||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 155; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.108.48 (0.006 с.) |