Карточки и списки

Модуль позволяет зарегистрировать в системе произвольное количество карточек и выводов результатов поиска в виде именованных шаблонов.

Настройка шаблонов проводится построением 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 используется для указывания групп данных. Группы таких данных могут быть именованными или по номеру поля описания. Именованные данные могут быть следующие:

Поле 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>

Дополнительные сведения о формате RTF