Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Книговыдача :  ИРБИС Irbis
 
Пополнение статформы
Пользователь: Алексей Артемьев (IP-адрес скрыт)
Дата: 05, June, 2014 14:21

Ситуация такая...

Мне как ответственному сотруднику отдела поручили написание и корректировку выходных форм. Допустим, надо в tstat добавить выборку по полю 621 по маске ##.# Но мне, как кодеру, привыкшему к с++ и делфи низкоуровневый язык ломает мозг... Чтение мануалов к редактору .pft форматов не помогло, хоть я и стал на глаз выделять из строчек знакомые операторы. К примеру я не нашёл в мануалах описания оператора &uf(), или команд rtf форматирования типа \clbrdrt, \brdrs, \brdrw30, \clbrdrl. На вики информации по этому тоже не нашёл. А формы писать и править надо...

Объясните на примере с полем 621 и маской, пожалуйста, как работать в этом редакторе.

Re: Пополнение статформы
Пользователь: Alio (IP-адрес скрыт)
Дата: 05, June, 2014 16:51

>Допустим, надо в tstat добавить выборку по полю 621 по маске ##.#
Что это значит?

Re: Пополнение статформы
Пользователь: Алексей Артемьев (IP-адрес скрыт)
Дата: 06, June, 2014 07:42

Alio написал(а):
-------------------------------------------------------
> >Допустим, надо в tstat добавить выборку по полю
> 621 по маске ##.#
> Что это значит?

В поле 621 находится код ББК, и по его первым трём символам надо сделать выборку. А маска означает, что перед третьим символом должна быть запятая. После начальных трёх символов - всё, что угодно.

Ну а tstat это одна из статистик в книговыдаче... Но это, наверное, вы и так знаете.



Редактировано 1 раз. Последний раз 06.06.2014 07:55 пользователем Алексей Артемьев.

Re: Пополнение статформы
Пользователь: Alio (IP-адрес скрыт)
Дата: 06, June, 2014 10:44

(v621.3/) - вот конструкция, которая берет первые 3 символа из каждого повторения 621 поля

Re: Пополнение статформы
Пользователь: Алексей Артемьев (IP-адрес скрыт)
Дата: 06, June, 2014 10:56

Alio написал(а):
-------------------------------------------------------
> (v621.3/) - вот конструкция, которая берет первые
> 3 символа из каждого повторения 621 поля

А как учесть точку перед третьим символом? И в какие файлы надо внести изменения, что бы по этой конструкции генерировалась форма, как в статистике спроса?

Есть функция &uf(=!<маска>!<значение>)', которая как раз сравнивает значение по маске, но на вики нет нормального примера, как и объяснения символов маскирования * и ?.

Я так понимаю, ? обозначает отдельный символ, а * любое количество символов. А можно там вместо ! использовать точку? Или ! и так обозначает любой знак препинания, типа запятой или двоеточия?



Редактировано 3 раз. Последний раз 06.06.2014 11:48 пользователем Алексей Артемьев.

Re: Пополнение статформы
Пользователь: Gena (IP-адрес скрыт)
Дата: 07, June, 2014 19:35

Вот пример проверки по маске для поля 621 и условия ##.#:

&uf('=!??.?!'v621)

тут в маске ??.? - это два любых символа точка и один любой символ

Re: Пополнение статформы
Пользователь: Gena (IP-адрес скрыт)
Дата: 07, June, 2014 19:56

Только в любом случае вы немного не понимаете сути выходных форм в Ирбисе.
В ирбисе есть:

1. Стат. формы - это таблица в Excel, которая имеет строго определенное количество столбцов и строк. Столбцы и строки определяются форматом на этапе проектирования стат. формы и никак не могут меняться в процессе заполнения. Это просто статистическое распределение в двумерном массиве. Работает это так: есть два справочника с терминами - это вертикаль и горизонталь, и два формата, которые работая на записи создают термины, аналогичные тем, что есть в этих справочниках. Далее, пересечение терминов вертикали и горизонтали определяют ячейку, в которой значение увеличивается на единицу. Например, распределение книговыдач по дням и местам хранения предполагает наличие справочника с 31 позицией дней и справочника с местами хранения, а так же двух форматов, которые будут работать оба по 40 полям записи читателя (это поле с описанием выданных книг), при этом один формат будет создавать термины места выдачи, а второй - дни.

2. Статистика - это отчет, в который выводится количество вхождений определенного термина в запись. Этот отчет формируется следующим образом: есть определенный формат, который отрабатывает на записи, создает строчку и записывает в массив, а далее выводится сортированный список этих строк с указанием, сколько каждой строки сформировано. Очень удобно для анализа терминов в каком-нибудь поле. Например, можно вывести все поля 621 во всех записях и увидеть, какие именно индексы сколько раз встречаются. Суть в том, что может выводится как поле, так и его часть, или вообще абстрактная константа, которая зависит от каких-то условий.

3. Печатные формы(табличные) - это самый большой и самый гибкий пласт выходных форм. Он предполагает создание выходных форм по массиву данных, которые могут иметь любое форматирование и оформление, а так же свои сортировки и суммарные итоги. В самом общем случае табличная форма строится из таких файлов:

[имя_таблицы].tbu - в этом файле описывается заголовочная часть файла (шрифты, отступы, размеры страницы...), шапка таблицы(заголовочная часть таблицы, которая может передаваться на все страницы большой таблицы). Иногда в этом же файле описываются вложенные таблицы. Но это отдельная история

[имя_таблицы].srw - в этом файле описываются сортировки, которые накладываются на записи. Сортировка это не только очередность записей в результирующей выходной форме, но и сам факт попадания записи в таблицу - если формат сортировки отработал на записи и не сформировал ничего - выдал пустую строку - то такая запись в таблицу не попадает. Так же в этом файле описываются заголовки сортировок, например, при выводе на печать читателей и сортировки их по категориям, можно выводить в заголовок название категорий. Выглядеть это будет соответственно - название категории, а под ней читатели, потом название следующей категории и читатели из этой категории. И так далее

[имя_таблицы].pft - в этом файле описывается формат вывод записи. В самом просто случае там можно вывести любое поле или написать формат для показа записи. Но чаще в табличных формах в этом файле описываются с помощью RTF-тегов строка таблицы с заполнением соответствующих полей.

4. Печатные формы(списочные) - это самый простой способ создания выходной формы - просто формат. Суть в том, что при вызове печатной формы списочной этот формат отработает на каждой записи и создаст какой-то текст. В выходной файл попадет весь этот текст, разделенный между собой парой переводов каретки.

Ну вот как-то так. Так что вы перед тем, как браться за переделку, выясните точно, что от вас хотят, подберите нужный вариант и начинайте копать принцип его создания

Re: Пополнение статформы
Пользователь: Алексей Артемьев (IP-адрес скрыт)
Дата: 09, June, 2014 08:01

Gena написал(а):
-------------------------------------------------------
> Только в любом случае вы немного не понимаете сути
> выходных форм в Ирбисе.
> В ирбисе есть:
>
> 1. Стат. формы - это таблица в Excel, которая
> имеет строго определенное количество столбцов и
> строк. Столбцы и строки определяются форматом на
> этапе проектирования стат. формы и никак не могут
> меняться в процессе заполнения. Это просто
> статистическое распределение в двумерном массиве.
> Работает это так: есть два справочника с терминами
> - это вертикаль и горизонталь, и два формата,
> которые работая на записи создают термины,
> аналогичные тем, что есть в этих справочниках.
> Далее, пересечение терминов вертикали и
> горизонтали определяют ячейку, в которой значение
> увеличивается на единицу. Например, распределение
> книговыдач по дням и местам хранения предполагает
> наличие справочника с 31 позицией дней и
> справочника с местами хранения, а так же двух
> форматов, которые будут работать оба по 40 полям
> записи читателя (это поле с описанием выданных
> книг), при этом один формат будет создавать
> термины места выдачи, а второй - дни.
>
> 2. Статистика - это отчет, в который выводится
> количество вхождений определенного термина в
> запись. Этот отчет формируется следующим образом:
> есть определенный формат, который отрабатывает на
> записи, создает строчку и записывает в массив, а
> далее выводится сортированный список этих строк с
> указанием, сколько каждой строки сформировано.
> Очень удобно для анализа терминов в каком-нибудь
> поле. Например, можно вывести все поля 621 во всех
> записях и увидеть, какие именно индексы сколько
> раз встречаются. Суть в том, что может выводится
> как поле, так и его часть, или вообще абстрактная
> константа, которая зависит от каких-то условий.
>
> 3. Печатные формы(табличные) - это самый большой и
> самый гибкий пласт выходных форм. Он предполагает
> создание выходных форм по массиву данных, которые
> могут иметь любое форматирование и оформление, а
> так же свои сортировки и суммарные итоги. В самом
> общем случае табличная форма строится из таких
> файлов:
>
> [имя_таблицы].tbu - в этом файле описывается
> заголовочная часть файла (шрифты, отступы, размеры
> страницы...), шапка таблицы(заголовочная часть
> таблицы, которая может передаваться на все
> страницы большой таблицы). Иногда в этом же файле
> описываются вложенные таблицы. Но это отдельная
> история
>
> [имя_таблицы].srw - в этом файле описываются
> сортировки, которые накладываются на записи.
> Сортировка это не только очередность записей в
> результирующей выходной форме, но и сам факт
> попадания записи в таблицу - если формат
> сортировки отработал на записи и не сформировал
> ничего - выдал пустую строку - то такая запись в
> таблицу не попадает. Так же в этом файле
> описываются заголовки сортировок, например, при
> выводе на печать читателей и сортировки их по
> категориям, можно выводить в заголовок название
> категорий. Выглядеть это будет соответственно -
> название категории, а под ней читатели, потом
> название следующей категории и читатели из этой
> категории. И так далее
>
> [имя_таблицы].pft - в этом файле описывается
> формат вывод записи. В самом просто случае там
> можно вывести любое поле или написать формат для
> показа записи. Но чаще в табличных формах в этом
> файле описываются с помощью RTF-тегов строка
> таблицы с заполнением соответствующих полей.
>
> 4. Печатные формы(списочные) - это самый простой
> способ создания выходной формы - просто формат.
> Суть в том, что при вызове печатной формы
> списочной этот формат отработает на каждой записи
> и создаст какой-то текст. В выходной файл попадет
> весь этот текст, разделенный между собой парой
> переводов каретки.
>
> Ну вот как-то так. Так что вы перед тем, как
> браться за переделку, выясните точно, что от вас
> хотят, подберите нужный вариант и начинайте копать
> принцип его создания

