Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[8]

•указатель какое из двух окон данных активно (isActive);

•окно данных, содержащее одну запись RWRecord;

•окно данных, содержащее таблицу RWTable;

•список кортежей из параметризованных запросов (Actions).

-- Start of Scheme

rsl/T0, rsl/L3 SET scheme L3 CNT0 =

with T0 in

extend L3 SET with

type--Nat: which RW object = active? 0- RWRecord;

--!0 - RWTable

PanContent = Text x Nat x RWRecord x RWTable x Actions*

- -item pan title

, MenuItem = Text x Text x Actions*

MainMenu : MenuItem-set ,

mkRWOutput : PanContent - SETOutput,

app about : PanContent,

nothing to do : PanContent,

export : PanContent - PanContent,

filter : PanContent - PanContent,

order : PanContent - PanContent,

mkPanContentOutput : PanContent - SETOutput

-- End Of Scheme

По-разному заданное, содержание панели (Panel Content) определяет различные типы панели.

•Не заданные окна данных и заданный текст нужен для создания панелей с сообщениями вроде app about или nothing to do;

•Заданное окно данных RWRecord и не заданное RWTable используется для создания панели редактирования записи;

•Заданное окно данных RWTable и не заданное RWRecord используется для создания панели отображения таблиц (списка сущностей);


• Заданные, связанные отношением один ко многим окна данных (RWRecord и RWTable) используются для создания панели редактирования сущности.

Некоторое окно данных считаются не заданным, если оно равно величине empty. Такая величина есть для типа RWRecrd и типа RWTable.

2.4.2 Actions List

Кортеж запросов (Actions)

Он играет специальную роль. Он влияет на вид панели, которая будет создана после нажатии пользователем кнопок Edit/Add или выбора элементов меню (в функциях edit и add схемы L3 CNT.RSL). Кортеж включает

•заголовок панели;

•количество первичных ключей в запросах;

•оператор (Action) обновления таблицы родителя;

•оператор заполнения окна данных;

•оператор заполнения содержимого записи при создании новой записи;

•оператор добавления новой записи;

•оператор удаления записи;

Оператор (Action)

- это обычный, возможно параметризованный, оператор SQL. В качестве параметров должны подставляться некоторые переменные или значения ключевых полей записи - родителя.

Сигналы уровня множество (SETInput, SETOutput) состоят из

•Указателя движения по окну данных;

•направления движения, которое может быть вертикальное или горизонтальное.

RWTable: Вертикальное движение приводит к смене текущей записи. Горизонтальное к смене текущей колонки.

RWRecord: Вертикальное - смена поля для редактирования. Горизонтальное смена колонки окна данных.

•масштаба для указателя движения (Zoom) - с его помощью можно задать перемещение:

- на другое окно данных;


-в начало/конец множества;

-в начало/конец экрана;

-на следующую/предыдущую запись. • параметра.

-- Start of Scheme

rsl/T0, rsl/L3 ITEM scheme L3 SET0 =

with T0 in

extend L3 ITEM with

SETInput = Pointer x Direction x Zoom x Text, - - number = param of the set Pointer SETOutput, - - content of datawindow

-- title key fields number

--parent update

--select insert

-- update delete

Actions =

Text x Nat x Action x Action x Action x Action x Action, Action = { t : Text • isSqlStatment(t) Л t = }

isSqlStatment : Text - Bool

-- End Of Scheme

2.4.3 Concrete Panel Content Functions

Комментарий к работе функции cnt:

•Если оба окна данных - пустые, то не делаем ничего;

•Если пусто окно данных записи или активно окно данных таблицы (и не нужно менять активное окно данных) , то обновляем окно таблицы функцией refTW;

•Если пусто окно данных таблицы или активно окно данных записи (и не нужно менять активное окно данных), то обновляем окно записи функцией refRW;



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15]