1 мар. 2007 г.

Сложные документы в OpenOffice.org (на примере 2.1 рус.)

Думаю, для тех, кто прочитал первые 10 статей об OpenOffice, уже не надо доказывать огромный потенциал, лежащий в основе пакета. Сегодня предлагаю рассмотреть решение конкретной задачи. Для этой цели на сайт был выгружен документ OpenOffice. Скачав этот документ, вы сможете непосредственно понять какие интересные особенности OpenOffice были использованы для его подготовки. А я далее сделаю некоторые пояснения.

На сайте выложен файл, названный "автокалендарь", заархивированный в zip архив. При первом открытии мы увидим следующее:


Прошу обратить внимание на некоторые особенности:

  • документ защищен от записи, кроме тех ячеек, которые предназначены для редактирования (для снятия защиты перейдите, как показано на скриншоте).

Защита позволяет оградить пользователя от порчи документа (то есть разрешить ему править только те области, которые предназначены для правки). Можно поставить пароль на защиту, тогда пользователь не сможет ее снять. Для того, чтобы ряд ячеек не защищались (то есть были доступны для редактирования) необходимо для таких ячеек отменить защиту перед защитой листа целиком в "формате ячеек". Делается это следующим образом:

Выделяем необходимую ячейку -> Формат -> Ячейки -> Защита ячейки и снимаем флаг "Защищено", как показано на скриншоте.

Теперь после защиты листа незащищенные ячейки можно легко править.

  • Вторая особенность - это весьма интересные формулы, используемые в документе. Но к ним мы еще вернемся.
  • Третье, а это именно то, для чего документ предназначен. Введя один раз изменение всего в одну ячейку мы изменяем всю таблицу. Попробуйте вместо 01.06.2007 в ячейку A3 ввести, к примеру, 01.09.2007. Весь календарь автоматически пересчитался и выходные дни вновь стали красными:

И в ячейке A2 поменяется название месяца. А все дело в функциях OpenOffice, о которых говорили ранее. В документе используются следующие функции:

=WEEKDAY() - эта функция по числу определяет порядковый номер дня недели. Не забываем, что программа OpenOffice имеет зарубежные корни, где 1-м днем недели считается воскресенье, а не понедельник, как принято в РФ.

=UPPER(CHOOSE(A4+STYLE(IF(OR(A4=7;A4=1);"Выходной";"Рабочий"));"вс";"пн";"вт";...
- это целый набор формул, отвечающий как за стиль дня недели (Выходной или Рабочий), так и за перевод определенных в предыдущей формуле чисел в привычные нам наименования дней недели. Разберем эту формулу детально.

=UPPER() отвечает за перевод всех букв строки в ВЕРХНИЙ РЕГИСТР.

Комбинация IF(OR(A4=7;A4=1) в данном случае совместно с функцией STYLE() в переводе на русский язык означает, если номер дня недели 1 или 7 - то это "Выходной" (разукрасим его красным) , остальные - рабочие не будем их трогать. О стилях "Выходной" и "Рабочий" расскажу чуть ниже.

И у нас осталась функция
CHOOSE(), используемая в уже указанной формуле и формуле выбора месяцев: =CHOOSE(MONTH(A3);"Январь";"Февраль";"Март";"Апрель";"Май" ... ит.д. Эта формула по ранее заданному числовому значению из списка выдает значение с порядковым номером, соответствующим числовому значению.

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

И последнее - стили. Функция
STYLE() определяет только те стили, что были заданы ранее пользователем. Стили создаются в редактори стилей, доступ к которому возможен нажатием на кнопку:


Здесь в секции стили пользователя задаем нужные нам стили, в частности необходимые нам "Выходной" и "Рабочий":

Стиль "Выходной" делаем красным.

Вот думаю, пока и все.

Хорошей вам работы в OpenOffice.org.


Комментариев нет:

Отправить комментарий