Класс aEngine

Определяет программный интерфейс Runtime системы, который используется Ананас скриптом. Наследует QObject. Подробнее...

#include <engine.h>

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

Открытые слоты

QString cfgname ()
QString Time ()
QString Date ()
void Exit ()
void Message (int n, const QString &msg)
void StatusMessage (const QString &msg)
void StatusMessage (const QString &msg, const int &pos)
void settimer (int sec, QString proc)
aFormOpenForm (QString fname, int mode=0, aObject *selecter=0, bool modal=false)
aFormOpenForm (QString fname, int mode, int ido, aObject *selecter=0, bool modal=false)
 Создает и открывает новую форму.
QVariant value (const QString &name)
void setValue (const QString &name, QVariant value=QVariant::Invalid)
void on_MenuBar (int id)
void execAction (aCfgItem &act, QObject *context=0)
aDataFieldenterValue (const QString &FieldType, const QString &title="")
bool startTransaction ()
bool commitTransaction ()
bool rollbackTransaction ()

Сигналы

void statusMessage (const QString &msg)
void statusMessage (const QString &msg, const int &pos)
void statusIcon (const int &status)
void event (const QString &source, const QString &data)

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

 aEngine ()
virtual ~aEngine ()
virtual bool init (const QString &rcfile)
virtual void done ()
void openEmbedCatalogueEditor (int oid, QWidget *parent=NULL, const bool toSelect=true)
QString sourcePreprocessor (const QString &src)
void timerEvent (QTimerEvent *e)
int on_systemstart ()
int on_systemstop ()
aFormopenForm (int oid, int fid=0, int defaultfor=1, int mode=0, ANANAS_UID id=0, aWidget *caller=0, bool modal=false)
 Создает и открывает новую форму.

Открытые атрибуты

aDatabase db
aCfgmd
QWidget * ws
aWindowsListwl
QSInterpreter * code
QSProject project
int next_obj_id


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

Определяет программный интерфейс Runtime системы, который используется Ананас скриптом. Наследует QObject.

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


Конструктор(ы)

aEngine::aEngine (  ) 

Конструктор. Создает новый объект с именем "sys". Доступ к функциям этого объекта из Ананас.Скрипта возможен примерно так:

        sys.Date(); // текущая дата
        sys.OpenForm("DocJournal.Системный журнал.Form.Список документов"); // открывает форму "Список Документов" журнала "Системный журнал"

Перекрестные ссылки md и next_obj_id.

aEngine::~aEngine (  )  [virtual]

Деструктор.


Методы

bool aEngine::init ( const QString &  rcfile  )  [virtual]

Инициализирует объект. Инициализирует скриптовую систему, добавляет несколько глобальных функций.

Перекрестные ссылки aDatabase::cfg, code, db, aCfg::find(), aDatabase::init(), md, project, sourcePreprocessor() и aCfg::sText().

void aEngine::done (  )  [virtual]

Заглушка.

void aEngine::openEmbedCatalogueEditor ( int  oid,
QWidget *  parent = NULL,
const bool  toSelect = true 
)

Создает и открывает новую форму встроенного редактора каталога.

Аргументы:
oid - id каталога конфигурации,
parent - родительский объект wField
toSelect - Режим. true - выбор, false - редактирование

Перекрестные ссылки db, wCatalogEditor::edit(), wCatalogEditor::initCat(), wCatalogEditor::select() и ws.

Используется в execAction() и wField::fieldSelect().

QString aEngine::sourcePreprocessor ( const QString &  src  ) 

Функция препроцессора исходного текста скрипта. Для разработчиков: В первую очередь может быть использована для замены коротких имен из локального контекста на квалифицированные имена глобальных функций и объектов, например Message() в контексте формы может заменяться на global.Message() перед выполнением скрипта и выполняться корректно из любого места. В противном случае приходится дублировать глобальные встроенные функции во всех контекстах.

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

void aEngine::timerEvent ( QTimerEvent *  e  ) 

Заглушка.

int aEngine::on_systemstart (  ) 

Автоматически вызывается при старте системы. Если в глобальном модуле определа функция on_systemstart() то она будет автоматически вызвана. Это можно использовать для открытия документов или журналов при старте системы, или каких-либо других действий.

См. также:
on_systemstop()

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

int aEngine::on_systemstop (  ) 

Автоматически вызывается при остановке системы. Если в глобальном модуле определа функция on_systemstop() то она будет автоматически вызвана.

См. также:
on_systemstart()

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

aForm * aEngine::openForm ( int  formOwnerId,
int  formId = 0,
int  defaultfor = 1,
int  mode = 0,
ANANAS_UID  id = 0,
aWidget caller = 0,
bool  modal = false 
)

Создает и открывает новую форму.

Форма создается с учетом её id в конфигураци и действия, режима работы (просмотр, редактирование, создание нового объекта). Форма должна поддерживать тот режим, для которого она открывается. Если форма открыта для просмотра она открывается в режиме отлько чтение. Если id формы равно 0, делается попытка найти первую форму с требуемым режимом. При необходимости поля формы заполняются в соответствии с параметром id

Аргументы:
formOwnerId - идентификатор владельца формы в метаданных бизнес-схемы
formId - идентификатор формы в метаданных бизнес-схемы
defaultfor - режим работы формы
mode - пока не используется
id - идентификатор объекта в базе данных, для которого открывается форма. Используется только в режиме просмотра или редактирования
caller - Вызывающий данную функцию объект. Он будет обновлен автоматически при закрытии формы
modal - является ли окно модальным
Возвращает:
ссылку на новую форму или 0, если форма не создана

