Navigation:  Конфигурация комплекса > Документы > Конструктор первичных документов >

Заполнение реквизитами уровня документа

Previous pageReturn to chapter overviewNext page

Список реквизитов всех уровней всех типов документов хранится в справочнике «Реквизиты документов и их свойства» (файл R165.ADT – запускается из окна «Уровни документов» путем нажатия клавиши F7).

Для удобства редактирования реквизитов можно перейти в режим отображения документов в виде карточки (по клавише F2).

clip1069

 

Каждый реквизит имеет перечень свойств, которые влияют на вид и характер информации, определяющей значения этих реквизитов, взаимозависимость значений реквизитов при вводе или изменении одного из них и прочее.

Существуют следующие свойства реквизитов:

«Идентификатор реквизита» – латинская аббревиатура реквизита. Используется при описании свойств других реквизитов и при создании представлений документов.

«Тип реквизита» – выбирается из списка (если редактирование ведется в режиме карточки). Может принимать значения: реальное поле, вычисляемое поле, дополнительное (Memо) поле, выбираемое из справочника, выбираемое из массива. Реальное поле, дополнительное (Memo) поле, выбираемое из справочника и выбираемое из массива сохраняются в базе. Вычисляемое поле в базе не сохраняется, если не указана процедура записи в базу.

тип «реальное поле» – указывается для существующих полей (которые описаны в файле dt_field.adt в базе DOCS).

тип «дополнительное (Memo) поле» – указывается для полей, которые ранее не были описаны в dt_field.adt. Для таких полей следует указывать маску ввода. Кроме того, если имя реквизита указано как дополнительное (Memo) поле, а имя реквизита совпадает с именем поля, которое есть в базе данных, то часть значения реквизита будет содержаться в поле базы, с которым совпало имя, а оставшаяся часть будет помещена в Memo– поле. В результате, такие поля могут быть отсортированы по той части значения, которая уместилась в реальной части.

тип «выбираемое из справочника» – устанавливается для полей, значения которых могут быть выбраны из справочника. В случае установки этого типа должны быть также установлены значения полей «Имя справочника» и «Поле справочника (имя массива)».

тип «выбираемое из массива» – устанавливается, если значение поля принимает какие-то фиксированные значения. Все используемые массивы, должны содержаться в справочнике R201 – Описания массивов.

тип «вычисляемое поле» – устанавливается, если значение этого поля не следует сохранять в базе.

тип «ссылка» указывается для реквизитов, чьи описания находятся в другом документе, а сами реквизиты объявлены там как общие. Такие реквизиты добавляются в другие документы из списка общих реквизитов, который вызывается по сочетанию клавиш CTRL+F6. После выбора общих реквизитов, в свойстве реквизитов «Выражение чтения из базы» будет находиться ссылка в формате KindDoc+Номер уровня на документ, в котором находится полное описание реквизита. Изменения описания общего реквизита приведет к тому, что этот реквизит во всех документах, где есть на него ссылка, будет рассчитываться по-новому (одно и то же описание используется во многих документах).

«Наименование» – название реквизита, которое будет фигурировать на экранной форме документа, если оно не переопределено в представлении.

«Выражение чтения из базы» – выражение, преобразующее значение реквизита перед его высветкой на экранной форме. Для вычисляемых полей, значение, которое будет в них выводиться, должно быть описано в данном свойстве.

«Выражение для расчета» – подпрограмма, по которой производится перерасчет значения реквизита, после изменения другого реквизита, у которого данный перечислен в свойстве «Перечень зависимых реквизитов». При написании подпрограмм можно использовать предопределенные переменные, которые служат для определения различных вариантов отработки взаимозависимостей реквизитов:

INFLUENSE – Имя рассчитываемого реквизита

BASEFLDNAME – Имя базового (предыдущего) реквизита

INPUTFLDNAME – Имя исходного реквизита

VALUE – Значение базового реквизита

OLDVALUE – Предыдущее значение базового реквизита

FLADD – Флаг добавления новой записи (в противовес отработке при изменении реквизитов у старой записи)

FLDEF – Флаг режима установки умалчиваемого значения (устанавливается на время прописывания умалчиваемых значений при добавлении)

«Выражение для записи в базу» – выражение, преобразующее введенное значение реквизита к тому виду, в котором он хранится в базе данных.

«Умалчиваемое значение (выражение)» – константа или вычисляемое выражение, используемое в качестве исходного значения реквизита при добавлении нового документа.

«Маска ввода» – устанавливает формат значений, которые могут быть присвоены реквизиту. В принципе маска редактирования реквизита документа описывается в формате Delphi (см. описание свойства EDITMASK):

