Описание платформы

Платформа предназначена для быстрой разработки приложений (программ, конфигураций), использующих СУБД (системы управления базами данных) с применением двухзвенной архитектуры. Для создания платформы используется язык программированияPython 2.7 и библиотека PyQt.

Поддерживаемые СУБД: SQLite,  MySql (в перспективе — PostgreSql, ODBC-совместимые).

Используемые инструменты позволяют создать комфортные условия для пользователя. Например, имеется возможность выбрать комфортные размер и начертание шрифта любого элемента программы.interface_setup Для организации рабочего пространства используется главное окно с закладками. Пользователь имеет возможность открыть любое количество независимых «рабочих столов» (закладок), и свободно переключаться между ними. В пределах каждого «рабочего стола» каждое открываемое окно делает недоступным предидущее окно. Такой подход облегчает работу с большим количеством информации на экране.

Состав и общая схема работы платформы показана на рисунке:

PlatformPenta

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

  • Описание экранов
  • Генерация базы данных (БД)
  • Разработка печатных форм

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

Особенностью платформы является подход к созданию интерфейса пользователя.

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

По описанию экранов платформа может создавать таблицы в БД. «Тонкая» настройка БД производится с использованием инструментов конкретных БД. При работе платформа также использует информацию описания экранов для проверки логической целостности БД (например: запрет удаления строки из таблицы БД, если на нее ссылается поле из другой таблицы БД).

Описание также хранит фрагменты кода, исполняемые при определенных событиях. При «выполнении» экрана происходит его динамическая сборка и отображение. При работе пользователь может изменять размеры окон, при этом содержимое окна автоматически «подстраивается».

В настоящее время поддерживаются три вида экранов:

  • Таблицы
  • Диалоги
  • Витрины

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

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

table_dialogsc_line1

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

sc_menusc_line2

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

Витрина — окно содержащее списки «срезов», «фактов», таблицу с числовыми данными и иллюстрирующую их диаграмму. Пользователь, меняя значения «срезов» и устанавливая фильтры, получает возможность проводить быстрый анализ информации. Полученные варианты таблиц и графическая интерпретация могут быть выведены на печать, открыты в Excel, скопированы для последующей вставки.

dashboarddashboard2

Отчеты

Платформа содержит собственный редактор и генератор отчетов, позволяющий создавать запросы к БД и генерировать документы для просмотра и печати в форматах PDF, RTF, XLS. Предусмотрена возможность использования вложенных отчетов и функций на языке Python.

report_designer       report_data_sources

Инструмент Таблицы предназначен для динамического создания многомерных табличных отчетов с неизвестным заранее  количеством столбцов(cross-tab report).

ct1 ct2 ct3 ct4ct5 ct_columns

Разработчик может выносить повторяющиеся фрагменты кода в Модули. Также предусмотрены модули, выполняющиеся при определенных событиях (например: загрузка программы).

modules

Используя инструмент Запросы можно выполнять произвольные запросы к базе данных. исключить дублирование кода SQL-запросов к БД.

sql_query

Вся «программа» (описание экранов, отчеты, модули) хранится в БД. Для хранения данных и «программы» используются разные БД, поэтому можно одну «программу» использовать для работы с разными данными. Например: «программа» хранится в БД SQLite, а используется для работы с информацией, хранящейся в БД SQLite, MySql, PostgreSql. Для управления загрузкой программы используется менеджер загрузки (Выбор базы данных).

Для копирования и переноса данных и программ разработан инструмент Управление, с помощью которого легко производится перенос данных между БД (в том числе между СУБД разных типов), осуществляется резервное копирование, а также обновление программ (в том числе через Интернет, если программа была опубликована на сайте).

penta_control_center

Видео процесса разработки фрагмента программы смотрим здесь.

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