Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример P6.1.






Вывести книгу с ID=1. Название книги – гиперссылка.

< BODY>
< csp: object name=" Kniga1" classname=" MPK.Kniga" OBJID=" 1" >
Книга:
< a href=#url(KnigaInfo.csp? ID=#(Kniga1.ISBN)#)#>
#(Kniga1.Name)# #(Kniga1.Avtor)#
< /a>

< /BODY>

Связывание объектов с формами: CSPBIND в формах

Тег < csp: object> позволяет связать данные объекта с формой HTML через атрибут формы CSPBind. Таблица атрибутов связывания, которые могут появиться в теге < Form>:

Таблица 5.3.

Атрибут Обязателен Описание
CSPBind Да Объект, с которым связывается форма. Он должен соответствовать атрибуту NAME тега < CSP: Object>

 

Таблица 5.4.

Таблица атрибутов связывания, которые могут появиться в теге < Input>

Атрибут Обязателен Описание
CSPBind Да Свойство или метод, к которому привязывается INPUT элемент. Должен соответствовать свойству или методу класса Caché, указанному в теге < CSP: Object>
ClassName Может быть Класс, из которого будут получены значения, чтобы заполнить список выбора (только для SELECT). Должен присутствовать, если присутствует CSPField или CSPQuery.
CSPField Нет Свойство или метод (класса, определенного ClassName) чьи значения появятся в списке выбора (только для SELECT). Значение по умолчанию ID.
CSPQuery Может быть Запрос, который будет выполнен, чтобы заполнить список выбора (только для SELECT). Должен присутствовать, если присутствует CSPField или CSPQuery.
CSPRequired Нет Если представлен, указывается, что значение должно быть обеспечено.
CSPValid Нет JavaScript код, чтобы проверить правильность содержимого элемента.

Пример Р7. Использования тега CSP: OBJECT.

Например, требуется создать форму ввода для класса Person со свойствами Id – идентификатор объекта, FIO – фамилия, DR – дата рождения, AGE – возраст. При отображении страницы поля формы отображают текущие значения свойств конкретного объекта класса Person.

< BODY>
< csp: object classname=" MPK.Person" name=" Per" OBJID=" 3" >
<! -- Форма с помощью тега CSPBind связывается с классом Person -->
< form CSPBind=Per name=" Vvod" >
<! -- Каждое поле формы связывается с конкретным свойством объекта с помощью тега CSPBind -->
ID: < input CSPBind=" %Id()" Name=" id" readonly type=" Text" > < br>
Фамилия: < input CSPBind=" FIO" Name=" fam" type=" Text" > < br>
Дата р.: < input CSPBind=" DR" Name=" dr" type=" Text" > < br>
Возраст: < input CSPBind=" AGE" Name=" age" type=" Text" > < br>
< input type=" button" value=" Обновить" onclick=" #server(..Alter(
self.document.Vvod.id.value,
self.document.Vvod.fam.value,
self.document.Vvod.im.value,
self.document.Vvod.age.value))#" >
< /form>

< script language=" Cache" Method=" Alter"
arguments=" id: %Integer, fam: %String, dr: %String" runat=server>
set hum=##class(MPK.Person).%OpenId(id)
Set hum.FIO=fam
Set hum.DR=$ZDateH(dr)
//$ZDateH() - функция преобразование текста в дату
set sc=hum.%Save()
< /script>

5.4.2. Тег < CSP: Query>

Один из наиболее важных CSP-тегов. Позволяет найти данные, используя встроенные SQL-запросы класса. Выполняет следующие функции:

• Соединяется с определенным классом;

• Выполняет встроенный SQL-запрос;

• Возвращает результирующий набор на страницу.

Тег < CSP: Query> выполняет запрос и именует результирующий набор. Затем можно использовать этот набор внутри страницы по своему усмотрению. Имеет атрибуты:

Таблица 5.5.

Атрибуты < CSP: Query>

