Пример DBGate 02 - Продвинутые возможности DBGate

Этот пример демонстрирует продвинутые возможности DBGate для создания приложений.

Выберите платформу для примеров:

Ниже представлена схема базы данных примера:

Диаграмма базы данных примера кассовой книги

SaveToDB Framework

SaveToDB Framework — это набор таблиц для настройки приложений плагина SaveToDB для Microsoft Excel, настольного приложения DBEdit и веб-приложений DBGate.

Вы можете загрузить SaveToDB Framework для SQL Server, Oracle Database, MySQL и PostgreSQL на странице SaveToDB SDK.

Ссылка на документацию. Таблицы ниже содержат все настройки примера. Далее рассмотрим детали.

Форматы можно сохранять только в плагине SaveToDB. DBGate не использует таблицу xls.workbooks.

Списки значений ячеек и параметров

DBGate автоматически читает определения внешних ключей и создает списки значений для таблиц.

Также DBGate создает списки для хранимых процедур и представлений, если исходное определение объектов доступно для анализа.

Обычно пользователи не имеют разрешения VIEW DEFINITION, поэтому DBGate не может получить доступ к исходному SQL коду.

В этом случае разработчики могут настроить списки значений в таблице xls.handlers.

Ниже приведены примеры с разными списками значений для различных наборов разрешений:

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

Ниже приведены настройки для списков значений параметров и ячеек:

Для определения списков можно использовать таблицы, представления, хранимые процедуры, SQL код и заданные списки.

Сохранение изменений в таблицу

DBGate позволяет сохранять изменения данных таблиц по умолчанию.

Также DBGate автоматически определяет таблицу для представлений и процедур, если доступен SQL код объектов.

Примеры ниже используют эту возможность:

Разработчики могут вручную определить целевую таблицу в таблице xls.objects.

Сохранение изменений хранимыми процедурами

DBGate поддерживает сохранение изменений с помощью хранимых процедур для операций insert, update и delete.

Наиболее простой подход — создать такие процедуры с суффиксами _insert, _update и _delete. В этом случае DBGate автоматически связывает их с базовым объектом.

Если в вашей базе данных используются другие принципы или необходимо использовать единые процедуры для нескольких объектов, можно настроить процедуры в таблице xls.objects. Например, см. настройку для процедуры s02.usp_cashbook5.

Вы можете найти исходный код процедур сохранения в браузере кода ниже.

Вы можете генерировать такие процедуры, используя SaveToDB Developer Framework for SQL Server. Загрузите его со страницы SaveToDB SDK. Для запуска процедур используйте плагин SaveToDB.

Ниже приведен пример процедуры, которая использует хранимые процедуры для сохранения изменений:

Сохранение изменений обработчиками событий изменения ячеек

DBGate позволяет использовать хранимые процедуры и SQL код для проверки и сохранения изменений.

Наиболее простой способ — создать хранимую процедуру обработчика с суффиксом _change. В этом случае DBGate автоматически свяжет ее.

В противном случае требуется привязка обработчика в таблице xls.handlers. См. пример для процедуры s02.usp_cashbook3.

Обратите внимание на слово _Commit в поле TARGET_WORKSHEET. Оно подтверждает изменения в клиенте для кнопки "Сохранить", а не на сервере.

В качестве обработчиков событий изменения ячейки можно указать саму таблицу или представление. В этом случае DBGate обновляет таблицу или представление сразу после изменения ячейки. См. пример для s02.view_cashbook2.

Попробуйте эти примеры:

Взгляните на SQL код процедуры usp_cashbook_change. Она имеет параметры: @column_name, @cell_value, @cell_number_value, @cell_datetime_value и @id. Их достаточно для обновления целевой таблицы, и код процедуры достаточно простой.

Обработчики событий можно генерировать с помощью SaveToDB Developer Framework for SQL Server.

Использование SQL кода

DBGate поддерживает использование SQL аналогично хранимым процедурам.

Объекты в виде SQL кода можно определять в таблицах xls.objects и xls.handlers. Ниже приведены примеры:

Вы можете использовать эту технику для добавления возможностей в базу данных, на которую у вас нет прав. Попросите администратора установить SaveToDB Framework, и вы сможете настраивать приложения самостоятельно.

Перевод интерфейса и данных

DBGate определяет язык пользователя по URL или из настроек браузера.

Перевод элементов интерфейса клиента DBGate находится в файле db-languages.js. В него можно легко добавить или изменить требуемый язык.

Также DBGate передает язык хранимым процедурам через параметры @DataLanguage или @data_language.

Таким образом, приложения могут вернуть данные на нужном языке. См. пример таблицы xls.translations.

Например, выберите язык и откройте пример ниже.

Кроме того, отчет содержит обработчик событий изменения ячеек, так что данные можно менять непосредственно в нем.

Использование формул

DBGate поддерживает подмножество формул Excel для расчета значений в браузере.

Формулы можно определять в представлениях, хранимых процедурах и объектах в виде SQL кода.

Ниже приведен пример расчета колонки остатка нарастающим итогом.

Условное форматирование

Для условного форматирования можно использовать два подхода:

Первый подход используется в примере usp_cash_by_months. Он содержит правила в файле page.css.

Также HTML страница содержит список колонок, которые используются в условном форматировании:

<script type="application/odatadb+json">
    {"data_row_fields":["row_format","section","level","row_bold"]}
</script>

Соответственно, DBGate устанавливает значения ячеек в атрибуты строк как data-row_format, data-section и т.д.

Можно использовать стили для чисел: gt0, eq0 и lt0.

Второй подход используется в примере budget reports приложения Gartle Budgeting.

Он загружает правила форматирования из таблицы xls.handlers.

Для создания таких правил на основе форматирования Excel можно использовать бесплатную редакцию плагина SaveToDB. Используйте пункт меню "Мастера", "Инструменты разработчика", "Показать формат таблицы".

Метаданные и сервисный документ

DBGate создает модели на основе объектов базы данных, читая их под логином пользователя.

Таким образом, пользователь видит объекты, извлекает данные и выполняет процедуры, на которые имеет разрешения в базе данных.

Поскольку DBGate анализирует SQL код представлений и хранимых процедур и настраивает возможности автоматически, модель сервиса зависит от наличия разрешения VIEW DEFINITION у пользователя.

Разработчики могут настраивать возможности приложений с помощью SaveToDB Framework, добавляя пользователей в роль xls_users. В этом случае модель будет включать и все настроенные возможности.

Попробуйте эти примеры с разными разрешениями и ролями пользователей.

DBGate отображает сервисные документы как таблицы содержания. Например, попробуйте следующую ссылку.

Заключение

Продукт ориентирован на разработчиков баз данных.

Разработчики могут создавать корпоративные веб-приложения, используя только навыки разработки баз данных.

DBGate поддерживает SQL Server, Oracle Database, MySQL и PostgreSQL.

Продукт можно установить на Windows и Linux.

Браузер кода



DBGate генерирует веб-формы автоматически на основе объектов базы данных. Например, для формы cashbook используется только определение таблицы s02.cashbook.

Вы можете загрузить примеры для SQL Server, Oracle Database, MySQL и PostgreSQL на странице SaveToDB SDK.