[oodisc] Библиотечка для работы с User Fields

Александр Савицкий a.savitsky на ukrsibbank.com
Чт Фев 20 13:48:23 MSK 2003


Привет всем!
Прошу прощения за длинное письмо - некоторые пояснения необходимы. Кому 
лень читать, переходите ко второй половине.

При переходе на ООо на меня посыпалась целая гора жалоб на неудобства. 
Пришлось облегчать в меру своих возможностей. Ситуация следущая: есть 
абсолютно стандартный документ (Договор, Заявление) и т.д и т.п, надо 
лишь заполнить некоторые поля, которые неоднократно повторяются на 
протяжении всего документа (No Договора, ФИО и т.п.). Циркулярное письмо 
не подошло, так как для пользователей неочевидно заполнение базы данных, 
выбор записи и создание такого письма. Да и база данных в данном случае 
не нужна. Остановился на полях пользователя. Вначале использовался 
подход - в шаблоне расставлялись поля пользователя, а потом на первое 
встрчающееся поле вешалось поле ввода. Но жать кнопку "Далее" неудобно, 
и нет полной картины полей, поэтому был написан макрос, который вызвает 
формочку, на которой отображаются поля пользователя. Выглядит все 
достаточно эстетично, удобно в использовании.
-----------------------------------------

Теперь делается шаблон, в нем расставляются поля пользователя 
(Вставка-Поле-Дополнительно-Переменные-Поле пользователя или 
Ctrl+F2-Переменные-Поле пользователя), полям можно давать русские имена. 
Нельзя использовать пробелы и некоторые символы (например "No"). Макрос 
сделан в виде библиотечки и вынесена кнопка на панель инструментов. 
Теперь пользователь заполняет формочку, щелкает "Принять" - и документ 
можно печатать.


Как ставить?
Распаковываем и копируем папку Fields в Х/user/basic, где X - папка куда 
установлен ООо. Сервис-Макрос-Организовать-Библиотеки-Добавить - 
указываем на файл script.xlb
Теперь можно вызывать процедуру FieldsForm. Если надо - вынести ее кнопкой.

  Я не профессиональный программист, так что все замечания 
приветствуются, лучше сразу меняйте как считаете нужным и шлите 
исправления. Все что можно вынесено в константы - размеры элементов 
формы, расстояния между элементами и т.д. Имена переменных и констант 
достаточно осмыслены ( по крайней мере для меня :)) Задается количество 
полей (Const iMaxFields), которые показываются на форме, если в 
документе полей больше - появляется scrollbar. Код должен быть понятен 
сам по себе. Комментарии минимальны.

Да, это еще и работающий пример работы с диалогами, и полями 
пользователя документа Writer .

Буду рад, если эта библиотечка будет полезна кому-нибудь еще. А если ее 
довести до ума, то можно включить и в дистрибутив. Выглядит не хуже 
Gimmikicks.
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : Fields.zip
Тип     : application/x-compressed
Размер  : 3963 байтов
Описание: отсутствует
Url     : /pipermail/oo-discuss/attachments/20030220/86e673e0/Fields.bin


Подробная информация о списке рассылки Oo-discuss