Модуль позволяет зарегистрировать в системе произвольное количество карточек и выводов результатов поиска в виде именованных шаблонов.
Настройка шаблонов проводится построением XML-документа по определенным правилам. Для регистрации нового шаблона необходимо зайти в меню «Картки» и выбрать «Добавити картку» или «Добавити перегляд». При этом система запросит название нового шаблона. Предпочтительно называть шаблоны узнаваемым для библиотекаря образом. Далее система создаст заготовку шаблона в следующем виде.
<?xml version="1.0" encoding="windows-1251" ?>
<document>
<card width="125" height="85" margl="6" margr="6" margt="6" margb="12" fs="12" f0="Times New Roman">
</card>
</document>
Как видно шаблон начинается с тега <document>
. Следующий тег <card>
и именно с него начинается настройка шаблона. Сразу стоит сказать, что для шаблона результатов поиска никаких настроек для <card>
можно не проводить. Так как результат сборки документа по шаблону не является отдельным документов, а всего лишь часть (строка в документе).
Тег <card>
имеет следующие настройки:
width
- ширина (мм), height
- высота (мм), margl
- левое поле (мм), margr
- правое поле (мм), margt
- верхнее поле (мм), margb
- нижнее поле (мм), fs
- размер шрифта «по-умолчанию», f0
- нумерованный шрифт (может быть f1,f2…fn), landscape
- портретный или альбомный лист (0/1).
Нумерованный шрифт в дальнейшем можно использовать внутри добавочных данных для полей шаблона.
Не забывайте соблюдать целостность XML-документа. Открытый тег должен быть закрыт. Открытая кавычка должна быть закрыта такой же кавычкой.
Далее внутри тега <card>
можно начинать выстраивать элементы шаблона, которые будут формировать результирующий документ. В зависимости от потребностей можно настроить шаблон с использованием таблиц или с помощью отступов, выступов, табуляций. Каждый из методов имеет свои преимущества и недостатки. Но для шаблонов для вывода результата поиска предпочтительно использовать второй вариант.
Для настройки шаблонов предусмотрены группирующие теги: <cell>
, <source>
; <parnt>
, <child>
(теги уровня документа3547).
Тег <cell>
предназначен для формирования шаблона с помощью таблиц. Он имеет единственный параметр настройки width
- ширина колонки(мм).Пример
<card …>
<cell width="20">
…
</cell>
<cell width="92">
…
</cell>
</card>
Тег <source>
предназначен для получения данных из источника аналитического издания. Внутри тега <source>
есть возможность обращаться к данным с помощью тега <parnt>
. Пример
<source>
<parnt>
...
<parnt>
...
</parnt>
...
</parnt>
</source>
Тег <parnt>
предназначен для отображения данных из обобщающих описаний (описаний высшего уровня). Так для тома многотомника может браться информация из верхнего уровня. Тег <parnt>
может быть вложенным друг в друга. Вложенность позволяет «подниматься» к более высокому уровню. Пример
<parnt>
...
<parnt>
...
</parnt>
...
</parnt>
Тег <child>
предназначен для получения данных из документов ниже уровнем. Подход к организации структуры такой же, как и у тега <parnt>
.
Теги <parnt>
, <source>
, <child>
могут иметь поля d
, b
, a
. В случае использования поля d
можно устанавливать ограничения на связанные документы по маркеру. Ограничения начинается с третьей позиции маркера документа. Так если указано поле d
= "m3" то будут выбраны только описания монографического уровня физические единицы. Пробел в данных ограничения означает любой символ: d
= " 2" означает все документы второго уровня. Поля b
, a
описаны ниже.
Для формирования данных из полей описания служит тег <f>
. Этот тег может иметь такие поля: n
, d
, b
, a
и multi
.
Поля n
и d
используются для означивания данных, получаемых из описания. Поле n
используется для указывания групп данных. Группы таких данных могут быть именованными или по номеру поля описания. Именованные данные могут быть следующие:
copy
- первый экземпляр (899);copies
- все экзепляры (899);author
- авторы (700,701,702,710,711,712,720,721,722);head
- заголовок (200);edit
- сведения об издании (205);place
- публикация и распространение (210);volume
- количественная характеристика (215);serie
- серия (225);isn010
- ISBN;isn011
- ISSN;udk
- индекс УДК;bbk
- индекс ББК;predmet
- рубрикаторы (615 или поля, указанные в d
);persones
- персоналия (600);waybill
- номер, год накладной или путевки (подполя из d
: a - год, b - номер);invcnt
- количество экземпляров;backinv
- перечень инвентарных номеров, распределенных по сиглам хранения;invsdist
- все экземпляры из всех документов ниже уровнем.d
используется для уточнения списка требуемых подполей и порядка их вывода. Подполя указываются в виде соответствующих букв и цифр. Возможна операция вывода подполя №2 если нет данных в подполе №1 (используется символ |).
Примердля поляauthor
используется набор подполей ag|bc (если нет подполя g (полное имя отчество) выводится подполе b (инициалы)
для поляhead
используется набор подполей vabdhiefg
для поляedit
подполя adfgb
для поляplace
подполя acdegh
для поляvolume
подполя acde
для поляserie
подполя adefhixzv
для поляisn010
,isn011
подполя abd9
для поляpersones
подполя adbgcf
для поляwaybill
подполя ab
Поля b
и a
используются для добавочных данных перед и после поля соответственно. При этом могут быть использованы любые данные и команды, вставляемые внутрь RTF-документа. Как правило это команды форматирования текста, выбор параметров шрифта и другие.
Все представленные примеры несовершенны и требуют доработки в сотрудничестве с библиографом.
Разделительные знаки устанавливаются в настройке полей модуля схем ресурсов.
Пример основной карточки с табличным форматированием (вариант изображения)
<?xml version="1.0" encoding="windows-1251"?> <document> <card width="122" height="85" margl="6" margr="6" margt="6" margb="13" fs="12" f0="Courier" landscape="1"> <f b="\f0\fs12" /> <f n="copy" d="h" a="\par" /> <cell width="20"> <f n="463" d="a" /> <f n="copy" d="j" a="\par" /> <f n="copy" d="i" /> </cell> <cell width="92"> <parnt> <parnt> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> <f b="\par" /> </parnt> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> <f b="\par" /> </parnt> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="207" d="a" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="230" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <source> <f b=" //" /> <parnt a=" -"> <parnt a=" -"> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> </parnt> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." />d <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> </parnt> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> </source> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f b=" - \fs8" n="300" d="a" /> <f b=" - \fs8" n="320" d="a" /> <f b="\fs12" /> <f n="isn010" b=" - " a="." /> <child d=" 2"> <f n="head" b="\par\fs6" a=". - \fs12" /> <child d=" 3"> <f n="head" b="\par\fi9" a="." /> <f n="edit" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="isn010" b="- " a="." /> </child> </child> <child d=" 3"> <f n="head" b="\par\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="isn010" b="- " a="." /> </child> </cell> <f b="\par\pard\qr УДК " n="udk" /> <f b="\par\pard\ql\fs8 --" n="606" /> <f b="\par\pard\ql\fs8 --" n="predmet" /> </card> </document>
Пример основной карточки без таблицы (вариант изображения)
<?xml version="1.0" encoding="windows-1251"?> <document> <card width="122" height="70" margl="6" margr="6" margt="6" margb="8" fs="12" f0="Courier" landscape="1"> <f b="\f0\fs12\b" /> <f n="copy" d="h" a="\par" /> <f n="copy" d="i" /> <f b="\b0" /> <source> <f n="copy" d="h" a="\par" /> <f n="copy" d="i" /> <f b="\b0" /> </source> <f b="\tx1000" /> <parnt> <parnt> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> <f b="\par" /> </parnt> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> <f b="\par" /> </parnt> <f n="author" b="\pard\tx800\tab\b" a="\b0\par" /> <f n="head" b="\pard\tx1100\tab" a="." /> <f n="edit" b="- " a="." /> <f n="207" d="a" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="230" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f b=": [" n="327" a="]" d="a" /> <f n="463" b="//\~" a="." d="t" /> <source> <f b="\fs11" /> <f b=" //" /> <parnt a=" -"> <parnt a=" -"> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> </parnt> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> </parnt> <f n="author" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="serie" b=" - " a="." /> <f n="isn010" b="- " a="." /> <f b="\fs12" /> </source> <f n="volume" b="- " a="." /> <f b="- " n="300" a="." d="a" /> <f b="- " n="320" a="." d="a" /> <f n="serie" b="\~- " a="" /> <f n="isn010" b="- " a="." /> <child d=" 2"> <f n="head" b="\par\fs6" a=". - \fs12" /> <child d=" 3"> <f n="head" b="\par\fi9" a="." /> <f n="edit" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="isn010" b="- " a="." /> </child> </child> <child d=" 3"> <f n="head" b="\par\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="isn010" b="- " a="." /> </child> <f b="\par\pard\qr УДК " n="udk" /> <f b="\par\pard\qr ББК " n="bbk" /> <f b="\par\pard\ql " n="606" /> <f b="\par\pard\ql --" n="predmet" /> <f n="backinv" b="\par\pard\ql" /> </card> </document>
Пример формуляра (вариант изображения)
<?xml version="1.0" encoding="windows-1251" ?> <document> <card width="80" height="120" margl="6" margr="6" margt="6" margb="12" fs="12" f0="Courier"> <f b="\fi0\f0\fs12\qc\b" /> <f n="copies" d="p" multi="1"/> <f b="\par\pard\fi0\b0\ql" /> <f n="copy" d="j" multi="1" /> <f n="copies" d="h" b="\par" multi="1" /> <f n="copies" d="i" b="\par" multi="1" /> <f b="\tab\tx1000"/> <parnt> <parnt> <f n="author" b="\f0\fs12" a="\par" /> <f n="200" d="a" a="." /> </parnt> <f n="author" b="\f0\fs12" a="\par" /> <f n="200" d="a" a="." /> </parnt> <f b="\f0\fs12" /> <f n="author" a=". -" /> <f n="200" d="a" b="- " a="." /> <f n="200" d="v" b="- " a="." /> <f n="200" d="h" b="- " a="." /> <f n="200" d="i" b="- " a="." /> <f b="\par\pard\fi0" /> <f n="210" d="d"/> <f n="copies" d="d" b="\tab\tx2000" multi="1"/> </card> </document>
<?xml version="1.0" encoding="windows-1251" ?> <document> <card width="122" height="70" margl="5" margr="5" margt="4" margb="8" fs="12" f0="Courier" landscape="1"> <f n="copy" d="h" a="\par" /> <cell width="20"> <f b="\f0\fs12" /> <f n="463" d="a" /> <f n="copy" d="j" a="\par" /> <f n="copy" d="i" /> </cell> <cell width="92"> <parnt> <parnt> <f n="author" b="\f0\fs12" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> <f b="\par" /> </parnt> <f n="author" b="\f0\fs12" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> <f b="\par" /> </parnt> <f n="author" b="\f0\fs12" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="207" d="a" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="230" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <source> <f b="\par//" /> <parnt a=" -"> <parnt a=" -"> <f n="author" b="\f0\fs12" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> </parnt> <f n="author" b="\f0\fs12" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> </parnt> <f n="author" b="\f0\fs12" a="\par" /> <f n="head" b="\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="229" d="a" b="- " a="." /> <f n="serie" b="- " a="." /> <f n="isn010" b="- " a="." /> </source> <f n="volume" b="- " a="." /> <f n="serie" b="- " a="." /> <f b=" - \fs8" n="300" d="a" /> <f b=" - \fs8" n="320" d="a" /> <f b="\fs12" /> <f n="isn010" b=" - " a="." /> <child d=' 2'> <f n="head" b="\par\fs6" a=". -" /> <child d=' 3'> <f n="head" b="\par\fi9" a="." /> <f n="edit" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="isn010" b="- " a="." /> </child> </child> <child d=' 3'> <f n="head" b="\par\fi6" a="." /> <f n="edit" b="- " a="." /> <f n="place" b="- " a="." /> <f n="volume" b="- " a="." /> <f n="isn010" b="- " a="." /> </child> </cell> <f b="\par\pard\ql\tx4000\fs12 УДК \b" a="\b0" n="udk" multi="1" /> </card> </document>
<?xml version="1.0" encoding="windows-1251" ?> <document> <card width="125" height="85" margl="6" margr="6" margt="6" margb="12" fs="12" f0="Courier" landscape="1"> <f n="backinv" /> </card> </document>