Ananas Library 0.9.5
Класс aOOTemplate

Класс определяет интерфейс для работы с шаблонами в формате OpenOffice. Наследует iTemplate. Подробнее...

#include <aootemplate.h>

Граф наследования:aOOTemplate:
iTemplate aCalcTemplate

Открытые члены

virtual bool open (const QString &fname)
virtual void close ()
virtual void clear ()
virtual QString getValue (const QString &name)
virtual void setValue (const QString &name, const QString &value)
virtual QString exec (const QString &sname)
virtual QString result ()
virtual bool save (const QString &fname)
virtual void setDir (const QString &dirName)
virtual QString getDir ()
virtual void cleanUpTags ()
virtual bool lineFeedRemove (const QString &filename)
Открытые члены унаследованные от iTemplate
 iTemplate ()
virtual ~iTemplate ()

Защищенные члены

void searchTags (QDomNode node, const QString &sname)
virtual bool getNodeTags (QDomNode node, const QString &tagname, bool params)
void insertRowValues (QDomNode node)
virtual void insertTagsValues (QDomNode node, const QString &tagName)
void clearTags (QDomNode node, bool section)
void clearRow (QDomNode node)

Защищенные данные

QString copyName
QString templateDir
QMap< QString, QString > values
QDomDocument docTpl
QDomDocument docStyle

Подробное описание

Класс определяет интерфейс для работы с шаблонами в формате OpenOffice. Наследует iTemplate.

Описание шаблона:
Шаблон представляет собой обычный документ OpenOffice. Он предназначен для того, чтобы быстро создавать отчеты. Внешне шаблон отличается от того документа, который необходимо сгенерировать только наличием специальных тегов. Эти теги при генерации заменяются на конкретные значения.
Предусмотрено два типа тегов:
1) Тег секции
С помощью него можно размножать строки таблицы. Для этого надо просто записать его в любую ячейку строки.
Формат тега [:имя тега:]
В имени допустимы любые символы.
При вызове exec() с параметром = имени этого тега к таблице будет добавлена еще одна строка. Если в этой строке есть простые теги, то произойдет замена тега на значение, заданное с помощью функции setValue()
2) Простой тег.
С помощью него можно вставлять в документ обычный текст, дату, и т.п.
формат тега <:имя тега:>
При вызове exec() с параметром = имени этого тега, рядом допишется значение, предварительно заданное с помощью функции setValue()
Функция setValue() задает значения для подстановки. Для прстых тегов надо задавать setValue("param",значение для подстановки); после чего надо выполнить exec(имя простого тега)
Для тегов секции setValue(имя простого тега, значение для подстановки); после чего выполнить exec(имя секции);

Методы

◆ cleanUpTags()

void aOOTemplate::cleanUpTags ( )
virtual

Удаляет все теги из документа, а также строки, в которых содержится тег секции

Переопределяет метод предка iTemplate.

Перекрестные ссылки clearRow(), clearTags(), docStyle и docTpl.

◆ clear()

void aOOTemplate::clear ( )
virtual

Обнуляет внутренние переменные.

Переопределяет метод предка iTemplate.

◆ clearRow()

void aOOTemplate::clearRow ( QDomNode node)
protected

Рекурсивная функция. Удаляет строки, содержащие тег секции

Аргументы
node- узел из которого нужно удалить строки

Перекрестные ссылки clearRow().

Используется в cleanUpTags() и clearRow().

◆ clearTags()

void aOOTemplate::clearTags ( QDomNode node,
bool section )
protected

Удаляет рекурсивно теги из node.

Аргументы
node- узел из которого нужно удалить теги
section- true, если надо удалить тег секции

Перекрестные ссылки clearTags().

Используется в cleanUpTags(), clearTags() и insertRowValues().

◆ close()

void aOOTemplate::close ( )
virtual

Закрывает шаблон. Удаляет временные файлы.

Переопределяет метод предка iTemplate.

Перекрестные ссылки copyName, docStyle и docTpl.

◆ exec()

QString aOOTemplate::exec ( const QString & sname)
virtual

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

  • обычные теги
  • секции - могут находиться ТОЛЬКО в строках таблицы.