>        Если символ > встретился в маске, все последующие символы переводятся в верхний регистр (заглавные буквы) до конца маски или до появления символа < .

<        Если символ < встретился в маске, все последующие символы переводятся в нижний регистр (строчные буквы) до конца маски или до появления символа > .

<>        Если такая пара встретится в маске, то для последующего ввода отменяется проверка на регистр вводимых символов, и данные запоминаются в том регистре, в каком были введены.

\        Символ, следующий за \, становится обязательным в данной позиции.

L        (заглавная латинская) требует в данной позиции только алфавитный символ: A-Z, a-z, А-Я, а-я.

l        (строчная латинская л) позволяет ввод только алфавитных символов в данной позиции, но не требует, чтобы символ непременно был введен.

A        (заглавная латинская) требует в данной позиции только алфавитный или числовой символ: A-Z, a-z, 0-9, А-Я, а-я.

a        (строчная латинская) позволяет ввод только алфавитных символов или цифр в данной позиции, но не требует, чтобы символ (цифра) непременно были введены.

C        (заглавная латинская) требует ввода произвольного символа в данной позиции.

c        (строчная латинская) позволяет ввести в данной позиции произвольный символ, но не требует, чтобы символ непременно был введен.

0        требует ввода только цифр в данной позиции.

9        позволяет ввести в данной позиции только цифры, но требует их непременного ввода.

#        позволяет ввести цифру, плюс или минус в данной позиции, но не требует их непременного ввода.

:        используется для разделения часов, минут, секунд при вводе времени. (На самом деле берется настройка разделителя из Панели управления.)

/        используется для разделения месяцев, дней и лет при вводе дат. (На самом деле берется одноименная настройка из Панели управления.)

;        используется для отделения 3-х полей маски.

_        автоматически вставляет в текст пробелы. Когда пользователь вводит символы, курсор проскакивает символы _ .

Исключения из формата EditMask:

-        десятичная точка в маске для числовых полей указывается запятой или точкой, например, 9999,99

-        второе и третье поля маски можно не указывать, в этом случае они принимаются за ';1; '

-        при описании числовых реквизитов третье поле маски отвечает за отображение нуля. Для отображения вместо 0 пустой строки третье поле маски *: 999.99;;* означает заменять 0 пустой строкой

-        при описании числовых реквизитов, хранящихся в символьных полях в начале маски следует указывать символ ! , например, !9999,99

-        при описании числовых реквизитов, которые могут быть отрицательными, следует использовать вместо девятки 9 шаблон # в позиции возможного ввода минуса, например, ##9.99;;* означает возможен ввод отрицательных чисел, вместо 0 – пустое значение

-        при описании символьных реквизитов может быть использована специальная маска, определяющая количество символов на экране и максимальное количество символов, например, (c|10|50) – реквизит занимает на экране 10 символов с максимальным вводом 50-ти символов; (c|10) – реквизит занимает на экране 10 символов с максимальным вводом 10-ти символов.

-        при описании «датных» реквизитов, хранящихся в символьных или Memo-полях, маска ##/##/## или ##/##/#### (на случай, если не хватает реальных полей типа «Дата»)

-        при описании логических реквизитов маска (B) – если в описании реквизита «Поле справочника (имя массива)» ArYesNo: (Да, Нет). При описании логических реквизитов, хранящихся в символьных или Memo-полях наряду с маской (B) может быть использована маска (L). По умолчанию используется массив ArPlus («+»,« »), вид внутреннего хранения зависит от массива, для ArPlus или ArYesNo информация хранится в символьном виде

-        может быть использована специальная маска, в которой доступны возможности повтора символов в формате (повторяемые символы|число повторов): например, (9|3) → 999, (9|3),(9|2) → 999,99

-         при описании Memo-реквизитов, занимающих на экране несколько строк, используется формат (повторяемые символы|число повторов|кол-во строк в TMemo-элементе|кол-во символов на одной строке). Кол-во строк в TMemo-элементе должно быть обязательно указано или заменено |, даже если строка одна, то есть количество разделителей | должно быть не меньше 2-х! Любые разделы в спец маске могут быть пропущены, при отсутствии любого начального раздела он должен быть заменен разделителем | , например, (||5) – 5 строк , кол-во символов в строке – умалчиваемое. Пример 2: (c|45|5|10) максимальное кол-во символов 45, 5 строк по 10 символов в строке. Если дополнительное (Memo) поле должно иметь две строки шириной по 60 символов, то маска ввода должна выглядеть как (c|120|2|60).

- в конце маски может быть указан постфикс:

~N~ - запрет разделения на триады

~T~ - разделение на триады

~W~ - полный доступ к реквизиту

