Настоящий раздел содержит формальное описание языка описания контролей. Лексема <Условие> описывает выражение, которое может быть использовано для формирования атрибута condition элемента control xml-шаблона. Лексема <Логическое выражение> описывает выражение, которое может быть использовано для формирования атрибута rule элемента control xml-шаблона. Лексема <Условие на период> описывает выражение, которое может быть использовано для формирования атрибута periodClause элементов control, cell, row, column xml-шаблона.
Для описания языка используются следующие соглашения и ограничения:
1. Служебные символы - символы, используемые при описании языка контролей:
<> - лексема (грамматическое понятие);
, - альтернатива (либо ..., либо ...);
[] - необязательный элемент языка (может отсутствовать);
2. Для того чтобы отличать символы языка описания контролей от служебных символов, первые будут выделяться жирным шрифтом и красным цветом ( [ ],).
3. <Число> - целое число или действительное число (дробная часть отделяется ".");
4. <Код> - натуральное число (номер раздела, строки, графы соответственно);
5. <3начение> - значение специфики (допустимое значение для соответствующей графы-специфики);
6. <Наименование функции> - наименование функции (допустимые наименования приведены в табл.16);
7. <Код периода> - значение кода из справочника s_time или s_mes в зависимости от того, какой из справочников используется в xml-шаблоне;
8. &NP - терминальный символ, обозначающий номер текущего периода, введенный на титульной странице формы;
9. Символ "*" при определении координаты элемента означает "для всех значений";
10. SUM - оператор с одним операндом. Одновременно обозначает групповую операцию и макроподстановку по строкам или графам. Данная операция является контекст зависимой и может интерпретироваться как
a. Для каждой из перечисленных в элементе строк выполняется сложение по перечисленным графам;
b. Для каждой из перечисленных в элементе граф выполняется сложение по перечисленным строкам;
c. Выполняется сложение всех ячеек на пересечении граф и строк.
Вариант интерпретации определяется вторым операндом выражения. Если есть второй операнд такой, что в обоих операндах одинаковый набор строк, то используется первый вариант. Если есть второй операнд такой, что в обоих операндах одинаковый набор граф, то используется второй вариант. Если второй операнд - скалярное выражение, то используется третий вариант;
11. Не допускается использования вложенного оператора SUM.
<Условие> = <Логическое выражение> <Логический предикат> <Логическое выражение> [<Логический предикат> <Логическое выражение>]
<Логический предикат> := AND, OR
<Логическое выражение> := <Условие на период>,
<Арифметическое выражение> <Логический оператор> <Арифметическое выражение>
[<Логический оператор><Арифметическое выражение>]
<Логический оператор> := |<|, |<=|, |=|, |>=|, |>|, |<>|
<Арифметическое выражение> := <Арифметическое выражение> <Add> <Слагаемое>
<Add> := +, -