Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Polyakov.doc
Скачиваний:
20
Добавлен:
02.12.2018
Размер:
5.13 Mб
Скачать
      1. Доступ к данным вида

Для получения в виде списка значений столбца вида используется функция @DbColumn (см. стр. 150), а для поиска информации по ключу из колонки вида - @DbLookup (см. стр. 155). Внимательно рассмотреть синтаксис и параметры функций.

Реализуем следующую функциональность: ввод документов по странам, городам и отелям. В рамках документа «город» необходимо осуществить выбор страны из списка. В документе «отель» после выбора из списка стран, поле «город» тоже должно выбираться из списка и соответствовать выбранному значению страны. В этом случае значение формулы ключевых слов поля Country в формах «город» и «отель» может иметь вид:

"... страна не выбрана ..." : @DbColumn("":"NoCache"; ""; "Country"; 1) ,

а формула поля Town в форме «отель»:

@If(@IsMember(Country ; "... страна не выбрана ..." : ""); "... выберите сначала страну ...";

@IsError(@DbLookup("" : "NoCache"; ""; "Town"; Country; 2)); "... в данной стране не введено ни одного города ..."; "... город не выбран ..." : @DbLookup("" : "NoCache"; ""; "Town"; Country; 2))

Виды «Country» и «Town» должны присутствовать в БД и иметь соответствующие настройки. Для корректной работы примера у свойств полей типа список требуется поднять флаги Refresh fields on keyword change (для Country) и Refresh choices on document refresh (для Town). Продемострировать форму Letter.

      1. Наследование

Демонстрация на примере форм Inherit, ForInherit и вида Inherit. Поля формы могут наследовать данные из текущего документа в момент создания нового документа. Включение режима наследования осуществляется в свойствах формы на закладке Defaults в секции On Create. В клиенте Notes наследование можно выполнять как на уровне вида, так и на уровне открытого документа. В Web-приложениях наследование работает только на уровне открытого документа, даже в случае когда вид отображается с помощью апплета.

В качестве приемника наследуемых значений лучше всего использовать редактируемые и вычисляемые при создании поля.

      1. Упражнение

Реализовать пример Страна – Город – Отель. В форме «отель» реализовать наследование полей «страна» и «город».

      1. Работа с профильными документами

Демонстрация на примере БД HOTEL. Для работы с профильными документами (см. раздел 6.19) на языке @-формул можно использовать две функции: @GetProfileField (см. стр. 192), @SetProfileField (см. стр. 193) и одну из двух команд: [EditProfile] (см. стр. 264) или [EditProfileDocument] (см. стр. 265).

      1. Упражнение

Видоизменить пример Страна – Город – Отель следующим образом. Информация о странах и городах находится в одной БД, а об отелях в другой БД. В этой же БД для обеспечения доступа к информации Страна – Город в профильном документе хранятся путь к БД с информацией о Стране – Городе.

      1. Работа с переменными окружения

Демонстрация на примере БД HOTEL. Для работы с переменными окружения можно использовать функции @Environment (см. стр.111) и @SetEnvironment (см. стр. 113).

      1. Упражнение

Видоизменить предыдущий пример так, чтобы информация о местонахождении БД со странами и городами хранилась в переменных окружения. Объяснить недостатки этого метода.

    1. Диалог с пользователем

      1. Функция @Prompt

Демонстрация на примере форм Prompt и Hotel. Рассмотреть синтаксис и пример с функцией @Prompt (см. стр. 195). Объяснить синтаксис и применение команд [NavNext] и [NavPrev]. С помощью этой функции в форме Отель реализовать акцию, осуществляющую переход на предыдущий/следующий документ. Формула акции может быть следующая:

rez := @Prompt([OkCancelCombo]:[NoSort]; "Навигация"; "Куда перейти?"; "вниз"; "вверх":"вниз");

@If(rez="вниз"; @Command([NavNext]); @Command([NavPrev]))

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]