#include <aootemplate.h>
Открытые члены | |
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) |
Защищенные члены | |
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. Он предназначен для того, чтобы быстро создавать отчеты. Внешне шаблон отличается от того документа, который необходимо сгенерировать только наличием специальных тегов. Эти теги при генерации заменяются на конкретные значения.
Предусмотрено два типа тегов:
1) Тег секции
С помощью него можно размножать строки таблицы. Для этого надо просто записать его в любую ячейку строки.
Формат тега [:имя тега:]
В имени допустимы любые символы.
При вызове exec() с параметром = имени этого тега к таблице будет добавлена еще одна строка. Если в этой строке есть простые теги, то произойдет замена тега на значение, заданное с помощью функции setValue()
2) Простой тег.
С помощью него можно вставлять в документ обычный текст, дату, и т.п.
формат тега <:имя тега:>
При вызове exec() с параметром = имени этого тега, рядом допишется значение, предварительно заданное с помощью функции setValue()
Функция setValue() задает значения для подстановки. Для прстых тегов надо задавать setValue("param",значение для подстановки); после чего надо выполнить exec(имя простого тега)
Для тегов секции setValue(имя простого тега, значение для подстановки); после чего выполнить exec(имя секции);
bool aOOTemplate::open | ( | const QString & | fname | ) | [virtual] |
Открывает шаблон. Распаковывает его во временный каталог в директории /tmp
fname | имя шаблона |
Замещает iTemplate.
Перекрестные ссылки copyName, docStyle, docTpl, aLog::print() и templateDir.
void aOOTemplate::close | ( | ) | [virtual] |
void aOOTemplate::clear | ( | ) | [virtual] |
Обнуляет внутренние переменные.
Переопределяет метод предка iTemplate.
QString aOOTemplate::getValue | ( | const QString & | name | ) | [virtual] |
Возвращает значение параметра по его имени.
Переопределяет метод предка iTemplate.
Перекрестные ссылки aLog::print().
Используется в exec(), insertTagsValues() и aCalcTemplate::insertTagsValues().
void aOOTemplate::setValue | ( | const QString & | name, | |
const QString & | value | |||
) | [virtual] |
QString aOOTemplate::exec | ( | const QString & | sname | ) | [virtual] |
Выполняет подстановку значения параметра в шаблоне. Есть 2 типа тегов
Переопределяет метод предка iTemplate.
Перекрестные ссылки docStyle, docTpl, getValue(), searchTags() и setValue().
QString aOOTemplate::result | ( | ) | [virtual] |
bool aOOTemplate::save | ( | const QString & | fname | ) | [virtual] |
Сохраняет шаблон в файл с заданным именем. Перед сохранением необходимо выполнить функцию cleanUpTags() чтобы удалить тэги из сохраняемого документа.
Переопределяет метод предка iTemplate.
Перекрестные ссылки copyName, docStyle, docTpl, lineFeedRemove(), aLog::print() и templateDir.
void aOOTemplate::setDir | ( | const QString & | dir | ) | [virtual] |
Устанавливает рабочую директорию
Переопределяет метод предка iTemplate.
Перекрестные ссылки templateDir.
QString aOOTemplate::getDir | ( | ) | [virtual] |
Возвращает рабочую директорию
Переопределяет метод предка iTemplate.
void aOOTemplate::cleanUpTags | ( | ) | [virtual] |
Удаляет все теги из документа, а также строки, в которых содержится тег секции
Переопределяет метод предка iTemplate.
Перекрестные ссылки clearRow(), clearTags(), docStyle и docTpl.
bool aOOTemplate::lineFeedRemove | ( | const QString & | filename | ) | [virtual] |
void aOOTemplate::searchTags | ( | QDomNode | node, | |
const QString & | sname | |||
) | [protected] |
Рекурсивная функция поиска и замены тегов на их значения в node. Не заменяет теги, а дописывает значения в конец. Для удаления тэгов используйте функцию cleanUpTags()
node | - узел, с которого осуществляется поиск. | |
sname | - имя тега для поиска |
Перекрестные ссылки getNodeTags(), insertRowValues() и insertTagsValues().
Используется в exec() и insertRowValues().
bool aOOTemplate::getNodeTags | ( | QDomNode | node, | |
const QString & | tagname, | |||
bool | params | |||
) | [protected, virtual] |
Возвращает истину, когда текст ноды содержит тег с заданным именем.
node | - узел, с которого осуществляется поиск. | |
sname | - имя тега для поиска | |
params | - true, если ищется обычный тег и false, если ищется тег секции |
Переопределяется в aCalcTemplate.
Используется в searchTags().
void aOOTemplate::insertRowValues | ( | QDomNode | node | ) | [protected] |
Вставляет новую строку в таблицу, заменяет теги на значения, удаляет тег секции из строки таблицы. Выполняет рекурсивный поиск узла, содержащего строку таблицы. У этого узла в OpenOffic'е есть специальное имя, которое распознается функцией. После того, как узел найден, строка строка дублируется, а из текущей строки удаляются все теги секции, чтобы избежать мнократного размножения строк таблицы.
Перекрестные ссылки clearTags() и searchTags().
Используется в searchTags().
void aOOTemplate::insertTagsValues | ( | QDomNode | node, | |
const QString & | tagName | |||
) | [protected, virtual] |
Добавляет к тегу значение параметра tagName. После вызова этой функции тег не исчезает, и к нему можно добавить еще значения, которые добавятся к концу текста, содержащего тег.
node | - узел к которому добавляется значение | |
sname | - имя тега |
Переопределяется в aCalcTemplate.
Перекрестные ссылки getValue().
Используется в searchTags().
void aOOTemplate::clearTags | ( | QDomNode | node, | |
bool | section | |||
) | [protected] |
Удаляет рекурсивно теги из node.
node | - узел из которого нужно удалить теги | |
section | - true, если надо удалить тег секции |
Используется в cleanUpTags() и insertRowValues().
void aOOTemplate::clearRow | ( | QDomNode | node | ) | [protected] |
Рекурсивная функция. Удаляет строки, содержащие тег секции
node | - узел из которого нужно удалить строки |
Используется в cleanUpTags().
QString aOOTemplate::copyName [protected] |
QString aOOTemplate::templateDir [protected] |
QDomDocument aOOTemplate::docTpl [protected] |
QDomDocument aOOTemplate::docStyle [protected] |
Переменная для хранения стилей (колонтитулы в т.ч.) распакованного шаблона.
Используется в cleanUpTags(), close(), exec(), open() и save().