Платформа как инструмент реализации задач индивидуального пользователя
Технологическая платформа Sherp позволяет проектировать и разрабатывать многофункциональные корпоративные информационные системы. Но также с её использованием возможна реализация решений небольших практических задач. В данной статье описан процесс создания на платформе Sherp небольшого прикладного решения по учету и анализу сделок на финансовом рынке для нужд индивидуального пользователя.
Назначение разрабатываемого решения:
- организовать учет сделок на рынке по различным финансовым инструментам, на основе ежедневных отчетов брокера;
- визуализировать результаты сделок в наглядной форме по различным параметрам.
Создадим предметную область «Отчеты брокера».
Создадим сущности и настроим связи между ними:
- Документ – головной объект;
- Документ HTML – хранение самого отчета брокера в формате HTML;
- Операции – учет операций;
- Счет – денежные активы и движения по счету за день;
- Учет ЦБ – активы и движения ЦБ за день;
- Справочник ЦБ.
Например, описание сущности операции на рисунке 1:
Рис. 1
Связи с сущностью документ по полю DocumentID и справочником ЦБ по полю QuoteID:
Рис. 2
Простейшая схема БД представлена на рисунке 3:
Рис. 3
Под каждую сущность создаем таблицу в БД с необходимыми атрибутами, а также процедуры, отвечающие за добавление, изменение и удаление экземпляров сущности (записей в таблице).
Например, таблица:
CREATE TABLE [dbo].[sz$Trade](
[TradeID] [uniqueidentifier] NOT NULL,
[DocumentID] [uniqueidentifier] NOT NULL,
[QuoteID] [uniqueidentifier] NOT NULL,
[Quantity] [int] NOT NULL,
[Price] [money] NOT NULL,
CONSTRAINT [PK_h$Trade] PRIMARY KEY CLUSTERED
(
[TradeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Процедуры:
Добавление записи:
CREATE PROCEDURE [dbo].[sz$Trade_Insert]
@DocumentID UNIQUEIDENTIFIER,
@QuoteID UNIQUEIDENTIFIER = NULL,
@Quantity INT = 0,
@Price MONEY = NUll
AS
BEGIN
INSERT INTO [dbo].[sz$Trade]
( [TradeID],
[DocumentID],
[QuoteID],
[Quantity],
[Price] )
VALUES
( NEWID(),
@DocumentID,
@QuoteID,
@Quantity,
@Price );
END
GO
Изменение записи:
CREATE PROCEDURE [dbo].[sz$Trade_Update]
@TradeID UNIQUEIDENTIFIER,
@DocumentID UNIQUEIDENTIFIER,
@QuoteID UNIQUEIDENTIFIER,
@Quantity INT,
@Price MONEY
AS
BEGIN
UPDATE [dbo].[sz$Trade]
SET [DocumentID] = @DocumentID,
[QuoteID] = @QuoteID,
[Quantity] = @Quantity,
[Price] = @Price
WHERE [TradeID] = @TradeID;
END
GO
Удаление записи:
CREATE PROCEDURE [dbo].[sz$Trade_Delete]
@TradeID UNIQUEIDENTIFIER
AS
BEGIN
DELETE FROM [dbo].[sz$Trade]
WHERE [TradeID] = @TradeID;
END
GO
На основании этих объектов формируем соответствующие datablock’и, являющиеся одними из основных элементами Платформы. Выбираем тип datablock’а «Редактирование таблицы», и в один datablock включаем процедуры просмотра, добавления, изменения и удаления информации с соответствующими параметрами:
Рис. 4
На основании этого datablock’а формируем browser, в котором и будем просматривать и редактировать информацию:
Рис. 5
После создания всех необходимых datablock’ов и browser’ов получаем систему для учета торговых сделок. Внешне она выглядит так: по вызову из меню открывается окно «Отчет брокера» (browser) c последними десятью документами:
Рис. 6
Из контекстного меню доступны команды «Открыть файл» и «Посмотреть отчет». В результате выполнения команды «Посмотреть отчет» элемент WEB browser выводит содержание отчета:
Рис. 7
Соответственно, карточка для ввода изменения информации будет выглядеть следующим образом:
Рис. 8
Для визуализации результатов используем объект интерфейса «Диаграммы». Данный объект достаточно функционален, можно настроить много различных параметров отображения элементов графика, включая ряды, оси, различные надписи. Можно также добавить статистические индикаторы: скользящие средние, трендовые линии и так далее.
Рис. 9
В готовом виде этот график выглядит так:
Рис. 10
В подобном ключе реализовано два десятка аналогичных графиков, отображающих разные параметры торговых сделок. Здесь важно отметить исключительную роль копирования объектов, которая доступна в Платформе. Практически любой объект интерфейса может быть скопирован, при этом создается его дубликат. Достаточно заменить datablock, при необходимости сделать косметические изменения, и новый объект готов.
Фактически на создание всего решения ушло менее одного дня.
0 комментариев