Описание
DCL5 – представляет скриптовый, интерпретируемый язык, для создания интерфейса приложения использующего какую-либо СУБД. Он описывает, что должен содержать диалог, какие действия будут производиться при нажатии описанных кнопок.
При написании приложений на этом языке Вам не надо заботиться о размещении и компоновке визуальных элементов, это за Вас сделает сам DCL5.
Основная часть бизнес-логики, должна быть реализована средствами самой СУБД и её хранимыми процедурами, триггерами и т.д.
Концепция DCL5, в том, что используя ограниченный набор специальных визуальных компонент, создать полноценное бизнес-приложение, притом, эти компоненты являются макро-компонентами, включающими несколько сложных действий, порою, скрытых от разработчика, дабы не отягчать его излишней черновой работой, из которых подобно блокам складывается интерфейс приложения.
Кроме интерфейсной части, язык содержит в себе средства манипуляции данных и организации простой бизнес-логики.
Код, который оперирует визуальными компонентами, отделён от кода манипуляции данных и бизнес-логики, хотя это не строгое разделение.
В платформе используется разветвлëнная система прав, с помощью которой можно разграничить меню приложения. Так же можно вплести разграничения по правам в логику конфигурации. Для построения отчëтов, в платформе предусмотрена интеграция с двумя офисными пакетами, можно строить как табличные, так и тестовые ответы. Так же есть просто текстовые ответы, в виде простых текстовых файлов. С помощью них всех, можно построить довольно сложные ответы, использую шаблоны документов.
Запуск платформы возможен на практически всех десктопных ОС.
Сборка
Сборка осуществляется последними версиями среды Lazarus, для Вашей ОС. Список основных опций проекта находится в файле DefineType.pas.
Зависимости только базовые из Lazarus.
‘*’ - ОС для которых/под которыми собирается DCL.
Почему нет бинарников в разделе Релиз?
Потому что в любой момент можно с помощью доступной и бесплатной среды, собрать себе последнюю версию платформы и получить сразу всё самое новое.
Структура и работа программных модулей
Всё начинается с класса TDCLMain
, он отвечает за вызов всех других классов приложения, именно с него начинается запуск приложения. Класс расширен интерфейсом IDCLMain
для инъекции зависимостей в другие модули платформы.
Другой, не обязательный, класс TDCLMenu
, строит главное меню приложения и при выборе элементов, запускает соответствующие диалоги и команды. Существование платформы возможно и без этого класса, достаточно запустить лишь один диалог или команду, либо выполнить командный скрипт. На самом деле, TDCLMenu
не запускает ничего, он просит это сделать TDCLMain
.
Идём далее, итак, элемент меню выбран, что происходит дальше?
В дело вступает командный процессор TDCLCommand
. При вызове диалога он подготавливает среду для запуска и создаёт экземпляр TDCLForm
, класса отвечающего за диалоги в платформе. Если это запуск командного скрипта или команды, то далее всё делает сам TDCLCommand
.
Класс TDCLForm
создаёт диалог и меню диалога, а так же частично отвечает за сохранение позиций окон.
В TDCLForm
всегда будет хотя бы один экземпляр класса TDCLGrid
. Это класс визуальных элементов редактирования набора данных и управления (кнопки). TDCLGrid
это макрокомпонент, на котором и построена платформа. TDCLGrid
может включать другие TDCLGrid
, в виде master-detail наборов данных или как вспомогательные компоненты просмотра НД. В TDCLGrid
создаются кнопки, которые вызывают TDCLCommand
для выполнения различных действий. TDCLGrid
обеспечивает сохранение набора и позиции полей в таблице.
Все перечисленные классы, расширены интерфейсами, для взаимной инъекции зависимостей.
Необходимый минимум готов.
Примечание
Этот проект является частью большой системы проектов о CRM DCL5.
Описание
Платформа приложений DCL