~R~ - только чтение

Для описания связанных с шаблонами Word документов введены еще два типа реквизитов, принадлежность к которым определяется характерной маской. Если задать маску ввода как (L), то поле будет логическим, и содержать либо знак «+», либо пробел. Если маску поля установить равную [P], то в шаблоне Word такое поле будет иметь кнопку, нажатие на которую вызовет выполнение программы, записанной в пост блоке реквизита.

«Имя справочника» – свойство указывается в случае, если выбор значений реквизита производится из какого-либо справочника, и содержит имя этого справочника. Если значение поля выбирается из массива, то содержит значение «Массив».

«Поле справочника (имя массива)» – свойство связано с предыдущим и указывает, значение какого поля справочника становится значением реквизита. Если тип поля установлен как «выбираемый из массива», то содержит имя массива.

«Номер отображения справочника» – в случае выбора значения реквизита из справочника, это свойство может указывать номер отображения на высветку справочника.

«Фильтр связи справочников» – определяет, какой фильтр поставить на связанный справочник.

«Поля связанного справочника» – определяет, какое поле выбрать из справочника, указанного в реквизите «Фильтр связи справочников». При выборе из справочника, в таблице будут представлены только те поля этого справочника, которые перечислены в данном поле. Если у какого-либо поля есть связанный справочник, то перечисление этого поля в поле «Поля связанного справочника» приведет к отображению всех связанных полей связанного справочника.

«Номер или имя индекса связи справочника» – определяет, какой установить индекс связи из справочника, указанного в реквизите «Фильтр связи справочников».

«Изменяемый при выборе из справочника реквизит» – идентификатор реквизита, которому присваивается значение поля справочника, указанного в свойстве «Поле справочника» после выбора из справочника.

«Пре-блок» – выражение, выполняемое перед редактированием реквизита, либо условие, от выполнения которого зависит возможность редактирования реквизита.

«Пост-блок» – выражение, выполняемое после редактирования реквизита, либо условие, от выполнения которого зависит возможность присвоения реквизиту введенного значения. В связанных с Word документах данное поле может содержать подпрограмму, которая будет выполняться при нажатии кнопки около текста поля.

«Перечень зависимых реквизитов» – перечень реквизитов, чьи значения пересчитываются после изменения данного реквизита. Причем надо иметь в виду, что по умолчанию пересчет этих реквизитов вызывает отработку их зависимых реквизитов (указанных в одноименном перечне для этих реквизитов). Отработку этих вложенных зависимостей можно отменить с помощью спецсимволов:

!        (воскл. знак) в начале списка зависимостей отменяет выполнение вложенных зависимостей для всех реквизитов

+        (плюс) перед реквизитом – включает его вложенные зависимости

–        (минус) перед реквизитом – отключает его вложенные зависимости

«Суммирование на другой этаж» – содержит номер вышестоящего этажа, на который будет перенесена сумма, рассчитанная на текущем этаже.

«Отслеживание изменений по этажам» – содержит номер нижестоящего этажа, на котором будут сделаны изменения, после того, как будет произведено изменение реквизита на текущем этаже.

«Специальное поле» – содержит служебную информацию. Изменения в данное поле следует вносить только разработчикам комплекса. Например, в документе значение NSIT - означает отсутствие регистрации изменения данного поля, значение SPACE - означает изменение значение данного реквизита по клавише ПРОБЕЛ

«Тип» – С помощью данного поля можно задать тип компонента для ввода-вывода реквизита в представлении (окно ввода с кнопкой, выпадающий список и т.п.), а в следующем реквизите «Событие» переопределить стандартные события этого выбранного компонента. Возможные варианты компонентов: TLabel, TButton, TRadioButton, TEdit, TNewRxDbGrid, TSpeedButtonM, TRxDbComboEditDU, TRxComboEditDU, TAdsExtendedDataSet, TDBEdit, TDbText, TComboEdit, TdBComboBox, TBevel, TPanel, TMemo, TMaskEdit, TNewDbMemo, TNewDbComboBox.

«Событие» – Данное поле позволяет переопределить событие для компонента, выбранного в поле «Тип». Например, OnButtonClick=ChoiceDogv. Также, для того же компонента можно задать свойства, например DirectInput=false.

«Пор. №» – содержит порядковый номер реквизита, при отображении справочника реквизитов документов в виде таблицы, если требуется упорядочить записи. Используется для удобства редактирования и создания реквизитов документа.

«Общий» – установка этого свойства добавит реквизит в список общих реквизитов (добавляемых по CTRL+F6 как реквизиты типа «Ссылка»).

Добавление нового реквизита производится нажатием клавиши F6.

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