Параметры класса

ПараметрСинтаксис, ПримерОписание
Оформление таблицы
Заголовок таблицы

GenCaption

GenCaption="TEXT String";

Parameter GenCaption = "Заголовок страницы";

Заголовок страницы. Если навести на него курсор, покажется всплывающая подсказка о странице в целом.
Предварительные действия

GenUserHead

GenUserHead="CSP Code";

Parameter GenUserHead = "<script language=CACHE runat=server>d ##class(it.AppUser).WhereModify(User,%request)</script>";

Вставить текст в тег <Head>. Например, для изменения условия Where, если нужны ограничения доступа пользователя к строкам таблицы.
Подсказка в заголовке окна

GenTitle

GenTitle="TEXT String";

Parameter GenTitle = "Application Page Title";

Вставить текст в тег <Title>. Например, заголовке окна будет выведен указанный текст.
Кнопки

GenButtonsN, где N - пусто, или 1-999

GenButtons = "&Button1:UserPicture,COS Code|Next..." или

GenButton1 = "&Button1:UserPicture,COS Code1|Next..." или

GenButton2 = "&Button1:UserPicture,COS Code2|Next..." и т.д

Parameter GenButtons = "&Банк-Клиент,d ##class(zc.Bank).SendToBank(User)|&Перечисления,&js<window.location.href='ZcReport.csp?REPORT=BANK';>";

Вызов метода текущего класса SendToBank(User)

Parameter GenButtons = "&Банк-Клиент,d ..SendToBank(User)";

