nsutextbook (1037554), страница 23

Файл №1037554 nsutextbook (Методические указания по выполнению лабораторной работы №1) 23 страницаnsutextbook (1037554) страница 232017-12-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 23)

Создать web-страницу для просмотра всех клиентов и web-страницу для изменения свойств клиентов.Решение. Создать страницу BrowHuman.csp, которая позволяет просматривать информацию обо всех клиентах в виде таблицы. Внешний вид страницы приведен на рис.12.106Рисунок 12. BrowHuman.cspВ поле ID формы имеется гипер-ссылка, по которой открывается другая webстраница – CSPBind1.csp. CSPBind1.csp является формой отображения и изменения полейнужного объекта.

Она должна получить от BrowHuman.csp значение ID редактируемогообъекта, см. рис 13.Рисунок 13. Форма CSPBind1.csp.На странице BrowHuman.csp значение ID передается странице CSPBind1.csp с помощью следующего кода:<a href=CSPBind1.csp?Id=#(hum.Get("ID"))#>В свою очередь на странице CSPBind1.csp доступ к переданному значению ID выполняется с помощью объекта %request, код приведен ниже:<csp:object classname="Human" name="obj" objid=#(%request.Get("Id"))#>Исходный код страниц приводится ниже.Код формы BrowHuman.csp:<head> </head><body bgcolor="#FFFDD"><h1>Просмотр клиентов</h1>107<table border="1" width="70%"><tr><td width="5%"> <b>ID</b> </td><td width="25%"> <b>Фамилия</b> </td><td width="20%"> <b>Имя</b> </td><td width="15%"> <b>Дата</b> </td><td width="15%"> <b>Возраст</b> </td></tr><csp:query name="hum" classname="Human" queryname="byHuman"><csp:while Condition=hum.Next()><tr><td width="5%"><a href=CSPBind1.csp?Id=#(hum.Get("ID"))#>#(hum.Get("ID"))#</a></td><td width="25%">#(hum.Get("Fam"))#</td><td width="20%">#(hum.Get("Im"))#</td><td width="15%">#(hum.Get("dat"))#</td><td width="15%">#(hum.Get("age"))#</td></tr></csp:while></table></body>Код формы CSPBind1.csp:<HTML><HEAD><TITLE> </TITLE></HEAD><BODY><csp:object classname="Human" name="obj"objid=#(%request.Get("Id"))#><form name=Person cspbind="obj">Фамилия: <input cspbind="Fam" type="text" name="Fam" ><br>Имя:<input cspbind="Im" type="text" name="Im" ><br>Возраст: <input cspbind="age" type="text" name="age" ><br>Дата рождения: <input cspbind="dat" type="text" name="dat" ><br><input name="New" type="Button" value="Добавить"OnClick='Person_new();'><input name="Save" type="Button" value="Сохранить"OnClick='Person_save();'><input name="Del" type="Button" value="Удалить"OnClick="#server(..Del(#(%request.Get("Id"))#))#"></form></BODY></HTML><script language="Cache" Method="Del" arguments="id:%Integer">set cc=##class(Human).%DeleteId(id)</script>С помощью элемента objid=#(%request.Get("Id"))# форма CSPBind1.csp получает значение поля ID и правильно отображает поля нужного объекта.108Форма CSPBind1.csp также интересна тем, что она использует атрибут CSPBind тегаForm, т.е.

связывает поля формы с полями объекта. Если осуществляется привязка объектак форме CSP-страницы тегом <CSP:Object>, Caché автоматически создает методыformname_new() и formname_save(), где formname – это имя формы, методы используютсядля добавления и сохранения объектов формы.Пример 2. Обработка запросов пользователей с использованием %requestНапример, требуется выполнить поиск клиента по фамилии, для этого создаетсястраница «Search.csp».

Внешний вид страницы «Search.csp» приведен на рис. 14.Рисунок 14. Форма поиска Search.csp.Код страницы Search.csp приведен ниже:<HTML><HEAD><TITLE>поиск </TITLE></HEAD><BODY bgcolor="#FFFFFF" ><form name="Search" Action="PersonSearch.csp">Поиск клиента по фимилии:<input type="Text" name="SearchFor"><input type="submit" value="поиск"></form></BODY></HTML>При нажатии на кнопку "submit" («поиск») открывается web-страницаPersonSearch.csp, которой передается объект %request, метод Get() которого позволяет получить значение поля "SearchFor".

При загрузке страницы выполняется запрос Q2, содержащий параметр. Текст запроса Q2 приведен ниже:Query Q2(P1 As %Integer = 44) As %SQLQuery(CONTAINID = 1){SELECT %ID,age,dat,Fam,Im FROM HumanWHERE (Fam = :P1)ORDER BY Fam}Код страницы PersonSearch.csp приведен ниже:<HTML><HEAD><TITLE></TITLE>109</HEAD><BODY bgcolor="#BBFFFF"><csp:query name="query" classname="Human"queryname="Q2"P1='#(%request.Get("SearchFor"))#'>req= #(%request.Get("SearchFor"))# <br><csp:while Condition="query.Next()"><a href='Person.csp?oid=#(query.Get("ID"))#'></a>Фамилия : #(query.Get("Fam"))# <br>Имя : #(query.Get("Im"))# <br>Возраст : #(query.Get("age"))# <br>Дата рождения :#(query.Get("dat"))# <br><br></csp:while></BODY></HTML>8.6.

Объект %sessionПри активизации сеанса работы с пользователем создается переменная %session,объект класса %CSP.Session. В объекте %session могут храниться переменные, ассоциированные с пользователем, используемые для управления сеансом. Например, с помощьюсессии можно передавать значения переменных между страницами. Дело в том, что однаиз основных трудностей, при разработке Web-приложений состоит в том, что при работепо протоколу HTTP соединение между броузером и сервером прекращается сразу послеокончания вывода очередной страницы.

Таким образом, мы не можем определить, какиедействия выполнял пользователь на предыдущих страницах нашего Web-приложения, тоесть сохранять контекст приложения. Благодаря использованию объекта %session появляется возможность передать информацию от одного запроса к другому, от одной страницык другой.Необходимая информация сохраняется в объекте %session в виде пар «имя/значение»и может использоваться на любой другой странице. Например, сохранение значения”Admin” переменной “Name” в объекте %session выполняется с помощью метода Set объекта session:Do %session.Set(“Name”,”Admin”)Позже, в ходе обработки страницы, можно получить значение Name следующим образом: %session.Get(“Name”).Объект %session содержит ряд свойств, методов и параметров, которые помогаютразработчику управлять сессией.

Некоторые полезные свойства и методы объекта%session приведены в табл. 17. Ознакомиться с документацией объекта %session класса%CSP.Session можно по адресу:(http://127.0.0.1:1972/apps/documatic?CLASSNAME=%25CSP.Session).Таблица 17ИмяВозвращаеФункцияАргумент(ы)мое значениеCount%Library.IntegerКол-во значений под заданным Имя поля данименем (поля данных)ныхGetСоответствуюИзвлекает из объекта %session зна- Имя поля данщий аргументчение заданного поля данных (или ныхпустую строку, если значение отсутствует)110KillнетNext%Library.StringOnAppTime нетOutonStart%Library.BooleanIsDefined%Library.BooleanнетSetУдаляет поле из объектаИмя поля данныхНавигация по полям объекта, воз- Имя предыдувращает имя следующего полящегополяданныхСтандартный метод для обработки неттайм-аута, устанавливает свойствоEndSession в 1Вызывается сразу после создания и нетинициализации объекта %session,возвращает ИСТИНУ, если долженпоследовать вызов страницыВозвращает ИСТИНУ, если значе- Имя поля данние поля данных передано странице ныхСохраняет измененное значение Имя поля данполя данных, либо создает новое ныхполеДля иллюстрации возможностей CSP по поддержке сессии выполним следующеепростое упражнение.

Создадим CSP-страницу Session.csp, задающую значение сессионнойпеременной Page. Страница Session1.csp вызывается со страницы Session.csp и отображает значение сессионной переменной Page. Код страницы Session.csp:<HTML><HEAD><TITLE>Пример использования session </TITLE></HEAD><BODY><script language="Cache" runat="server">// назначить переменной значениеdo %session.Set("Page",45)</script>Страница 1Назначает значение #(%session.Get("Page"))#сессионной переменной Page<a href="Session1.csp">Страница 2</a></BODY></HTML>Код страницы Session1.csp:<HTML><HEAD><TITLE>Пример использования session </TITLE></HEAD><BODY>Страница 2Получает значение сессионной переменной Pageравное #(%session.Get("Page"))#</BODY></HTML>1118.7.

Пример разработки форм ввода и просмотра объектов классаЗадание: Разработать формы просмотра, добавления, изменения и удаления объектов класса Books, содержащего информацию о книгах. Описание классов, необходимыхдля этого, приведены ниже.Класс «Книги» (Books) – содержит информацию о книгах. Где Title – название книги, Authors – список авторов, CountPage – количество страниц, Category – категория, ссылка на хранимый класс «Категории», Decsription – описание книги. В классе созданы дваметода: метод класса AddBook для создания объекта и метод экземпляра AlterBook дляизменения свойств объекта. Определение класса:Class User.Books Extends %Persistent [ ClassType = persistent, ProcedureBlock ]{Property Authors As %String [ Collection = list ];Property Category As User.Category;Property CountPage As %Integer;Property Decsription As %String(MAXLEN = 100);Property Title As %String;Property Cena As %Numeric;Method AlterBook(title As %String, authors As %String, countpage As %String, desc As%String, categ As Category, cena As %Numeric){ // метод для изменения свойств объектаset ..Title=titledo ..Authors.InsertAt(authors,1)do ..CategorySetObjectId(categ)set ..CountPage=countpageset ..Decsription=descset ..Cena=cenaset sc= ##this.%Save()}ClassMethod AddBook(title As %String, author As %String, countpage As %String, descAs %String, categ As Category, cena As %Numeric) as Books{ // метод класса для создания экземпляра объектаset book=##class(Books).%New()set book.Title=titleSet book.CountPage=countpageSet book.Decsription=descSet book.Cena=cenado book.CategorySetObjectId(categ)do book.Authors.InsertAt(author,1)set sc=book.%Save()Quit book}Index IndBooks On Title As Exact;}Класс «Категории» (Category), содержит информацию о категориях, к которым могутотноситься конкретные книги.

Характеристики

Тип файла
PDF-файл
Размер
2,42 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее