Пользовательские SQL Отчёты

Домой





Введение

Пользовательские SQL отчёты позволяют создавать уникальные отчёты под нужды пользователя. Это достигается с помощью менеджера SQL запросов, который может обращаться непосредственно к базе данных. Все пользовательские отчёты отображаются в дереве навигации MMEX.

Менеджер пользовательских отчётов SQL имеет следующие опции:

Заголовок отчёта Текстовое поле

Используется чтобы дать отчёту заголовок. По заголовку в панели навигации вы можете выбирать пользовательские отчёты.

Раздел Галочка

Заголовок может быть не связан с запросом. A Menu item has an associated script.

When Checked: Allows a title to be used as a Heading in the navigation tree.

Подменю Галочка

Если отмечено: Отчёт будет располагаться под одним из заголовков верхнего уровня.

SQL скрипт
Текстовое поле

Место куда вписываем SQL запрос.

Загрузить Кнопка

Загрузить запрос из файла.

Сохранить Кнопка

Сохранить запрос.

Выполнить Кнопка

Позволяет запустить запорос без закрытия диалога.
Warning: Script errors may result in loosing any changes made if not saved first.

Очистить Кнопка

Очистка поля для запросов.

Закрыть Кнопка

Закрыть диалог без сохранения.

После того, как запрос SQL создан и записан, он может быть выполнен из дерева навигации.

Создать новый отчёт SQL можно через:

Это действие откроет диалог менеджера отчетов SQL, а также позволяет пользователю напрямую написать сценарий и сохранить его в виде файла.

Полезные запросы можно найти на форуме MMEX в интернете. Найти соответсвующую страницу можно через меню:

Рекомендации:

Заметки:





Наверх

Домой





Запуск отчётов из дерева навигации

Отчеты, созданные в менеджере SQL отчетов, будут отображены в дереве навигации. Каждому отчёту присваивается имя при сохранении. Через название отчёта в дереве навигации можно:

Заголовок раздела можно сохранить без SQL запроса. Заголовок удобен для группировки отчётов. The navigation tree then behaves similar to the standard reports. Reports can only be nested one level deep.



Наверх

Домой





Структура базы данных

При создании SQL запросов, необходимо понимать структуру данных. В графическом представлении она выглядит следующим образом:

Basic Structure of MMEX

mmex db structure




Информация по таблицам

Далее в табличном виде представлена информация по основным таблицам с описанием.

Название таблицы

Описание

InfoTable_V1

This contains settings specific to the database.

CurrencyFormats_V1

Contains the Currency values for the database

AccountList_V1

Contains all the account names, and data specific to an account.

Payee_V1

Contains all payees, and the last category this payee used.

Category_V1

This is a list of all the categories in the system

SubCategory_V1

This is a list of all the sub-categories in the system

CheckingAccount_V1

This is the main table where all the transactions are maintained.

SplitTransactions_V1

Contains the data associated with Split Transactions



Таблицы не отображённые на диаграмме


Stock_V1

Used for Stocks, and is linked to table: AccountList_V1 using the HeldAt field

Assets_V1

Contains all asset details

BudgetYear_V1

The specific year for a budget

BudgetTable_V1

Budget details

BudgetSplitTransactions_V1

Split Transactions for budgets

BillDeposit_V1

This contains all the details for Repeating Transactions. Similar to table: CheckingAccountV1





Наверх

Домой





SQL Запросы (Введение)

Задача научить SQL программированию выходит за рамки этой документации, но следующее краткое руководство поможет понять скрипты, и, возможно, создавать свои собственные сценарии, если требуется.

При создании скриптов, главной командой, как правило, будет SELECT.

Основной формат:

SELECT <name>

<name> represents the field names of the table, or * for all names.

FROM <table>

<table> represents the table or tables the command is aimed at.

WHERE <condition is met>

[optional] here we test for some condition.

ORDER BY <parameter>

[optional] sorts the output by this parameter


Примеры:

SELECT * FROM AccountList_V1;
* Этот запрос вернёт все поля из таблицы: AccountList_V1

SELECT AccountName, Status FROM AccountList_V1 where AccountType = “Term”;
*
Этот запрос вернёт названия всех сберегательных счетов и их статус. Данные берутся из таблицы: AccountList_V1


Ниже пример более сложного запроса:


Хотя этот сценарий не имеет смысла, он демонстрирует некоторые основные принципы.

select pT.PayeeName payee,
    cT.CategName,
    scT.SubCategName
from payee_v1 pT,
    category_v1 cT,
    subcategory_v1 scT
where
    pT.categID = cT.categID and pT.subCategID = scT.subCategID
order by
    payee


В этом примере извлекаются данный из таблиц payee_v1 pT, category_v1 cT, subcategory_v1 scT. Каждой таблице добавлен краткий псевдоним для удобства. После слова select через запятую перечислены поля, данные по которым должны быть представлены в отчёте. После слова where  перечислены  необходимые условия, в данном случае заданы связи между таблицами.

Я надеюсь, что это кратное введение поможет снять завесу тайны с SQL програминга. В случае непоняток, обращайтесь на форум в раздел Custom SQL Report Scripts.



Наверх

Домой