Атрибут Обязателен Описание
CLASSNAME Нет Определяет имя класса Caché. Требуется, если используется предопределенный запрос, но не динамический запрос.
NAME Да Задает имя переменной, которая позволяет обращаться к результирующему набору на CSP-странице
QUERYNAME Нет Определяет имя предопределенного запроса Caché. Этот атрибут требуется, если используется предопределенный запрос, но не динамический запрос.
P1, P2, …P16 Нет Параметры, передаваемые запросу, в порядке определения их в запросе класса.

Пример. P8. Использование тега < CSP: Query>

Вывести все экземпляра класса Person на HTML-странице, отсортированные по свойству DR. Для решения этой задачи создадим запрос MpkQ() следующего вида:

SELECT %ID, FIO, DR FROM Person Order By DR.

В данном примере также используется тег < csp: while>, который позволяет пройти по всем записям результирующего набора. Оператор hum.Get(< имя поля>) – позволяет извлечь данные конкретного поля запроса.

< BODY>
< table>
< csp: query name=" Per" classname=" MPK.Person" queryname=" MpkQ" >
< csp: while Condition=Per.Next()>
< tr>
< td width=" 20%" > < a href=P8Vvod.csp? Id=#(Per.Get(" ID"))#>
#(Per.Get(" ID"))#< /a> < /td>
< td width=" 30%" > #(Per.Get(" FIO"))#< /td>
< td width=" 30%" > #(Per.Get(" DR"))#< /td>
< /tr>
< /csp: while>
< /table>
< /BODY>

В результате на странице будут отображены все объекты класса Person, отсортированные по полю DR.

Обратим внимание на тег

< a href=P8Vvod.csp? Id=#(Per.Get(" ID"))#> #(Per.Get(" ID"))#< /a> < /td>

В нем формируется ссылка на HTML-страницу P8Vvod.csp, в которую передается параметр Id=#(Per.Get(" ID"))#. Он используется при формировании страницы для отображения личных данных выбранного человека. Пример приведен ниже. Более подробно класс %CSP.Request и использование переменной %request будет рассмотрено позже.

< body>
< h1> Персональные данные (#(%request.Data(" Id", 1))#): < /h1>
< CSP: OBJECT NAME=" pers" CLASSNAME=" MPK.Person" OBJID=#(%request.Data(" Id", 1))#>
< form method=" POST" name=" PersDetail" CSPBIND=" pers" >
< table border=" 1" width=" 69%" >
< tr>
< td width=" 50%" > Фамилия< /td>
< td width=" 50%" > < input type=" text" name=" Surname"
size=" 20" CSPBIND=FIO CSPREQUIRED> < /td>
< /tr>
< tr>
< td width=" 50%" > Дата рождения< /td>
< td width=" 50%" > < input type=" text" name=" DOB"
size=" 20" CSPBIND=DR> < /td>
< /tr>
< tr>
< td width=" 50%" > & nbsp; < /td>
< td width=" 50%" > < input type=" button"
value=" Отправить" name=" Send"
OnClick=PersDetail_save(); > < /td>
< /tr>
< /table>
< /form>
< p> < a href=" P8.csp" > Обратно< /a> < /p>
< /body>

5.4.3. Тег < CSP: While >

Используется для циклической обработки фрагмента страницы. Этот тег, например, может быть использован при визуализации результатов запросов. Атрибуты тега приведены в таблице:

Таблица 5.6.

Атрибут Описание
CONDITION Логическое выражение, которое проверяется после каждой итерации. Если выражение истина, цикл продолжается.
COUNTER Задает имя переменной-счетчика цикла, начальное значением равно 1, значение счетчика автоматически увеличивается на 1 с каждой итерацией цикла. Счетчик можно не задавать.
CURSOR Используется только для встроенных SQL-запросов. Задает имя SQL- курсора.
INTO Используется только для встроенных SQL-запросов. Задает разделенный запятыми список переменных, из которых будет состоять запрос.

Имеет закрывающий тег < /CSP: While>.

Пример P9. Использование тега < CSP: WHILE>.

Данный пример демонстрирует использование переменной счетчика цикла.

< UL>

< CSP: WHILE COUNTER=" i" CONDITION=" i< 10" >

< LI> Значение счетчика - #(i)#.

< /CSP: WHILE>

< /UL>






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.