Дает возможность выполнить действия с использованием кнопок.
  • GenButtons = Заголовок, Код на COS или &js<...> | Второй заголовок, второй код на COS
  • Знак '&' перед буквой в заголовке кнопки обсеспечивает быстрый доступ к кнопке (Alt+подчеркнутая буква).
  • :UserPictire заменяет кнопку на указанную картинку.
  • Порядок полей

    GenOrder

    GenOrder = "Property1,Property2,...,PropertyN"

    Parameter GenOrder = "Code,Name,-NoGenFieldName";

    Порядок полей в таблице. Поля, начинающиеся на "-", не генерируются. Неперечисленные поля генерируются в естественном порядке. Вычисляемые поля генерируются только если они явно указаны.
    Сводная таблица

    GenPivot

    GenPivot= "Property1,Property2,...,PropertyN:PropertySum1,...,PropertySumN"

    Parameter GenPivot= "Code,Name:Sum";

    Сводная таблица для указанных полей. До двоеточия - список полей. В перечисленных полях в заголовках колонок генерируются симолы "#". Это и есть вход в сводную таблицу по текущим условиям выборки. После двоеточия - список полей для суммирования. Если нет, то выдается только количество встреченных строк.
    Доп. заголовки

    GenColGroupN, где N пусто или 1-5

    GenColGroup="StartProperty,columns,Caption#next section"

    Цикл идет от 5 до 1, затем пусто. Верхнее объедиение колонок

    Parameter GenColGroup5="Reason,10,Вводимые параметры#Summa,3,Расчетные параметры";

    Только цвет без знака решетка. Потому что разделитель в ColGroup. Теги можно писать и в третьей части секции.

    Parameter GenColGroup2 = "CritCode,2 bgcolor=FF0000,<h1>Проект</h1>#CritValueExact,4 bgcolor=00FFFF,<h2>Точные значения</h2>#CritValueDiapLow,5 bgcolor=00FF00,<h3>Диапазонные значения</h3>";

    Нижнее

    Parameter GenColGroup="Reason,7,Больничный#Summa,3,Расчет";

    Группы полей. Заголовок второго уровня, объединяющий одно или несколько полей в таблице. Удобно применять для зрительного разделения большого количества полей.
    Строк в таблице

    GenTableCount

    GenTableCount=Integer

    Количество строк в таблице. По умолчанию 12
    Таблица или Форма

    GenIsTable

    GenIsTable=1; (default)

    Parameter GenIsTable = 0;

    Указанный параметр заставляет генерировать не таблицу, а бланк (или "ленту").
    Таблица

    GenTable

    GenTable="<table>";

    Parameter GenTable="<table border=1 style='border-collapse=collapse;'>";

    Указанный текст заменяет тег таблицы.
    Оформление поля
    Отображение поля

    GenProperty

    GenProperty@name= "NameOfPropertyAlterTable"

    Parameter GenPropertyEmplDep = "Empl->Human->Name";

    Заменяет Id поля-ссылки, на поле из другой связанной таблицы. В приведенном примере сотрудник в таблице EmplDep будет отображаться, выбираться для поиска и записи по полю Name из таблицы Human. Кроме того этот тег обеспечит тип и размеры поля Empl по типу и размерам поля Human.
    Класс Human имеет поле Name;
    Поле Human класса Empl ссылается на класс Human;
    Поле Empl класса EmplDep ссылается на класс Empl;
    Выбор поля

    GenSelector

    GenSelector="SQL string"

    Parameter GenSelector = "Select Empl->Human->Name,Empl->Tabno from zc.EmplDep";

    При выборе из справочника отображается только поле, указанное в GenProperty@name. Если нужно отобразить что-либо другое, то можно добавить любое SQL предложение.
    Размер поля

    GenSize

    GenSize@Name="Integer"

    Отображаемый размер поля. Длина поля в класе может быть описана в параметре MAXLEN. Вводится в случае, если физический размер поля велик, а отображать желательно разумное окно. Если MAXLEN менее 90 символов, то отображаемая длина берется из MAXLEN. Если поле должно быть более 90 символов (и более чем в одну строку), то используем textarea - там параметры GenPropSize и GenPropRow.
    Если длина поля в классе не описана, то длина поля зависит от типа данных
    %String - Если в базе данных 50 символов (стандарт Cache), а отображаемая длина - 20.
    %Date - отображаемая длина - 8.
    %Time - отображаемая длина - 5.
    %Integer - отображаемая длина - 10.
    Если поле в класе ссылка, и нет параметра GenSize, то размер берется из описания класса на который ссылается поле.
    Текст для ячейки

    GenTd

    GenTd@Name="Any html code"

    Parameter GenTdEmpl="rowspan=2";

    Parameter GenTdHuman="title='Человек:#(##Class(zc.Human).TitleAboutHumanId(query.GetData(1)))#'";

    Добавление параметров для тега td для указанного поля. Обеспечивает разные способы отображения, добавления строк, картинок и проч.

    во втором примере изменяет стандартную всплывающую подсказку на пользовательскую.

    Текст до поля

    GenTegBefore

    GenTegBefore@Name="CSP code"

    Parameter GenTegBeforeSumma= "<CSP:IF CONDITION=('+IsKadry)>";

    Добавление CSP кода перед тегом <INPUT> для текущего поля. В приведенном примере поле сумма не отображается, если пользователь имеет признак Кадры
    Текст поля

    GenTegInput

    GenTegInput@Name="CSP code"

    Parameter GenTegInputSum1 = "#($s(##class(zc.ZC).ActionDenied(User):"" readonly"",1:""""))#";

    Parameter GenTegInputSum2 = "style=""text-align: right;""";

    Добавление CSP кода в тег <INPUT> для текущего поля

    в 1 примере ставится признак только чтение при запрете корректировки.

    в 2 примере ставится Отображение значения справа.

    Текст после поля

    GenTegAfter

    GenTegAfter@Name="CSP code"

    Parameter GenTegAfterSumma= "</CSP:IF>";

    Добавление CSP кода после тега <INPUT> для текущего поля
    Только чтение

    GenReadOnly:Condition

    GenReadOnly="Property1,Property2,...,PropertyN"

    Parameter GenReadOnly = "CalculatedSum,CalculatedQty";

    Перечисленные поля недоступны для редактирования.
    Подсуммировка

    GenTotal:Condition

    GenTotal=Property1,Property2,...,PropertyN

    Parameter GenTotal = "Qty,Summa";

    Подсуммировка для перечисленных полей из выбранных каким-то образом (по одной записи или по условию) строк.
    Тип пароля

    GenTypePassword

    GenTypePassword=Property1,Property2,...,PropertyN

    Parameter GenTypePassword = "UserPassword";

    Указанные поля редактируются как поле пароля. (введенные символы не отображаются)
    Длина поля

    GenPropSize

    Integer

    Отображаемый размер textarea
    Высота поля

    GenPropRow

    Integer

    Количство строк для поля textarea
    Чтение и запись
    После чтения

    GenAfterRead@name

    GenAfterRead@name="COS Code"

    Parameter GenAfterReadSumma="s Summa=$tr(Summa,""."",""-"")";

    Изменение значений после чтения данных из БД.
    До записи

    GenBeforeSave@name

    GenBeforeSave@name="COS Code"

    Parameter GenBeforeSaveSumma="s Summa=$tr(Summa,""-"",""."")";

    Изменение значений перед записью в БД.
    Журналирование

    GenSpy

    GenSpy="^GlobalName"

    Parameter GenSpy="^app.SpyLog";

    Запись действий по редактированию и удалению записей производится по умолчанию в ^CacheTempGen. Этот параметр позволяет изменить имя Глобала.