Класс aMSOTemplate

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

#include <amsotemplate.h>

Граф наследования:aMSOTemplate:

iTemplate

Полный список членов класса

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

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 cleanUpTags ()
virtual void setDir (const QString &dir)
virtual QString getDir ()

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

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)
void clearAttributes (QDomNode n, const QString node, const QString attr)
int getRowIndex (QDomNode node)

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

QMap< QString, QString > values
QString templateDir
QDomDocument docTpl


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

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

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


Методы

bool aMSOTemplate::open ( const QString &  fname  )  [virtual]

Открывает шаблон.

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

Замещает iTemplate.

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

void aMSOTemplate::close (  )  [virtual]

Закрывает шаблон.

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

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

void aMSOTemplate::clear (  )  [virtual]

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

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

QString aMSOTemplate::getValue ( const QString &  name  )  [virtual]

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

Аргументы:
name - имя параметра

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

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

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

void aMSOTemplate::setValue ( const QString &  name,
const QString &  value 
) [virtual]

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

Аргументы:
name - имя параметра
value - значение параметра

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

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

QString aMSOTemplate::exec ( const QString &  sname  )  [virtual]

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

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

Аргументы:
sname - имя параметра

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

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

QString aMSOTemplate::result (  )  [virtual]

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

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

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

bool aMSOTemplate::save ( const QString &  fname  )  [virtual]

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

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

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

void aMSOTemplate::cleanUpTags (  )  [virtual]

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

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

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

void aMSOTemplate::setDir ( const QString &  dir  )  [virtual]

Сохраняет в переменную template расположение шаблона

Аргументы:
dir - Каталог в котором находится шаблон

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

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

QString aMSOTemplate::getDir (  )  [virtual]

Каталог для хранения временных файлов отчета

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

void aMSOTemplate::searchTags ( QDomNode  node,
const QString &  sname 
) [protected]

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

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

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

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

bool aMSOTemplate::getNodeTags ( QDomNode  node,
const QString &  tagname,
bool  params 
) [protected, virtual]

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

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

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

void aMSOTemplate::insertRowValues ( QDomNode  node  )  [protected]

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

Аргументы:
node - узел, в который происходит вставка
См. также:
searchTags()

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

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

void aMSOTemplate::insertTagsValues ( QDomNode  node,
const QString &  tagName 
) [protected, virtual]

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

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

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

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

void aMSOTemplate::clearTags ( QDomNode  node,
bool  section 
) [protected]

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

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

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

void aMSOTemplate::clearRow ( QDomNode  node  )  [protected]

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

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

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

void aMSOTemplate::clearAttributes ( QDomNode  node,
const QString  nodename,
const QString  attr 
) [protected]

Рекурсивная функция. Удаляет из узла атрибут

Аргументы:
node - узел из которого нужно удалить атрибут
nodename - имя узла
attr - имя атрибута,который нужно удалить

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

int aMSOTemplate::getRowIndex ( QDomNode  node  )  [protected]

Определяет номер строки в шаблоне

Аргументы:
node - узел Row для которого определяется индекс

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


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

QString aMSOTemplate::templateDir [protected]

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

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

QDomDocument aMSOTemplate::docTpl [protected]

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

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


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

Документация по Ananas Library. Последние изменения: Mon Jul 14 11:53:55 2008. Создано системой  doxygen 1.5.5