Формы редактирования

Формы редактирования предназначены для описания экрана редактирования документа. Форма содержит описание областей ввода и текстовой информации выводимой на экран. Область ввода задается выражением вида

&Htn.... . Здесь & - знак обозначающий что далее идет поле ввода Htn

- имя переменной в которую производится ввод .... - точки определяют размер области ввода ее длина отсчитывается со знака & и до последней точки. Знак & обозначает что вводится строка, допустим также $ - вводится сумма. Описание областей ввода возможно в секциях SCREEN и LIST. В секции SCREEN все будет выведено в точности как описано на экране а в секции LIST описывается вывод (не ввод) списка строк документа. Кроме этого возможно описание многострочной области редактирования (только в области SCREEN), можно задать значение переменной по умолчанию в секции DEFAULT или сделать текстовую замену в секции ALIAS. Во всех секциях кроме ALIAS можно использовать пользовательские функции.

Пример:

* Счет - фактура && Коментарий к форме

.SCREEN && вывод заголовка

#if UKR && заголовок на украинском языке

РАХУНОК-ФАКТУРА N &HTN..... вiд &Hdat... Дiйсний &HD. дн. Тип прайсу $1

Платник: &HPost&HTpost.................................................

Банк платника: &HBnk........................................

Розрахунк.рах.: &HRas_sch............ МФО: &HMfo......... Валюта:&HVal

Пiдрозд.: &HPodr&HTPodr............. МВО: &HMol.&HTMol................

#else && заголовок на русском языке

СЧЕТ-ФАКТУРА N &HTN...... от &HDAT... Действит. &HD. дн. Тип прайса $1

Плательщик: &HPost&HTPost..............................................

Банк плательщика: &HBnk........................................

Расчетный счет: &HRas_sch........... МФО: &HMfo......... Валюта:&HVal

Подразд.: &HPodr&HTPodr............. МОЛ: &HMol.&HTMol................

#endif

.LIST 1 13 && при первом описании секции LIST указываем число строк в этой

* секции (здесь 12). Количество строк может задаваться функцией.

---T-------------------------T------T---------T------------T-------------¬

#if UKR

¦NN¦ Найменування ¦Од.вим¦ Кiльк. ¦ Вiдп. цiна ¦ Сума ¦

#else

¦NN¦ Наименование ¦Ед.изм¦ Кол-во ¦ Отп. цена ¦ Сумма ¦

#endif

+--+-------------------------+------+---------+------------+-------------+

¦&N¦&Rnmk....................¦&REdi.¦^RKol....¦~ROCena.....¦$ROsum.......¦*

L--+-------------------------+------+---------+------------+--------------

* строка со '*' будет повторяться, все что идет до нее - шапка, после -

* завершающая строка.

.LIST 2 - теперь описываем номер экрана при использовании "->"

---T-------------------------T------T---------T------------T-------------¬

#if UKR

¦NN¦ Найменування ¦Од.вим¦ Кiльк. ¦Облiк. цiна ¦ Сума ¦

#else

¦NN¦ Наименование ¦Ед.изм¦ Кол-во ¦ Учет. цена ¦ Сумма ¦

#endif

+--+-------------------------+------+---------+------------+-------------+

¦&N¦&Rnmk....................¦&REdi.¦^RKol....¦~RUCena.....¦$RUsum.......¦*

L--+-------------------------+------+---------+------------+--------------

.SCREEN && выводим итог по документу

#if UKR

Пiдсумок : $HNSum..... ПДВ: &2.,... $HSNds...... З ПДВ: $HSum........

#else

И Т О Г О: $HNSum..... HДС: &2.,... $HSNds...... С НДС: $HSum........

#endif

.ALIAS && секция текстовой подстановки

$1=_Hpricet && 1 - будет заменено на _Нpricet

&2=_Hpnds && 2 - будет заменено на _Нpnds

.DEFAULT && секция описания умолчаний

htn = padr(NOMD('get',DocLabel,NOP),14) && переменной htn будет

* присвоено значение следующего номера

hdat = date()

hpost = 1

htpost = tFcl('TXT', __codplat, 1)

hpodr = 1

htpodr = tFcl('TXT', __codpodr, 1)

hmol = 1

htmol = tFcl('TXT', __codmol, 1)

Hpnds = 20.000

В секции DEFAULT условный оператор #if #else #endif использовать нельзя но можно использовать пользовательские функции

Пример описания многострочной области редактирования :

&Hmr...............

&Hmr...............

&Hmr............... для переменной _Hmr получим поле ввода из 3 - х строк и шириной 19 символов. Такое описание будет работать только в области SCREEN

Можно описать переменную в секции DEFAULT и присвоить ей значение не используя ее в областях SCREEN и LIST. Это дает возможность заполнять переменные документа не выводя их на экран. Описывать свои переменные в секциях SCREEN и LIST нельзя. В любом документе, имеющем секцию LIST, можно определить умолчание для первого поля, в котором будет стоять курсор (переменная Obj).