Содержание
Быстрый старт
tmaplatform® - это среда разработки и исполнения приложений.
Платформа работает только совместно с базой данных (СУБД). Для работы с платформой вам нужно иметь одну из поддерживаемых платформой баз данных (установленную и запущенную на локальном или доступном по сети компьютере). Так же для разработки программы вам потребуется максимальные права доступа к серверу баз данных.
Мы советуем установить базу данных MySQL, потому что она является основной базой данных платформы и на данный момент единственной проверенной. Необходимо внести изменения в конфигурационный файл MySQL.
Вопросы установки и настройки баз данных описаны в соответствующем разделе.
После запуска платформы мы увидим окно выбора/создания базы данных:
В контестном меню запустите команду "Создать базу данных".
В следующей форме необходимо заполнить несколько полей:
После заполнения полей и нажатия ОК в списке баз данных появится ваша новая база. К которой надо подключиться, открыть редактор и начать разработку.
Разработаем простое приложение, которое будет учитывать входящие и исходящие платежи.
Разработка приложений в tmaplatform® основывается на визуальных средствах проектирования и встроенном языке программирования similar pascal с интегрированным SQL
При первом открытии редактора нашей программы (файл — редактор) мы увидим следующее:
Программа состоит из модулей. Все модули нашей программы располагаются в виде дерева в левой части редактора. У корня дерева любой программы есть вкладка Свойства программы, на которую мы обратим наше внимание.
Для разграничения прав доступа к объектам БД и программы, нам надо заполнить раздел Права доступа — Выбрать название таблицы, где будет храниться информация о пользователях программы (можно указать существующую таблицу, если такой таблицы нет, платформа создаст её) и заполнить в каких полях будет логин, ФИО, роль пользователя.
- Папка — для удобства разработчиков, для группировки объектов программы, для наглядности
- Справочник — форма списка, создается для какой-то определенной таблицы БД, автоматически формирует запрос для построения списка (в справочнике сразу после создания доступны: фильтрация по любым полям, сортировка, пользовательские настройки отображения, экспорт в популярные форматы файлов)
- Главное меню — меню главного окна.
- Роль — роли БД, которым можно присвоить свое главное меню.
- Таблица — Таблица БД.
- Вьюха (от view) — Представление БД.
- Форма — обычная экранная форма (например, для редактирования записи таблицы БД).
- Печатная форма — бэнд-ориентированный генератор печатных форм.
- Модуль — программный модуль на внутреннем языке платформы.
- Хранимая процедура — при разработке хранимых процедур и функций можно использовать внутренний SQL, при этом вы без проблем перейдете с одной СУБД на другую без переписывания этих процедур и функций.
- Автовьюха — вьюха, которая пишет запрос для себя самостоятельно, просто укажите необходимые поля, и в режиме проектирования приложения добавляйте участие таблиц в этой вьюхе. Не надо при добавлении нового документа, разбираться в запросе вьюхи и дополнять его, просто свяжите необходимые поля документа с полями автовьхи, остальное платформа сделает за вас. Удобный инструмент для построения отчетов.
Приступим к нашему первому приложению. Создадим в редакторе три папки — Справочники, Документы и Отчеты. В папке Справочники создадим нашу первую таблицу — Клиенты (dirClients). Рассмотрим процесс создания подробнее.
После того, как мы выбрали пункт контекстного меню «Создать — Таблицу», платформа создаст таблицу Table1 с полями id (Код) и Name (Наименование). В нашем случае все устраивает, кроме названия таблицы, переименуем ее в dirClients. Поле Код типа integer по умолчанию первичный ключ таблицы и счетчик (суррогатный ключ). Поле Наименование типа string является по умолчанию полем описания — теперь, если мы будем использовать идентификатор клиента в каких-то других таблицах (например, в платежных документах), платформа заменить в интерфейсе идентификатор наименованием. Вот для этого мы и указываем поле описания. Свойство таблицы «Поле предка» — для построения иерархических таблиц. Сразу после создания таблицы в редакторе выберем пункт меню «Применить на сервере» и увидим:
После применения изменений, наша таблица будет создана в БД. Также видно, что на вкладках редактора мы можем управлять индексами и триггерами нашей таблицы, но это выходит за рамки статьи быстрый старт. А если вы не знаете, что такое индексы и триггеры, то советуем Вам это поскорее узнать.
Теперь приступим к реализации пользовательского интерфейса для просмотра и редактирования нашей таблицы. Выберем таблицу в дереве объектов программы и в контекстном меню «Создать — Справочник» и все, форма для просмотра списка клиентов готова (с большими функциональными возможностями — фильтрация, поиск, сортировка, экспорт и другие). Также создадим форму — в контекстном меню выберем «Создать — Форму» и у нас готова форма для редактирования записи таблицы. После этих двух кликов мышкой платформа создала для нас два объекта — dirClientsReference и dirClientsForm — формы для просмотра и редактирования списка наших клиентов:
Таким же образом создадим пару таблиц, которые поместим в папку Документы: Входящий и Исходящий платежи (логичнее сделать один документ платеж с признаком направление, но для наглядности разделим на два документа). Таблицы docPayIn и DocPayOut с полями
- Id типа integer — код документа
- DocDate типа DateTime — дата документа
- ClientId типа *dirClients (вот в этом случае и будет использоваться наше «поле описания») — клиент
- Summa типа Currency — сумма платежа
Как видно из рисунка, помимо самих таблиц, платформа создаст внешние ключи, которые будут контролировать ссылочную целостность данных. При включении св-ва программы «Расширенное управление внешними ключами» мы сможем задать для созданных внешних ключей правила обновления и удаления, т. е. переложить контроль над целостностью данных на плечи СУБД (что она и должна делать). Так же, как и для таблицы с клиентами, сделаем для наших документов справочники для просмотра списков и формы для редактирования. После четырех кликов мышкой по контекстному меню, платформа создаст для нас следующие объекты — docPayInReference, docPayOutReference, docPayInForm и docPayOutForm. Все, теперь мы можем вести наш справочник клиентов и редактировать документы по их платежам.
Осталось только собрать все платежи в одном месте, чтобы строить по ним отчеты. Для этого в редакторе выберем пункт контекстного меню «Создать — Автовьюху» и создадим RepPays. Определим список полей:
- DocName типа String — Наименование документа
- DocId типа integer — Номер документа
- DocDate типа DateTime — Дата
- ClientId типа *dirClients (по факту integer) — клиент
- Summa типа currency — сумма платежа
После применения на сервере, во всех таблицах нашей программы появится вкладка «Участвует во вьюхах». Осталось только привязать поля наших документов к полям вьюхи (поля с одинаковыми названиями привяжутся автоматически), для этого во вкладке «Участвует во вьюхах» добавляем из списка всех автовьюх нужную нам RepPays и заполняем окно привязки полей:
Помимо связи полей, мы можем добавлять условия фильтрации (любое SQL-выражение) и произвольные поля (в нашем случае — Название документа). Остальные поля указываются из таблицы БД. Аналогичные операции проделаем для документа «Исходящий платеж», только поле «Сумма платежа» укажем со знаком минус. Для просмотра данных этого представления надо сделать соответствующий справочник (контекстное меню редактора).
Осталось добавить главное меню приложения — опять же через контекстное меню редактора. Добавить нужные нам пункты главного меню. В итоге мы получим работающее приложение следующего вида:
Следует отметить, что над любыми объектами редактора доступны операции Копирования/Вставки (при необходимости переноса части программы из одной в другую).
Не написав ни единой строчки программного кода, мы разработали за считанные минуты простое приложение, но функциональность созданного приложения достаточно высока — помимо манипуляций с данными (добавления, изменения, удаления), пользователю доступны такие возможности, как поиск по первым буквам в любой колонке, фильтрация по любым полям, просмотр списка в виде дерева (с разными вариантами группировки), сортировка по любой колонке, сохранение и восстановление настроек отображения таблиц (видимость, ширина и порядок колонок), а также экспорт данных во многие общепринятые форматы (такие, как MS Excel, OpenOffice Calc, HTML и другие).