Спасибо за развёрнутое объяснение... Судя по нему мне нужна печатная форма. Значит мне надо редактировать .tbu, .srw и .pft, что, собственно, я и пытался делать... На основе печатной формы tstat.pft пытался сделать нужную переименованием и изменением пары строк, так как она выглядит как надо и всего-то надо подправить формулу и заголовок одного столбца. Буду копать дальше... По крайней мере формулу я правильно написал =/

UPD. А дальше что? о_О Моя печатная форма не отображается в списке доступных в АРМ Книговыдача...

UPD. Нашёл... Справочник stf.mnu, но он в каждой папке с базой фактически есть...

P.S. Хоть приложение для этого дела пиши =/ Кстати, отличная идея о_О Только бы мне полный список команд форматирования, с помощью которых формируются файлы форматов для таблиц, списков и rtf-документов.



Редактировано 6 раз. Последний раз 09.06.2014 08:29 пользователем Алексей Артемьев.

Re: Пополнение статформы
Пользователь: Алексей Артемьев (IP-адрес скрыт)
Дата: 09, June, 2014 11:13

Ну вот, у меня есть вот эти три файла.
Справочник ptt.mnu откорректирован добавлением строк
&uf('=!??.*!'v621)
Индекс ББК
Но ведь ещё что-то нужно сделать?

Вложения: TSTATSBBK.HDR (24 bytes)   TSTATSBBK.PFT (540 bytes)   TSTATSBBK.TAB (2.3KB)  
Re: Пополнение статформы
Пользователь: Алексей Артемьев (IP-адрес скрыт)
Дата: 10, June, 2014 08:20

Только сейчас заметил... Инструкция создания шаблонов для Excel есть, а для документов rtf нет.

Re: Алгоритм создания новой печатной формы
Пользователь: Алексей Артемьев (IP-адрес скрыт)
Дата: 16, June, 2014 10:11

Народ, проясните, пожалуйста, следующие вопросы:
1. Какой алгоритм создания новой печатной формы?
2. Как сделать так, что бы новая печатная форма отображалась в списке форм? Допустим, в АРМе Книговыдача, в окне "Статистика спроса" в списке выходных форм.
3. Где достать список тэгов форматирования для .rtf файлов и табличных форм? На вики ИРБИСа список далеко не полный, в файлах форматирования есть не описанные на вики команды, при чём описание у существующих команд не полное. Я смотрел тэги вот по этой ссылке Тэги RTF и HTML



Редактировано 2 раз. Последний раз 16.06.2014 11:21 пользователем Алексей Артемьев.

Re: Алгоритм создания новой печатной формы
Пользователь: Алексей Артемьев (IP-адрес скрыт)
Дата: 16, June, 2014 12:15

Удалось (совершенно случайно) найти справочник TABS.mnu, который и содержит список печатных форм статистик спроса. Внёс в неё созданную мной печатную табличную форму, отбор по маске работает, однако я не понял, почему не работает форматирование, указанное в pft и srw файлах. Форматирование документа почему-то осуществляется по стандартному файлу TSTATS.pft.

UPD. А почему у форм TSTAT* есть возможность выбрать статистику, а у форм TSPROS* - нет? В каких файлах это задаётся и что даёт?

UPD. Переименовал TSTATSBBK.* в TSPROSBBK.* и выбор статистики в окне "Статистика спроса" отключился. Теперь новая проблема - при выборе этой печатной табличной формы формируется пустой лист... Что происходит? =_= Я уже окончательно запутался...



Редактировано 2 раз. Последний раз 16.06.2014 14:54 пользователем Алексей Артемьев.

Re: Алгоритм создания новой печатной формы
Пользователь: Алексей Артемьев (IP-адрес скрыт)
Дата: 24, June, 2014 13:55

Окей... Сам разобрался.

Ну хоть как отсортировать результаты по убыванию с помощью сортировки подскажите?



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.