Перекрестные ссылки aWindowsList::find(), aCfg::find(), aWindowsList::get(), aCfg::getDefaultFormId(), md, aForm::New(), aLog::print(), aForm::Select(), aForm::setMode(), aForm::SetReadOnly(), aForm::Show(), wl и ws.

Используется в wDBTable::EditElement(), execAction(), wField::fieldSelect() и OpenForm().

QString aEngine::cfgname (  )  [slot]

Заглушка. Возвращает всегда строку "???" В будущем возможно будет возвращать имя конфигурации.

QString aEngine::Time (  )  [slot]

Возвращает строковое представление текущего времени в формате "hh:mm:ss"

QString aEngine::Date (  )  [slot]

Возвращает строковое представление текущей даты в формате "dd.MM.yy"

void aEngine::Message ( int  n,
const QString &  msg 
) [slot]

Вывод сообщений.

Аргументы:
n - тип сообщения. 0 - уведомление, 1 - предупреждение, 2 - ошибка.
msg - текст сообщения.
См. также:
cfg_message(int msgtype, const char *msgfmt,...)

void aEngine::StatusMessage ( const QString &  msg  )  [slot]

Вывод сообщений в строке состояния.

Аргументы:
msg - текст сообщения.

void aEngine::StatusMessage ( const QString &  msg,
const int &  pos 
) [slot]

Вывод сообщений в строке состояния в целевую метку. pos модет принимать любые значения. Если метка не 1, 2 или 3, то сообщение выводится в StatusBar на 3 секунды.

Аргументы:
msg - текст сообщения,
pos - номер метки.

aForm * aEngine::OpenForm ( QString  formName,
int  mode,
int  ido,
aObject selector = 0,
bool  modal = false 
) [slot]

Создает и открывает новую форму.

Форма создается с учетом её id в конфигураци и действия, режима работы (просмотр, редактирование, создание нового объекта). Форма должна поддерживать тот режим, для которого она открывается. Если форма открыта для просмотра она открывается в режиме отлько чтение. Если id формы равно 0, делается попытка найти первую форму с требуемым режимом.

Аргументы:
formName - имя формы, например, "DocJournal.Системный журнал.Form.Список документов" или "Catalogue.Константы.Form.Форма редактора констант".
mode - режим работы формы
selector - идентификатор объекта в базе данных, для редактирования которого открывается форма
modal - является ли окно модальным
Возвращает:
ссылку на новую форму или 0, если форма не создана

Перекрестные ссылки aCfg::attr(), aCfg::find(), md, openForm(), aCfg::parent() и aObject::sysValue().

QVariant aEngine::value ( const QString &  name  )  [slot]

Получение значения глобальной переменной.

void aEngine::setValue ( const QString &  name,
QVariant  value = QVariant::Invalid 
) [slot]

Установка значения глобальной переменной.

void aEngine::on_MenuBar ( int  id  )  [slot]

Запускает действие

Аргументы:
id - идентификатор действия в метаданных.

Перекрестные ссылки aCfg::count(), execAction(), aCfg::find(), aCfg::findChild(), md и aCfg::text().

void aEngine::execAction ( aCfgItem &  act,
QObject *  context = 0 
) [slot]

Вспомогательный метод. Запускает действие в указанном контексте. Правильная работа не гарантируется (где-то там ошибки есть).

Аргументы:
act - ссылка на объект метаданных, описывающий действие
context - контекст выполнения действия.

Перекрестные ссылки aCfg::attr(), code, aCfg::find(), aCfg::getDefaultFormId(), md, openEmbedCatalogueEditor(), openForm(), sourcePreprocessor() и aCfg::sText().

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

aDataField * aEngine::enterValue ( const QString &  FieldType,
const QString &  title = "" 
) [slot]

Установка значения глобальной переменной.

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

bool aEngine::startTransaction (  )  [slot]

Открывает транзакцию в БД, при поддержке со стороны драйвера.

Перекрестные ссылки db и aDatabase::transaction().

bool aEngine::commitTransaction (  )  [slot]

Закрывает транзацкию.

Перекрестные ссылки aDatabase::commit() и db.

bool aEngine::rollbackTransaction (  )  [slot]

ОТменяет действия с БД внутри транзакции.

Перекрестные ссылки db и aDatabase::rollback().


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

Соединение с базой данных.

Используется в aForm::aForm(), aObjectsFactory::aObjectsFactory(), commitTransaction(), init(), openEmbedCatalogueEditor(), rollbackTransaction() и startTransaction().

ссылка на метаданные.

Используется в aEngine(), aReport::aReport(), execAction(), init(), on_MenuBar(), openForm() и OpenForm().

QWidget* aEngine::ws

ссылка на рабочее пространство.

Используется в aReport::aReport(), aObjectsFactory::create(), enterValue(), openEmbedCatalogueEditor() и openForm().

ссылка на список окон.

Используется в aForm::Close(), aForm::init() и openForm().

QSInterpreter* aEngine::code

ссылка на интерпретатор скрипта.

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

QSProject aEngine::project

ссылка на проект.

Используется в init(), aForm::init(), on_systemstart(), on_systemstop(), aForm::Show() и aForm::SignIn().

номер для обеспечения уникальных имен при открытии форм.

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


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

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