Ananas Library 0.9.5
Класс aEngine

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

#include <engine.h>

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

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

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::aEngine ( )

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

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

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

◆ ~aEngine()

aEngine::~aEngine ( )
virtual

Деструктор.

Методы

◆ cfgname

QString aEngine::cfgname ( )
slot

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

◆ commitTransaction

bool aEngine::commitTransaction ( )
slot

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

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

◆ Date

QString aEngine::Date ( )
slot

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

◆ done()

void aEngine::done ( )
virtual

Заглушка.

◆ enterValue

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

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

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

◆ execAction

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

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

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

Перекрестные ссылки code, md, openEmbedCatalogueEditor(), openForm() и sourcePreprocessor().

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

◆ init()

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

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

Перекрестные ссылки code, db, md, project и sourcePreprocessor().

◆ Message

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

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

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

◆ on_MenuBar

void aEngine::on_MenuBar ( int id)
slot

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

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

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

◆ on_systemstart()

int aEngine::on_systemstart ( )

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

См. также
on_systemstop()

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

◆ on_systemstop()

int aEngine::on_systemstop ( )

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

См. также
on_systemstart()

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

◆ openEmbedCatalogueEditor()

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().

◆ OpenForm

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, если форма не создана

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

◆ openForm()

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, если форма не создана

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

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

◆ rollbackTransaction

bool aEngine::rollbackTransaction ( )
slot

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

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

◆ settimer

void aEngine::settimer ( int sec,
QString proc )
slot

◆ setValue

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

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

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

◆ sourcePreprocessor()

QString aEngine::sourcePreprocessor ( const QString & src)

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

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

◆ startTransaction

bool aEngine::startTransaction ( )
slot

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

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

◆ StatusMessage [1/2]

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

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

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

◆ StatusMessage [2/2]

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

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

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

◆ Time

QString aEngine::Time ( )
slot

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

◆ timerEvent()

void aEngine::timerEvent ( QTimerEvent * e)

Заглушка.

◆ value

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

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

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

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

◆ code

QSInterpreter* aEngine::code

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

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

◆ db

◆ md

aCfg* aEngine::md

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

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

◆ next_obj_id

int aEngine::next_obj_id

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

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

◆ project

QSProject aEngine::project

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

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

◆ wl

aWindowsList* aEngine::wl

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

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

◆ ws

QWidget* aEngine::ws

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

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


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