Поле ограничений (limits) в файле описания содержит информацию двух типов:
Диалоговая информация применяется для создания объектов SMIT, представляющих атрибуты файла описания в базе данных Администратора объектных данных (ODM). Эти объекты применяются в окнах диалога Печать файла, Настройка принтера и Параметры задания по умолчанию.
Поле limits позволяет создателю файла описания управлять типом объекта ODM, создаваемого для данного атрибута. Все объекты, созданные согласно полю limits, входят в объектный класс sm_cmd_opt. С помощью поля limits можно управлять следующими полями объектного класса sm_cmd_opt:
Вы можете выбрать один из следующих трех вариантов показа атрибута: всегда, никогда или только если на атрибут есть ссылка в конвейере. Подробные описания полей приведены в разделе "sm_cmd_opt (SMIT Dialog/Selector Command Option) Object Class" книги AIX 5L Version 5.1 General Programming Concepts: Writing and Debugging Programs.
Контрольная информация применяется для проверки значений атрибутов при обработке файла описания и передаче задания печати на выполнение.
Дополнительная информация о поле ограничений приведена в следующих разделах:
Поле limits - это четвертое поле в файле описания. Формат атрибутов этого файла следующий:
Каталог_сообщений:Номер_сообщения:Имя_атрибута:Ограничения:Значение
Информация в поле limits состоит из двух компонентов. Первый компонент - это односимвольный оператор, задающий действие. Символьный оператор может обозначаться одной из следующих букв: C, D, E, F, G, H, I, L, M, Q, R, S, T или V. Вторым компонентом являются данные. Если операнд занимает несколько символов, он должен быть заключен в квадратные скобки ([ ]).
Например, если поле limits содержит строку 'E#', то поле entry_type объектного класса sm_cmd_opt будет содержать число, присвоенное #. Поле entry_type после указания строки 'E#' будет принимать только числовые значения.
Если, в другом примере, поле limits содержит строку '[none,full,emulator=0,1,2]', то поля объектного класса sm_cmd_opt будут содержать следующие значения:
Поле Значение
disp_values none, full, emulator aix_values 0,1,2
С помощью операторов в поле limits можно изменять следующие параметры SMIT:
Например, в окнах диалога SMIT qprt и admvirprt применяются следующие правила:
В окнах диалога SMIT qprt применяются следующие дополнительные правила:
В окнах диалога SMIT admvirprt применяются следующие дополнительные правила:
Определения и примеры операторов поля limits объединены в следующие группы:
C | Задает связь различных флагов в окне диалога SMIT, способ отображения
опций для этих флагов и список доступных опций и флагов. Для поддержки
взаимозависимых флагов (например, управляющих начертанием и шириной шрифта)
могут применяться комбинации флагов. Обычно каждому полю диалога SMIT
соответствует один флаг командной строки. Оператор комбинации флагов
позволяет одному полю диалога SMIT поставить в соответствие несколько флагов
командной строки. При этом подчиненные флаги должны быть отмечены как
скрытые в окнах диалога SMIT (оператор Dn), чтобы вместо отдельных
флагов была показана их комбинация.
Синтаксис оператора C следующий: C[xx,yy,...] Значения xx и yy - это атрибуты флагов. При указании атрибута C в поле limits должен быть также указан оператор кольцевого списка R, задающий всплывающий список для пользователей SMIT. Оператор R также задает соответствие опций списка флагам командной строки. :111:Cs:C[_s,_p]R[Courier 10, Prestige 12= -s Courier -p10, -s Prestige -p12]):-s %I_s -p %I_p :999:_s:Dn:Courier :222:_p:Dn:10 В этом примере оператор C указывает, что флаги -s и -p - это атрибуты комбинации. Оператор кольцевого списка R указывает, что опции Courier 10 всплывающего меню ставятся в соответствие флаги -s Courier -p10 командной строки. Значение атрибута -s %I_s -p%I_p подставляется SMIT при создании окна диалога; оно определяет элемент кольцевого списка, который будет выбран по умолчанию. |
D | Задает режим отображения. Если выбрано значение y, в объектном классе sm_cmd_opt создается соответствующий объект. Если выбрано значение n, объект не создается. Оператор D позволяет программисту подавлять отображение отдельных флагов в SMIT. Если этот оператор не указан, объект создается при указании флага в конвейере ввода. |
S | Задает порядковый номер в поле id_seq_num объектного класса
sm_cmd_opt. Порядковый номер управляет положением элемента
по отношению к другим элементам окна диалога. Если оператор
S не указан, элементы нумеруются в порядке их обработки в файле
описания, начиная с номера 100.
Значением для оператора S служит строка длиной до 16 символов. Например, следующий оператор S помещает элемент в позицию 100: :100:_1:S[100]:60 |
Операторы вспомогательных операций в определении диалога SMIT задают тип списка и пользовательского ввода. В окнах диалога доступны следующие типы списков: простой список, список с возможностью выбора нескольких элементов, диапазон, кольцевой список и кольцевой список с возможностью выбора нескольких элементов. Тип вспомогательной операции задается операторами L, M, G и R в поле атрибута limits.
Допустим выбор только одного типа
вспомогательной операции. Значение по умолчанию, op_type=n,
означает, что вспомогательная операция для данного поля не разрешена.
F | Управляет полем cmd_to_list_mode объекта
sm_cmd_opt. Поле cmd_to_list_mode указывает,
какую часть элемента списка нужно использовать. Список создается
командой, заданной в поле cmd_to_list. Например, пусть в
результате выполнения команды поле cmd_to_list содержит следующий
список:
60 (6 строк на дюйм) 80 (8 строк на дюйм) 66 Допустимы следующие значения оператора F: Для того чтобы SMIT выбирал первое поле списка, введите: :100:_l:F1:60 |
G | Задает диапазон. Оператор G присваивает полю
cmd_to_list_mode значение r. Это значение указывает, что
информация в поле cmd_to_list задает диапазон, а не список.
Введенное значение должно быть допустимым. Диапазон задается в формате x..y (1..30), ..y (..30) или x.. (1..) , где x и y - соответственно нижняя и верхняя его границы. Значение атрибута должно находиться в этом диапазоне. Оба числа могут быть отрицательными, однако верхняя граница (y) должна быть не меньше нижней границы (x). Например, если вы хотите указать, что выбранное значение должно находиться в диапазоне от 50 до 100, введите: :100:_l:G[50..100]:60 |
H | Задает спецификацию сообщения, в котором хранится текст справки для
соответствующего атрибута. Спецификация сообщения включает имя каталога
сообщений, номер набора и номер сообщения. Текст справки по атрибуту,
если он задан, можно просмотреть в окне диалога SMIT.
Для выбора текста справки для флага -b в окне диалога pioattrl cat введите: :100:_b:H[pioattr1.cat,5,123]:60 |
I | Задает спецификацию публикации для текста справки по соответствующему
атрибуту. Спецификация публикации включает значения для полей
help_msg_id, help_msg_base и help_msg_book
объектного класса SMIT sm_cmd_opt. Текст справки по
атрибуту, если он задан, можно просмотреть в окне диалога SMIT.
Для выбора справки для флага -b с помощью спецификации публикации введите: :100:_b:I[100145]:60 |
L | Указывает, что при нажатии пользователем клавиши F4 должен появиться
всплывающий список. Такой список позволяет пользователю выбрать только
одну опцию из возможных. Всплывающий список создается из значения поля
cmd_to_list. Значение поля op_type для
всплывающего меню равно l.
Проверка допустимости выполняется, только если ввод значения с клавиатуры запрещен. Тип ввода в поле, запрещающий прямой ввод, равен n. Поле cmd_to_list должно содержать список, разделенный символами новой строки. Для проверки допустимости значение атрибута сравнивается с элементами этого списка. Допустимые значения оператора L - это команды оболочки, создающие значение поля cmd_to_list. При создании списка из вывода команды элементы разделяются символами новой строки. Например: :100:_l:L[print "50\n55\n60\n65"]:60 |
M | Создает список с возможностью выбора нескольких элементов.
Оператор M аналогичен оператору списка L, за исключением
того, что полю multi_select присваивается значение
m.
Пример оператора списка с возможностью выбора нескольких элементов приведен ниже: :100:_l:M[print "50\n55\n60\n65"]:60 |
R | Создает кольцевой список. Полю op_type присваивается
значение r. Кольцевой список отличается от обычного тем, что
пользователь может выбирать опции списка с помощью клавиш Tab (табуляция) и
Backtab (обратная табуляция). При достижении конца кольцевого списка
происходит переход к его началу, и наоборот. При нажатии клавиши F4
кольцевой список становится обычным.
Оператор кольцевого списка управляет значениями полей disp_values, aix_values, values_msg_file, values_msg_set и value_smg_id. В кольцевом списке можно не указывать ИД сообщения, указать только ИД сообщения, указать набор и ИД сообщения или указать набор, каталог и ИД сообщения. Проверка допустимости выполняется, только если непосредственный ввод значения пользователем запрещен, т.е. тип ввода равен n. В кольцевом списке возможны встроенные значения, которые либо передаются без изменения, либо преобразуются в значения базовой операционной системы. Примером неизменяемых значений может служить список допустимых скоростей передачи данных ('1200,2400,9600,19200'), где сами значения элементов подставляются в качестве аргументов флага. Примером преобразуемых значений может служить атрибут выбора лотка для подачи бумаги. В этом примере тремя возможными значениями будут нижний лоток, верхний лоток и лоток для конвертов. Эти опции будут преобразованы в значения базовой операционной системы '0,1,2'. Выполняемой команде в аргументе флага будет передано значение базовой операционной системы.
Допустимое значение атрибута должно быть равно одному из встроенных значений. В следующих примерах показаны различные варианты кольцевых списков: :100:_l:R[0,1,2]:0 :100:_l:R[none,full,emulator=0,1,2]:0 :100:_l:R[;none,full,emulator=0,1,2]:0 :100:_l:R[21,none,full,emulator=0,1,2]:0 :100:_l:R[1,21;none,full,emulator-0,1,2]:0 :100:_l:R[pioattr9.cat,1,21;none,full,emulator=0,1,2]:0 |
T | Позволяет выбирать несколько элементов во всплывающем списке.
Аналогичен оператору R. Полю
multi_select присваивается значение m.
Для разрешения выбора нескольких элементов во всплывающем меню введите: :100:_l:T[none,full,emulator=0,1,2]:0 |
V | Задает дополнительные проверки допустимости значения атрибута.
Оператор V не влияет на создание раздела ODM для атрибута.
Данные, указываемые вместе с оператором V в файле описания, - это
формула проверки (составленная из операторов %). Проверку
допустимости выполняют операторы %. После вычисления
согласно формуле проверки получается нуль или ненулевое значение. Нуль
означает, что значение атрибута допустимо. Ненулевое число говорит о
том, что значение атрибута указано неправильно.
Для проверки того, что значение _l находится в диапазоне от 0 до 100, введите: :100:_l:V[%?%G_l%{100}%>%t1%e%?%G_l%{0}%<%tl%e0%;%;]:60 |