Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Опыт и разработки пользователей ИРБИС :  ИРБИС Irbis
 
Простой способ построения табличных форм
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 29, October, 2007 00:26

ЛИРИЧЕСКОЕ ВВЕДЕНИЕ

Я был невероятно рад, обнаружив в стандартной поставке ИРБИС форму очень похожую на ту которую попросили меня подготовить. Правда выяснилось, что исходные алгоритмы не могут быть использованы в нашей библиотеке(своя специфика), и я был вынужден полностью переделать схемы расчёта показателей. Оставалось радоваться только тому, что можно будет воспользоваться уже готовой таблицей, с отнюдь не простой структурой(см. Sample_table.rtf). Но здесь возникла маленькая проблема: требовалось удалить два ненужных столбца...

Как известно, для этих задач предназначен редактор табличных форм. Но при его использовании вместе с таблицей из старого проекта был бы перенесён и старый алгоритм расчёта показателей. Кроме того, методика создания форм в редакторе мне не ясна. Поэтому решил править RTF вручную.

К этому времени у меня накопился уже достаточно большой опыта работы с RTF таблицами, но с многоярусной шапкой дела иметь не приходилось. Я начал методично удалять ненужные фрагменты RTF кода. Ячейки превращались в чёрные пятна, словно выбитые зубы, вся таблица поползла и, в конце концов, стала одной сплошной массой сумасшедших линий...
Десяти попыток мне хватило, чтобы убедится в собственном бессилии. И тогда вспомнилось знаменитое ленинское: «Мы пойдём другим путём!»

PS
Я дал столь подробное описание своих проблем, предполагая, что они типичны.



Редактировано 1 раз. Последний раз 29.10.2007 00:34 пользователем Кирилл Соколинский (СЗТУ).

Вложения: Sample_table.rtf (11.5KB)  
Re: Простой способ построения табличных форм
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 29, October, 2007 00:28

ТАБЛИЦЫ В ИРБИС: ОБЩИЕ СВЕДЕНИЯ

Положение «таблица это набор строк, каждая из содержит одну или более ячеек» не является пустой банальностью в применении к таблицам ИРБИС. Строки в них существуют автономно и образуют внешнюю целостность лишь благодаря одинаковому размеру и отсутствию зазоров. (Поэтому в некоторых режимах просмотра в Word’е строки таблицы расползаются, хотя на качестве печати это никак не отражается.) В связи с этим построение многоярусной шапки означает создание строки из двух ячеек, затем создание строки из четырёх, из восьми и т. п. ячеек. (см. выше Sample_table.rtf)

Оставив вопрос о том насколько это правильно, я должен признать, что другого способа строить таблицы в RTF при помощи ИРБИСа не вижу. Поэтому в предлагаемом решении используются те же принципы конструирования таблиц, которые применяется разработчиками.

ПРИМЕР ИСПОЛЬЗОВАНИЯ ФОРМАТА ПОСТРОЕНИЯ ТАБЛИЦ
Привожу код формата, который создаёт таблицу из двух столбцов равной ширины и двух строк. Если кому-то он покажется сложным, не обращайте внимание ни на что кроме русскоязычных подписей и цифр в кавычках.

&uf('+1W950#',
'50'#,
),

/* Данные для первой строки
&uf('+1W960#',
' Первый столбец '#,
' Второй столбец '#,
),
&uf('6table'),

/* Данные для второй строки
&uf('+1W960#',
'   'v1'   '#,
'   'v2'   '#,
),
&uf('6table'),



Редактировано 2 раз. Последний раз 01.11.2007 22:13 пользователем Кирилл Соколинский (СЗТУ).

Re: Простой способ построения табличных форм
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 29, October, 2007 00:33

РАЗБОР ЛИСТИНГА
В глобальной переменной 950 задаётся размер столбцов в ПРОЦЕНТАХ, при этом размер последнего столбца вычисляется АВТОМАТИЧЕСКИ( ширина последнего столбца = 100 - сумма всех столбцов) и не указывается явно. Поскольку при выводе каждой строки эти параметры не теряются, их достаточно внести только один раз и для всех строк.

В переменной 960 задаются значения каждого из столбцов. Обязательные пробелы в безусловных литералах являются страховкой на случай нулевого значения v1 и v2. (Повторения не могут быть пустыми – эта особенность глобальных переменных, которую следует принять как данность). Но вместо v1 и v2 могут быть приведены очень большие форматы!

&uf('6table'), – вызов формата построения таблиц.

ПРЕИМУЩЕСТВА РЕШЕНИЯ

Перед использованием редактора табличных форм:
1. Гибкость. Позволяет создавать таблицы с динамически изменяемым количеством столбцов(!!!), выводить несколько таблиц на одной странице;
2. Не нужны вычисления. Т. е. автору таблиц не требуется заниматься арифметическими расчетами. Ими занимается компьютер. Размер столбцов указывается не в абсолютном, а в относительных значениях, поэтому не нужно постоянно думать как не выйти за пределы страницы и как при этом не сделать таблицу слишком маленькой. Автоматически вычисляется даже ширина последнего столбца.

Перед ручным редактированием RTF:
1. Надёжность. Ситуация, когда из-за лишней фигурной скобки или пропущенного слеша файл не читается просто исключена;
2. Динамичность. Чтобы изменить размер таблицы одного столбца в RTF форме требуется обычно провести правку размеров всех столбцов в трёх местах: в шапке, в формате вывода и в строке с суммой. При использовании описанного решения для этого нужно изменить лишь одну двузначную цифру в одном месте;
3. Простота и наглядность. Без комментариев. . . .
4. Сюда же можно добавить вышеописанные преимущества перед редактором табличных форм.


ПРАКТИКА ИСПОЛЬЗОВАНИЯ
Главная проблема предложенного метода – где и как выводить шапку. Оптимальным местом для этого конечно был бы [HEADER].PFT, т. е. формат указанный файле *.hdr формы. Но, увы, RTF команды, появляющиеся там, почему-то автоматически экранируются ИРБИС тегами \par и это препятствует корректному построению таблиц. Поэтому в таблицах с переменным числом строк целесообразно вписывать код шапки в секцию [HeaderFormat] с условием if a(g950) then [код] fi, а в таблицах с постоянным числом строк(статистических) в секцию [SUM].

Помимо вышеперечисленных используется ещё две глобальных переменных:
900 – ширина таблицы в RTF единицах. По умолчанию устанавливается значение 9086 – оптимальный размер для листа A4 портретной ориентации. Если предполагается использовать альбомную ориентацию, лучше установить 13939.
905 – толщина линий. По умолчанию 15. Если установить 0 значение, то граница таблицы будет не видна.


PS
Если кому-то всё это кажется сложным, сравните оригинальную и переработанную версию формы. Только сравнение позволит дать объективную оценку.

Возможно, скоро ирбисоводы вообще забудут об RTF и связанных с ним проблемах, поскольку все формы будут легко изготовляться в HTML. Трудно сказать когда эта возможность появится в Каталогизаторе, но в WEB ИРБИС это будет очень скоро. Как бы удивительно это не звучало, но библиотека сможет вместо вороха бумаг передавать в подразделения ВУЗа или муниципалитета всего лишь одну ссылку, ввод которой в браузер каждый раз позволит выводить и распечатывать, если потребуется, свежие статистические данные. ;)))

Вложения: tables.rar (14.2KB)  
Re: Простой способ построения табличных форм
Пользователь: Михайленко Илья (IP-адрес скрыт)
Дата: 29, October, 2007 09:22

Хех. Как часто в нашей жизни технически хорошие идеи помирают из-за элементарной бюрократии :)
Пока нужны будут бумаги с печатями и подписями - html может пользоваться как мощный инструмент для получения информации, но, к сожалению, не как инструмент для представления данных в бухгалтерию/проректору и т.д. Все же html-это для просмотра на экране, а не для печати...
Для печатных документов (IMSHO) наиболее вероятны 2 формы: rtf/xls или pdf. Причем, если pdf-это возможность получить на бумаге копию 1:1, то rtf - проще в плане доработки конечными пользователями (один из примеров как раз в этой теме :)) и, одновременно, достаточно мала разница между тем что мы видим на экране и тем что получаем на бумаге.

Re: Простой способ построения табличных форм
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 29, October, 2007 13:43

Цитата:
Илья Михайленко
> Хех. Как часто в нашей жизни технически хорошие
> идеи помирают из-за элементарной бюрократии :)
> Пока нужны будут бумаги с печатями и подписями -
> html может пользоваться как мощный инструмент для
> получения информации, но, к сожалению, не как
> инструмент для представления данных в
> бухгалтерию/проректору


Вы правы, далеко не всякая бумага может представлять интерес без печати и подписи. Но в тех случаях, когда допустимо копирование подписи и печати, создавать формы в HTML значительно удобней, чем в RTF. Понятно, что и в HTML и в RTF можно с одинаковым успехом использовать разные шрифты, применять к рисунку масштабирование и оформлять отступы. Но в RTF эти задачи решаются настолько сложно, что мне не известны люди, которые бы успешно пользовались соответствующими командами. (Если Вам приходилось изготовлять такие формы, пожалуйста, представьте хотя бы один образец). Копирование фрагментов кода, сгенерированного сторонним RTF редактором только в теории представляется лёгкой задачей, но на практике сопряжено с большим количеством проблем. Во-первых, становится очень сложно делать любые, даже незначительные исправления в статичных элементах, во-вторых, постоянно возникает проблема «согласования секций».

Действительно, в разных браузерах HTML страница может немного отличаться, но разве существуют в стандартном арсенале ИРБИС такие формы, которые недопустимо незначительно масштабировать? Кроме того, наряду с возможностью указания размером в процентах или пикселях, в HTML допустимо указывать их в сантиметрах. Если форма ориентирована на задачу печати, то можно добиться очень высокой точности позицирования данных.

Таким образом, если абстрактно поднять вопрос об оптимальном формате для печати, то я полностью с Вами согласен – лучше всего использовать PDF. Но если выбирать формат исходя из конкретных задач библиотечной практики, то оптимальным вариантом в силу доступности и простоты является HTML.

PS
Что касается XLS, этот формат вне конкуренции. Правда вопрос об обеспечении возможности его использования во всех видах форм даже не ставится.



Редактировано 1 раз. Последний раз 01.11.2007 22:15 пользователем Кирилл Соколинский (СЗТУ).

Re: Простой способ построения табличных форм
Пользователь: Alio (IP-адрес скрыт)
Дата: 29, October, 2007 13:59

А как в HTML реализовать такие вещи, как нумерация страниц, колон-титулы, отступы и т.д.

Re: Простой способ построения табличных форм
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 29, October, 2007 14:41

Цитата:
Alio
> А как в HTML реализовать такие вещи, как нумерация
> страниц, колон-титулы, отступы и т.д.

Вы правы, динамическая нумерация в HTML возможна только при помощи встроенных в браузер средств(параметры страницы в IE) или JS. Но при использовании для работы с документами HTML последних версий WORD, проблем с созданием статических колонтитулов не возникает. В этом можно легко убедиться, сохранив любой документ WORD в HTML и вновь открыв в WORD.

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



Редактировано 1 раз. Последний раз 01.11.2007 22:17 пользователем Кирилл Соколинский (СЗТУ).

Re: Простой способ построения табличных форм
Пользователь: Михайленко Илья (IP-адрес скрыт)
Дата: 29, October, 2007 15:29

Цитата:
Кирилл Соколинский (СЗТУ)
> Понятно, что и в HTML и в RTF можно с одинаковым успехом использовать разные шрифты, применять к рисунку масштабирование и оформлять отступы.

Простая задача:
Попробуйте создать html-страницу, при печати которой выводилось бы на первой странице слово "первая", на второй "вторая", на третьей "третья". При этом нужно обеспечить отступы: сверху 2,5см, слева 1,5 см. При этом нужно что бы так было при печати из любого разрешения в любом браузере на любом принтере.

Цитата:
Кирилл Соколинский (СЗТУ)
Но в RTF эти задачи решаются настолько сложно, что мне не известны люди, которые бы успешно пользовались соответствующими командами. (Если Вам приходилось изготовлять такие формы, пожалуйста, представьте хотя бы один образец).

Формы ирбисовские не делал, но rtf разбирал - не сложнее TeX'а - писал форматы просмотра для создаваемой у нас вспомогательной БД групп (тогда ИРБИС еще не знал html в форматах просмотра). Дальше появился html в качестве формата просмотра и rtf стал ненужен - мы работаем в хтмл. Специалистом себя в rtf назвать не могу, но со справочником - не трудно.
PS: командами rtf, судя по существующим формам, успешно пользуется Светлана Михайловна :)

Цитата:
Кирилл Соколинский (СЗТУ)
Копирование фрагментов кода, сгенерированного сторонним RTF редактором только в теории представляется лёгкой задачей, но на практике сопряжено с большим количеством проблем. Во-первых, становится очень сложно делать любые, даже незначительные исправления в статичных элементах, во-вторых, постоянно возникает проблема «согласования секций».

То же можно сказать и про html-редакторы :) Простейший пример: сохраните word-овский документ в html и попробуйте его поправить :)

Цитата:
Кирилл Соколинский (СЗТУ)
Если форма ориентирована на задачу печати, то можно добиться очень высокой точности позицирования данных.

Да в том то и дело что задача добиться более-менее точного позиционирования данных на бумаге в хтмл на много более трудоемкая задача чем написать то же самое в rtf или pdf. html для этого просто не предназначен.

Цитата:
Кирилл Соколинский (СЗТУ)
Таким образом, если абстрактно поднять вопрос об оптимальном формате для печати, то я полностью с Вами согласен – лучше всего использовать PDF. Но если выбирать формат исходя из конкретных задач библиотечной практики, то оптимальным вариантом в силу доступности и простоты является HTML.

Попробуйте все же на досуге решить задачку в начале поста. Решение будет интересным.
Если есть хоть одна _печатная_ форма, которая не реализуется в хтмл, то от rtf/pdf (либо другх форматов подготовки к печати) уже не уйти...

А вообще, эти два формата предназначены для решения абсолютно разных задач и сравнивать их смысла особого не вижу. Визуализация - одно, печать - другое.



Редактировано 1 раз. Последний раз 01.11.2007 15:05 пользователем Михайленко Илья.

Re: Простой способ построения табличных форм
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 30, October, 2007 01:07

Цитата:
Михайленко Илья
-------------------------------------------------------
> Кирилл Соколинский (СЗТУ) написал(а):
> --------------------------------------------------
> -----
> > Понятно, что и в HTML и в RTF
> > можно с одинаковым успехом использовать разные
> > шрифты, применять к рисунку масштабирование и
> > оформлять отступы.
>
> Простая задача:
> Попробуйте создать html-страницу, при печати
> которой выводилось бы на первой странице слово
> "первая", на второй "вторая", на третьей "третья".
> При этом нужно обеспечить отступы: сверху 2,5см,
> слева 1,5 см. При этом нужно что бы так было при
> печати из любого разрешения в любом браузере на
> любом принтере.

Я говорил об отступах и масштабировании применительно к рисункам! Что касается страничных отступов, то в ответе Александру Иосифовичу я признал невозможность их установления для страниц, просматриваемых через браузер(их можно только увеличить по сравнению со значениями по умолчанию). Тем не менее, отступы можно легко установить в для документов которые предполагается печатать через WORD. Указанные Вами отступы можно добавить в адаптированный для WORD HTML код, приписав к декларации стилей:

@page Section1 {margin: 2.5cm 2.0cm 2.0cm 1.5cm;}
div.Section1{page:Section1;}

Но мне ещё раз хотелось бы повторить, что с моей точки зрения размер отступа должен определяться в каждом конкретном случае параметрами принтера. На старых матричных принтерах нижний отступ должен составлять не меньше 2.5см. На фотопринтерах он может вообще отсутствовать. Поэтому лучше всего не внедрять отступы в формы, а устанавливать их по умолчанию в браузере.

Наконец вызывает сомнения жизнеподобие поставленной Вами задачи. Кому может понадобиться писать в колонтитулах «первая», «вторая», «третья»??? Какие формы из стандартного набора или из числа написанных Вами будут некорректно печататься с другими отступами, чем 2,5см сверху и 1,5 см слева?
Мы ведь решаем не теоретические, а практические задачи. Хочу подчеркнуть, что мои суждения базируются не на общих положениях, а на конкретном опыте создания табличных форм. Если Ваш опыт более разнообразен и подводит к противоположным выводам, пожалуйста, поделитесь им.

Цитата:
Михайленко Илья
> PS: командами rtf, судя по существующим формам,
> успешно пользуется Светлана Михайловна :)

То, что делает Светлана Михайловна мы с Вами повторить не сможем. :)
Конечно, разобраться в RTF при желании и наличии времени можно. Но утверждать, что это просто я бы не стал. Попробуйте, например, изменить в любой форме шрифт с Arial на Times New Roman. Как показывает одна из веток этого форума, над этой задачей бились опытные люди, но безрезультатно.

Цитата:
Михайленко Илья

> > Копирование фрагментов кода,
> > сгенерированного сторонним RTF редактором только
> в
> > теории представляется лёгкой задачей, но на
> > практике сопряжено с большим количеством
> проблем.
> > Во-первых, становится очень сложно делать
> любые,
> > даже незначительные исправления в статичных
> > элементах, во-вторых, постоянно возникает
> проблема
> > «согласования секций».
>
> То же можно сказать и про html-редакторы :)
> Простейший пример: сохраните word-овский документ
> в html и попробуйте его поправить :)


У нас этим занимается целый отдел девушек. ;) И сравнение трудоёмкости такой правки при любых обстоятельствах будет явно не в пользу RTF. К примеру, для создания одной ячейки в HTML требуется написать:

<td></td>

а в RTF

\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15\clbrdrr\brdrs\brdrw15\cellx10908 \pard \widctlpar\intbl {\qc \fs20 \cell }


Цитата:
Михайленко Илья

> > Действительно, в разных браузерах HTML страница
> > может немного отличаться, но разве существуют в
> > стандартном арсенале ИРБИС такие формы, которые
> > недопустимо незначительно масштабировать? Кроме
> > того, наряду с возможностью указания размером в
> > процентах или пикселях, в HTML допустимо
> > указывать их в сантиметрах. Если форма
> > ориентирована на задачу печати, то можно
> добиться
> > очень высокой точности позицирования данных.
>
> Да в том то и дело что задача добиться более-менее
> точного позиционирования данных на бумаге в хтмл
> на много более трудоемкая задача чем написать то
> же самое в rtf или pdf. html для этого просто не
> предназначен.


Когда я говорил об очень высокой точности, то, разумеется, имел в виду высокую точность в сравнении с резиновым вариантом(когда всё в процентах), а не с PDF. Но самое главное мне хотелось бы понять какие элементы в Ваших табличных формах нуждались в точном(абсолютном) позицировании? В случае с подписью и печатью, который мы обсуждали, в абсолютном позицировании нет никакой необходимости.

Цитата:
Михайленко Илья
> А вообще, эти два формата предназначены для
> решения абсолютно разных задач и сравнивать их
> смысла особого не вижу.

Я тоже не вижу большого смысла в их сравнении. ;) Только высказал мысль, что добавление режима печати табличных форм в HTML в модулях ИРБИС существенно упростит ирбисоводам жизнь.



Редактировано 1 раз. Последний раз 01.11.2007 22:21 пользователем Кирилл Соколинский (СЗТУ).

Re: Простой способ построения табличных форм
Пользователь: Михайленко Илья (IP-адрес скрыт)
Дата: 30, October, 2007 10:28

Цитата:
Кирилл Соколинский (СЗТУ)
Тем не менее, отступы можно легко установить в для документов которые предполагается печатать через WORD. Указанные Вами отступы можно добавить в адаптированный для WORD HTML код, приписав к декларации стилей:
@page Section1 {margin: 2.5cm 2.0cm 2.0cm 1.5cm;}
div.Section1{page:Section1;}

Кстати, хоть и только для Word - но вариант.

Цитата:
Кирилл Соколинский (СЗТУ)
Поэтому лучше всего не внедрять отступы в формы, а устанавливать их по умолчанию в браузере.

Библиотекарям объяснить как "устанавливать в браузере отступы по-умолчанию" не всегда возможно. Есть ведь и совсем небольшие библиотеки, где весь ИРБИС стоит "далеко - на ВЦ"...

Цитата:
Кирилл Соколинский (СЗТУ)
Кому может понадобиться писать в колонтитулах «первая», «вторая», «третья»???

Эт не практическая задача :) Практическое применение имеет только как базовое решение подобных задач. Зная решение этой задачи мы, следовательно, сможем решить любую подобную задачу :) "первая", "вторая", "третья" - это лишь "рыба"

Цитата:
Кирилл Соколинский (СЗТУ)
Какие формы из стандартного набора или из числа написанных Вами будут некорректно печататься с другими отступами, чем 2,5см сверху и 1,5 см слева?

К примеру: Бибуказатель новых поступлений, являющийся частью ежемесячного журнала. Журнал предъявляет требования в том числе и к межстрочному интервалу, отступам (цифры другие, но суть - та же). Хотя для решения этой задачи, действительно, можно и @page запользовать - там передача в Word :)

Цитата:
Кирилл Соколинский (СЗТУ)
Мы ведь решаем не теоретические, а практические задачи.

Практика всегда базируется на теории. Мы сейчас в ходе дискуссии пытаемся увидеть как можно больше слабых мест этого решения. С сильными то как раз все ясно. :)
"Возможно, скоро ирбисоводы вообще забудут об RTF и связанных с ним проблемах, поскольку все формы будут легко изготовляться в HTML"
Вот это то мне и интересно - думаю об этом давно :) Хочу для себя понять: возможно ли это и сможет ли стать действительно заменой rtf?

Цитата:
Кирилл Соколинский (СЗТУ)
Хочу подчеркнуть, что мои суждения базируются не на общих положениях, а на конкретном опыте создания табличных форм. Если Ваш опыт более разнообразен и подводит к противоположным выводам, пожалуйста, поделитесь им.

Формы (статистические) в html делаю. Об этом буду рассказывать на либкоме (один из примеров - скриншот в аттаче). Естесственно, пользую их только для просмотра. Для печати - копипаст в Word.

Цитата:
Кирилл Соколинский (СЗТУ)
> То, что делает Светлана Михайловна мы с Вами повторить не сможем. :)

Даже пытаться не буду :)

Цитата:
Кирилл Соколинский (СЗТУ)
> Конечно, разобраться в RTF при желании и наличии времени можно. Но утверждать, что это просто я бы не стал. Попробуйте, например, изменить в любой форме шрифт с Arial на Times New Roman. Как показывает одна из веток этого форума, над этой задачей бились опытные люди, но безрезультатно.

Первая часть (за которую отвечает rtf)
Вся таблица шрифтов формируется в заголовке rtf. В теле самого документа можно пользоваться только шрифты, которые прописаны в заголовке. В заголовке для смены фонта с Arial на Times New Roman надо прописать вместо \fswiss \froman и поправить имя самого шрифта (можт что-то еще упустил :) ). Либо добавить соответствующий фонт в заголовок, а в теле его уже использовать - эт если нужны оба шрифта одновременно.
Вторая часть (за которую отвечает ИРБИС)
Не везде можно изменить шапку rtf :) А прописать вторую шапку нельзя по стандарту...
Там остается только смотреть в сторону KKKFONTNAME.

Цитата:
Кирилл Соколинский (СЗТУ)
а в RTF
\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15\clbrdrb\brdrs\brdrw15\clbrdrr\brdrs\brdrw15\cellx 10908 \pard \widctlpar\intbl {\qc \fs20 \cell }

В хтмл приведенная конструкция будет выглядеть не как <td></td> - стилей не хватает для бордеров (\clbrdr*), расстояния (\cellx), центрирования (\qc) и размера шрифта (\fs20)


Цитата:
Кирилл Соколинский (СЗТУ)
Я тоже не вижу большого смысла в их сравнении. ;) Только высказал мысль, что добавление режима печати табличных форм в HTML в модулях ИРБИС существенно упростит ирбисоводам жизнь.
Тут полностью согласен :) Вопрос только в реализации - "как именно".



Редактировано 1 раз. Последний раз 01.11.2007 15:10 пользователем Михайленко Илья.

Вложения: ls.jpg (169.7KB)  
Re: Простой способ построения табличных форм
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 30, October, 2007 16:35

Цитата:
Михайленко Илья
> На
> > старых матричных принтерах нижний отступ должен
> > составлять не меньше 2.5см. На фотопринтерах он
> > может вообще отсутствовать. Поэтому лучше всего
> не
> > внедрять отступы в формы, а устанавливать их
> по
> > умолчанию в браузере.
>
> Библиотекарям объяснить как "устанавливать в
> браузере отступы по-умолчанию" не всегда возможно.
> Есть ведь и совсем небольшие библиотеки, где весь
> ИРБИС стоит "далеко - на ВЦ"...


Тогда они и с ИРБИС не смогут работать. ;) Кроме того, разработчикам удалось реализовать для режима печати простых списков возможность параметрирования страницы непосредственно в ИРБИС.

Цитата:
Михайленко Илья
> > Наконец вызывает сомнения жизнеподобие
> > поставленной Вами задачи. Кому может
> понадобиться
> > писать в колонтитулах «первая», «вторая»,
> > «третья»???
>
> Эт не практическая задача :) Практическое
> применение имеет только как базовое решение
> подобных задач. Зная решение этой задачи мы,
> следовательно, сможем решить любую подобную задачу
> :) "первая", "вторая", "третья" - это лишь "рыба"


В том то и дело, что подобных задач просто не возникает. ;)

Цитата:
Михайленко Илья
> > Мы ведь решаем не теоретические, а практические
> > задачи.
>
> Практика всегда базируется на теории.

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

Цитата:
Михайленко Илья
> "Возможно, скоро ирбисоводы вообще забудут об RTF
> и связанных с ним проблемах, поскольку все формы
> будут легко изготовляться в HTML"
> Вот это то мне и интересно - думаю об этом давно
> :) Хочу для себя понять: возможно ли это и сможет
> ли стать действительно заменой rtf?

Я не имел ввиду, что разработчики должны отказываться от RTF и переводить все формы в HTML. Но расширение возможностей табличного форматера позволит быстро и легко создавать нужные формы пользователям. Чтобы печь пирожки не обязательно организовывать у себя дома пекарню. ;)

Цитата:
Михайленко Илья
> Формы (статистические) в html делаю. Об этом буду
> рассказывать на либкоме (один из примеров -
> скриншот в аттаче).

Полагаю, Вы пользуетесь не командой IRBIS_PRINT, а какими-то другими и обрабатываете ответ сервера PHP кодом. Очень интересно, какой именно командой Вы запрашиваете данные?

Поверьте, Вашу работу никогда так не оценят в аудитории «Звенигород», как оценим мы на форуме. Поэтому будем благодарны, если Вы хоть немного приоткроете завесу тайны. ;)

Цитата:
Михайленко Илья
> Естесственно, пользую их
> только для просмотра. Для печати - копипаст в
> Word.

А Вы не пробовали использовать всплывающие окна? Полагаю, это оптимальный способ вывода данных на печать.
Посмотрите в качестве примера:
[elib.nwpi.ru]

Цитата:
Михайленко Илья
> Первая часть (за которую отвечает rtf)
> Вся таблица шрифтов формируется в заголовке rtf. В
> теле самого документа можно пользоваться только
> шрифты, которые прописаны в заголовке. В заголовке
> для смены фонта с Arial на Times New Roman надо
> прописать вместо \fswiss \froman и поправить имя
> самого шрифта (можт что-то еще упустил :) ). Либо
> добавить соответствующий фонт в заголовок, а в
> теле его уже использовать - эт если нужны оба
> шрифта одновременно.
В том то и дело, что всего описанного Вами недостаточно. ;)))

Цитата:
Михайленко Илья
> Вторая часть (за которую отвечает ИРБИС)
> Не везде можно изменить шапку rtf :)

К счастью, в ИРБИС 32 шапка табличных форм всегда внешняя. Поэтому я и держусь за эту версию.

Цитата:
Михайленко Илья
> Там остается только смотреть в сторону
> KKKFONTNAME.
>
> > а в RTF
> >
> > \clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15
> >
> \clbrdrb\brdrs\brdrw15\clbrdrr\brdrs\brdrw15\cellx
>
> > 10908 \pard \widctlpar\intbl {\qc \fs20 \cell }
>
> В хтмл приведенная конструкция будет выглядеть не
> как - стилей не хватает для бордеров (\clbrdr*),
> расстояния (\cellx), центрирования (\qc) и размера
> шрифта (\fs20)

Вы правы, но этим параметры обычно выносятся в CSS и определяются один раз для 1000 ячеек. ;) В RTF, вероятно, вынести общие настройки таблицы за её пределы тоже можно, но никто не выносит. ;)



Редактировано 1 раз. Последний раз 01.11.2007 22:25 пользователем Кирилл Соколинский (СЗТУ).

Re: Простой способ построения табличных форм
Пользователь: Михайленко Илья (IP-адрес скрыт)
Дата: 31, October, 2007 15:17

Цитата:
Кирилл Соколинский (СЗТУ)
Тогда они и с ИРБИС не смогут работать. ;) Кроме того, разработчикам удалось реализовать для режима печати простых списков возможность параметрирования страницы непосредственно в ИРБИС.

Из "разработчикам удалось реализовать для режима печати простых списков возможность параметрирования страницы непосредственно в ИРБИС" (автоматизаторами) следует что библиотекарям вообще не надо об этом заботиться - об этом заботятся автоматизаторы :)

Цитата:
Кирилл Соколинский (СЗТУ)
В том то и дело, что подобных задач просто не возникает. ;)
Печать набора КК. Даже у нас эти карточки еще живы (хоть и только для ГК)
Кстати, должен заметить, что форм таких не появляется из-за отсутствия широкого распространения знания внутреннего формата rtf и некоторой неуверенности в будущем этого формата.

Цитата:
Кирилл Соколинский (СЗТУ)
Цитата:
Михайленко Илья
> > Практика всегда базируется на теории.
Так было не всегда и даже сегодня этот принцип действует далеко не во всех отраслях.
"Шаманство" не всчет :) Пока имеющийся у меня опыт говорит все же о необходимости какой-либо теоретической основы.

Цитата:
[quote=Кирилл Соколинский (СЗТУ)
]В том докладе, который я планирую делать на Либкоме, я как раз доказываю, что библиотечное дело не может существовать по законам постиндустриальной цивилизации.
Обязательно его послушаю. Вообще, мне было бы интересно с Вами пообщаться - мы думаем над одними и теми же проблемами, идем каждый своим путем. У каждого пути есть свои + и -. Надеюсь, Вам удастся на конференции выбрать для этого время (лучче в неформальной обстановке :))

Цитата:
Кирилл Соколинский (СЗТУ)
Я не имел ввиду, что разработчики должны отказываться от RTF и переводить все формы в HTML. Но расширение возможностей табличного форматера позволит быстро и легко создавать нужные формы пользователям. Чтобы печь пирожки не обязательно организовывать у себя дома пекарню. ;)
бесспорно.

Цитата:
Кирилл Соколинский (СЗТУ)
Полагаю, Вы пользуетесь не командой IRBIS_PRINT, а какими-то другими и обрабатываете ответ сервера PHP кодом. Очень интересно, какой именно командой Вы запрашиваете данные?

Вы правы, не IRBIS_PRINT. Технология в общих чертах похожа на технологию построения табличных форм в ИРБИС, но изначально ориентируется на динамический (т.е. из выборки) набор столбцов и строк: по поисковым запросам (по индексам и/или последовательному поиску) происходит поиск и расформатирование записей (команда "K" протокола)
Формат написан таким образом, что результат - это таблица (точнее, приводится к таблице) со столбцами col,row,val,key1,key2. col,row-заголовки столбцов и строк, Дальше все зависит от типа статистики которую мы запрашиваем.
К примеру: если нам интересна сумма значений, то мы внутри храним уже таблицу вида col,row,sum(val),key1,key2.При этом набор {col,row,key1,key2} уникален. Агрегирующая функция отрабатывает на этапе получения данных от ИРБИС 64, что позволяет сократить кол-во получаемых строк. key1,key2 - это значения для обеспечения возможностей дополнительных выборок (в дополнение к столбцам, которые получаютя из запроса).

Простейший пример статистики:
Для получения пользуем поиск по БД RDR (GR=$)
RdrDolg.pft (В аттаче) формирует нам требуемые данные для таблицы.
Просим сумму по рядам и получаем статистику вида dolzh.jpg (в аттаче)
key1 пользуется для фильтра по группе.

Цитата:
Кирилл Соколинский (СЗТУ)
Поверьте, Вашу работу никогда так не оценят в аудитории «Звенигород», как оценим мы на форуме. Поэтому будем благодарны, если Вы хоть немного приоткроете завесу тайны. ;)

Да тайны-то особой нету :) Алгоритм в общих чертах описал выше :)

Цитата:
Кирилл Соколинский (СЗТУ)
Посмотрите в качестве примера:
[elib.nwpi.ru]
Посмотрел. Здорово :) Особенно интересно было посмотреть на систему электронного заказа - возникло много орг. вопросов, которые, надеюсь, удастся обсудить на конференции - интересно как они решаются у Вас.
Так же интересен подход к реализации через Joomla. То же его рассматривал (вместе с Xoop и др. подобными системами), но отказался от него в свое время - хотелось более жесткой привязки пользователей к ИРБИС и контроля прав доступа в соответствии с данными из БД RDR (по категории, факультету, специальности, читающей кафедре и т.д.). Потому выбрал нелегкий путь написания собственной системы управления контентом. Жалеть об этом пока не приходилось. Страдаю от отсутствия дизайнера - но этот вопрос сейчас есть надежда решить.

Цитата:
Кирилл Соколинский (СЗТУ)
В том то и дело, что всего описанного Вами недостаточно. ;)))
пробую на практике поправить в какой-нибудь из форм :)
Взял первую попавшуюся (!!KKF). Сохранил на диск, поменял Arial на Times New Roman.
Получилось в заголовке следующее:
{\rtf1\ansi\ansicpg1251\deff0\deflang1049{\fonttbl{\f0\fnil\fcharset204{\*\fname Times;}Times New Roman;}}
Открыл документ - все отработало - шрифт сменился.
Другое дело, что из ИРБИС это сделать не получится - заголовок менять негде - его формирование (i64) вшито в exe :)

Цитата:
Кирилл Соколинский (СЗТУ)
> К счастью, в ИРБИС 32 шапка табличных форм всегда внешняя. Поэтому я и держусь за эту версию.
У нас ИРБИС 32 уже не вмещает все данные. Книговыдача+книгообеспеченность одновременно - нереально на нашей базе. Соответственно, перешли на 64-й.
Кстати, смотрел Ваш сайт - нашлись книги с экземплярностью в 1400+. Если вы работаете на ирбис 32 - то я правильно понимаю что у Вас они со статусом U?

Цитата:
Кирилл Соколинский (СЗТУ)
В RTF, вероятно, вынести общие настройки таблицы за её пределы тоже можно, но никто не выносит. ;)
Можно - см. \stylesheet в заголовке rtf. А не выносят, потому как мало кто может назвать себя спецом в rtf (я точно им не являюсь :))



Редактировано 1 раз. Последний раз 01.11.2007 15:18 пользователем Михайленко Илья.

Вложения: RdrDolg.pft (476 bytes)   dolzh.jpg (150.3KB)  
Re: Простой способ построения табличных форм
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 01, November, 2007 14:08

Цитата:
Михайленко Илья
> Из "разработчикам удалось реализовать для режима
> печати простых списков возможность
> параметрирования страницы непосредственно в ИРБИС"
> (автоматизаторами) следует что библиотекарям
> вообще не надо об этом заботиться - об этом
> заботятся автоматизаторы :)

Зависит от установок сотрудников. :)

Цитата:
Михайленко Илья
> > > :) "первая", "вторая", "третья" - это лишь
> > "рыба"
> > В том то и дело, что подобных задач просто не
> > возникает. ;)
>
> Печать набора КК. Даже у нас эти карточки еще живы
> (хоть и только для ГК)
> Кстати, должен заметить, что форм таких не
> появляется из-за отсутствия широкого
> распространения знания внутреннего формата rtf и
> некоторой неуверенности в будущем этого формата.

Неужели при печати каталожных карточках Вы используете колонтитулы и печатаете в них «первая», «вторая», «третья»?

Цитата:
Михайленко Илья
> > > Практика всегда базируется на теории.
> > Так было не всегда и даже сегодня этот принцип
> > действует далеко не во всех отраслях.
>
> "Шаманство" не всчет :) Пока имеющийся у меня опыт
> говорит все же о необходимости какой-либо
> теоретической основы.

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

а) Сомневаюсь, что Галилео Галилея – основоположника новоевропейской науки можно назвать «шаманом» хотя, изучая динамику, он опирался не на теорию, а «брал уроки» у мастеровых венецианского арсенала. То же самое можно сказать о Фрэнсисе Бэконе, который в своей апологии эмпиризма фактически объявил теоретическое знание «идолом» и даже предлагал учёным избавиться от книг. ;)))

б) Вы пробовали читать труды библиотечных теоретиков автоматизации? Эти корифеи с докторскими степенями не только не способны наметить путь дальнейшего развития отрасли, но даже элементарно осознать происходящие в библиотечной практике изменения. До сих пор документ, который находится в Интернете, не подпадает под ГОСТовское определение документа...
Почему автоматизация, которая во всех отраслях обеспечивает повышение эффективности работы, в библиотечном деле приводит к замедлению обработки документов и расширению штатов? Если бы библиотечное дело развивалось в соответствии с теоретическими постулатами постиндустриальной цивилизации, всё должно было бы быть иначе...

Цитата:
Михайленко Илья
> Вообще, мне было бы
> интересно с Вами пообщаться - мы думаем над одними
> и теми же проблемами, идем каждый своим путем. У
> каждого пути есть свои + и -. Надеюсь, Вам удастся
> на конференции выбрать для этого время (лучче в
> неформальной обстановке :))

Это было бы замечательно! :)

Цитата:
Михайленко Илья
> Вы правы, не IRBIS_PRINT. Технология в общих
> чертах похожа на технологию построения табличных
> форм в ИРБИС, но изначально ориентируется на
> динамический (т.е. из выборки) набор столбцов и
> строк: по поисковым запросам (по индексам и/или
> последовательному поиску) происходит поиск и
> расформатирование записей (команда "K" протокола)

Да, всё просто и логично.
Цитата:
Михайленко Илья
> {\rtf1\ansi\ansicpg1251\deff0\deflang1049{\fonttbl
> {\f0\fnil\fcharset204{\*\fname Times;}Times New
> Roman;}}
> Открыл документ - все отработало - шрифт
> сменился.

Невероятно, почему у меня возникали проблемы со шрифтом? :-[ Мне кажется, я неоднократно проделывал те же манипуляции... Выяснил, что можно даже сократить шапку даже до такой:
{\rtf1\ansi{\fonttbl{\f0\fcharset204 Times New Roman;}}
Конечно проблемы, описанные здесь [irbis.gpntb.ru] , связаны в первую очередь с особенностями ИРБИС 64...
Цитата:
Михайленко Илья
> У нас ИРБИС 32 уже не вмещает все данные.
> Книговыдача+книгообеспеченность одновременно -
> нереально на нашей базе. Соответственно, перешли
> на 64-й.
> Кстати, смотрел Ваш сайт - нашлись книги с
> экземплярностью в 1400+. Если вы работаете на
> ирбис 32 - то я правильно понимаю что у Вас они со
> статусом U?

Да, конечно. Хотя Книгообеспеченность мы в любом случае вынуждены будем сократить –- отказаться от формы обучения.



Редактировано 2 раз. Последний раз 01.11.2007 22:31 пользователем Кирилл Соколинский (СЗТУ).

Re: Простой способ построения табличных форм
Пользователь: -AND- (IP-адрес скрыт)
Дата: 19, November, 2007 15:24

Кирилл
объясни пожалуйста, как модифицированая форма подкл в Ирбис? И где этот Unifor взялся, я его раньше не видел? Можно о твоем механизме поподробней?
Модифицированная форма впечетляет, если сравнивать с исходной. Достаточно просто открыть файлы первого варианта и потом второго.



Редактировано 1 раз. Последний раз 20.03.2009 16:50 пользователем -AND-.

Re: Простой способ построения табличных форм
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 21, November, 2007 00:40

объясни пожайлуста, как модифицированая форма подкл в Ирбис?

Обычно все файлы формы имеют одинаковое имя. Это имя является идентификатором формы. Чтобы подключить форму к Каталогизатору, достаточно добавить в файле TABW.MNU две строки:

<идентификатор формы>
<название формы на естественном языке>

Советую для начала разобраться, как устроена форма TABBNW, а затем переходить к табличным вариантам.



И где этот Unifor взялся, я его раньше не видел? Можно о твоем механизме поподробней?

&uf(‘6 - подключает вложенный формат(PFT)

&uf('+1W960#',
' Первое '#,
' Второе '#,
),

Осуществляет запись нескольких повторений в переменную 960. Заметь, первая решетка – разделитель, последующие означают переводы строки. Теоретически их можно поменять на слеши. Главное не забывай, что каждое повторение должно содержать хотя бы пробел и ни в коем случае не должно быть пустым.



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