Для подстановки значений обычных тегов необходимо выполнить setValue() где name = PARAM (сейчас #define PARAM "param") а value - значение для подстановки. Потом выполнить exec() с параметром = имени тега. Для подстановки секций необходимо задать нужные параметры, используя setValue() а потом выполнить exec() с именем секции. exec может вызываться нужное число раз как для обычных тегов, так и для секций

Переопределяет метод предка iTemplate.

Перекрестные ссылки docStyle, docTpl, getValue(), searchTags() и setValue().

◆ getDir()

QString aOOTemplate::getDir ( )
virtual

Возвращает рабочую директорию

Переопределяет метод предка iTemplate.

◆ getNodeTags()

bool aOOTemplate::getNodeTags ( QDomNode node,
const QString & tagname,
bool params )
protectedvirtual

Возвращает истину, когда текст ноды содержит тег с заданным именем.

Аргументы
node- узел, с которого осуществляется поиск.
sname- имя тега для поиска
params- true, если ищется обычный тег и false, если ищется тег секции

Переопределяется в aCalcTemplate.

Используется в searchTags().

◆ getValue()

QString aOOTemplate::getValue ( const QString & name)
virtual

Возвращает значение параметра по его имени.

Переопределяет метод предка iTemplate.

Перекрестные ссылки aLog::print().

Используется в exec(), aCalcTemplate::insertTagsValues() и insertTagsValues().

◆ insertRowValues()

void aOOTemplate::insertRowValues ( QDomNode node)
protected

Вставляет новую строку в таблицу, заменяет теги на значения, удаляет тег секции из строки таблицы. Выполняет рекурсивный поиск узла, содержащего строку таблицы. У этого узла в OpenOffic'е есть специальное имя, которое распознается функцией. После того, как узел найден, строка строка дублируется, а из текущей строки удаляются все теги секции, чтобы избежать мнократного размножения строк таблицы.

См. также
searchTags()

Перекрестные ссылки clearTags() и searchTags().

Используется в searchTags().

◆ insertTagsValues()

void aOOTemplate::insertTagsValues ( QDomNode node,
const QString & tagName )
protectedvirtual

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

Аргументы
node- узел к которому добавляется значение
sname- имя тега

Переопределяется в aCalcTemplate.

Перекрестные ссылки getValue().

Используется в searchTags().

◆ lineFeedRemove()

bool aOOTemplate::lineFeedRemove ( const QString & filename)
virtual

Удаляет из файла переносы строк

Перекрестные ссылки aLog::print().

Используется в save().

◆ open()

bool aOOTemplate::open ( const QString & fname)
virtual

Открывает шаблон. Распаковывает его во временный каталог в директории /tmp

Аргументы
fnameимя шаблона

Замещает iTemplate.

Перекрестные ссылки copyName, docStyle, docTpl, aLog::print() и templateDir.

◆ result()

QString aOOTemplate::result ( )
virtual

Возвращает результат, т.е. шаблон в текстовом виде. Включена в интерфейс временно.

Переопределяет метод предка iTemplate.

Перекрестные ссылки docTpl.

◆ save()

bool aOOTemplate::save ( const QString & fname)
virtual

Сохраняет шаблон в файл с заданным именем. Перед сохранением необходимо выполнить функцию cleanUpTags() чтобы удалить тэги из сохраняемого документа.

Переопределяет метод предка iTemplate.

Перекрестные ссылки copyName, docStyle, docTpl, lineFeedRemove(), aLog::print() и templateDir.

◆ searchTags()

void aOOTemplate::searchTags ( QDomNode node,
const QString & sname )
protected

Рекурсивная функция поиска и замены тегов на их значения в node. Не заменяет теги, а дописывает значения в конец. Для удаления тэгов используйте функцию cleanUpTags()

Аргументы
node- узел, с которого осуществляется поиск.
sname- имя тега для поиска
См. также
cleanUpTags() getNodeTags() insertRowValues()

Перекрестные ссылки getNodeTags(), insertRowValues(), insertTagsValues() и searchTags().

Используется в exec(), insertRowValues() и searchTags().

◆ setDir()

void aOOTemplate::setDir ( const QString & dir)
virtual

Устанавливает рабочую директорию

Переопределяет метод предка iTemplate.

Перекрестные ссылки templateDir.

◆ setValue()

void aOOTemplate::setValue ( const QString & name,
const QString & value )
virtual

Устанавливает значение параметра по его имени.

Переопределяет метод предка iTemplate.

Используется в exec().

Данные класса

◆ copyName

QString aOOTemplate::copyName
protected

Имя директории для распаковки

Используется в close(), open() и save().

◆ docStyle

QDomDocument aOOTemplate::docStyle
protected

Переменная для хранения стилей (колонтитулы в т.ч.) распакованного шаблона.

Используется в cleanUpTags(), close(), exec(), open() и save().

◆ docTpl

QDomDocument aOOTemplate::docTpl
protected

Переменная для хранения содержимого распакованного шаблона.

Используется в cleanUpTags(), close(), exec(), open(), result() и save().

◆ templateDir

QString aOOTemplate::templateDir
protected

Имя директории шаблонов

Используется в open(), save() и setDir().


Объявления и описания членов классов находятся в файлах: