PDA

Просмотр полной версии : Выгрузка отчетов через веб-интерфейс



Thorn87
01.08.2022, 08:44
Добрый день коллеги.

Появилась следующая задача - необходимо формировать отчеты в произвольной форме в форматах CSV и XML с возможностью их выгрузки через веб-интерфейс.

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

Отчеты я формирую с помощью функций StringToFile из программы написанной на ST.

Имеется ли возможность у Master Scada 4D с помощью скриптов C# (функцией SaveFileDialog из библиотеки System.Windows.Forms или каким либо другим способом) сохранить сформированный отчет на компьютере, который подключен к серверу через веб-интерфейс?

Или может нужна более расширенная лицензия (с указанием всех клиентов, с которых возможно управление/подключение)?

Я новичок и в Master Scada 4D и программировании на C#.
Буду признателен за любую помощь.

VladGC
01.08.2022, 10:05
Добрый день коллеги.

Появилась следующая задача - необходимо формировать отчеты в произвольной форме в форматах CSV и XML с возможностью их выгрузки через веб-интерфейс.

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

Отчеты я формирую с помощью функций StringToFile из программы написанной на ST.

Имеется ли возможность у Master Scada 4D с помощью скриптов C# (функцией SaveFileDialog из библиотеки System.Windows.Forms или каким либо другим способом) сохранить сформированный отчет на компьютере, который подключен к серверу через веб-интерфейс?

Или может нужна более расширенная лицензия (с указанием всех клиентов, с которых возможно управление/подключение)?

Я новичок и в Master Scada 4D и программировании на C#.
Буду признателен за любую помощь.

Возможность выгрузки есть, для этого необходимо немного исправить пути сохранения файлов,
Для начала надо сохранять отчеты в туже папку, куда по умолчанию сохраняются отчеты из фб ReportFB
Они сохраняются в папку reports,
в среде разработке, при отладке путь немного отличный от пути в рантайме:

C:\Users\admin\AppData\Roaming\MPSSoft\MasterSCADA 4D1.2\Debug_Проект 1\АРМ 1\PLC\htdocs\reports


StringToFile_1(Input:="C:\Users\admin\AppData\Roaming\MPSSoft\MasterSCADA 4D1.2\Debug_Проект 1\АРМ 1\PLC\htdocs\reports\report.csv" , FileName:=path , Encoding:= , Write:=R_TRIG_1.Q );

Далее в кнопке, добавляете событие клик мыши, а действие открыть адрес
Там указываете путь от папки reports
reports\report.csv

И тем самым ваш файл откроется/скачается

Thorn87
02.08.2022, 09:01
Возможность выгрузки есть, для этого необходимо немного исправить пути сохранения файлов,
Для начала надо сохранять отчеты в туже папку, куда по умолчанию сохраняются отчеты из фб ReportFB
Они сохраняются в папку reports,
в среде разработке, при отладке путь немного отличный от пути в рантайме:

C:\Users\admin\AppData\Roaming\MPSSoft\MasterSCADA 4D1.2\Debug_Проект 1\АРМ 1\PLC\htdocs\reports


StringToFile_1(Input:="C:\Users\admin\AppData\Roaming\MPSSoft\MasterSCADA 4D1.2\Debug_Проект 1\АРМ 1\PLC\htdocs\reports\report.csv" , FileName:=path , Encoding:= , Write:=R_TRIG_1.Q );

Далее в кнопке, добавляете событие клик мыши, а действие открыть адрес
Там указываете путь от папки reports
reports\report.csv

И тем самым ваш файл откроется/скачается

Огромное вам спасибо!!! Все быстро получилось без лишних действий со скриптами C#. Это прекрасно! :D

Если не затруднит, подскажите пожалуйста еще один момент...

С помощью функции StringToFile я могу создать и создаю документы как в формате CSV и XML. Однако файл формата XML имеет то же наполнение что и CSV.

Примерное наполнение:
Параметр;Начальное значение;Конечное значение;Дельта;Минимум;Максимум;Среднее
Счетчик 1;0;0;0;52.0;80.0;66.0
Счетчик 2;0;0;0;33.0;61.0;47.0
Счетчик 3;4.0;32.0;29.0;0;0;0
Счетчик 4;93.0;21.0;-71.0;0;0;0
Счетчик 5;81.0;9.0;-71.0;0;0;0

Есть ли какая-нибудь функция для преобразования строк в код формата xml?
Использование StringToFile в данном случае не удобно, т.к. придется отдельно писать очень много дополнительных строк (например объявления: <?xml version="1.0" encoding="windows-1251"?>)
Встроенных средств в MasterSCADA 4D я не нашел. На текущий момент вижу только одно решение: использование скриптов C# и библиотеки System.xml.

Может есть еще какие, более простые варианты?

Заранее благодарю.

VladGC
02.08.2022, 12:00
Огромное вам спасибо!!! Все быстро получилось без лишних действий со скриптами C#. Это прекрасно! :D

Если не затруднит, подскажите пожалуйста еще один момент...

С помощью функции StringToFile я могу создать и создаю документы как в формате CSV и XML. Однако файл формата XML имеет то же наполнение что и CSV.

Примерное наполнение:
Параметр;Начальное значение;Конечное значение;Дельта;Минимум;Максимум;Среднее
Счетчик 1;0;0;0;52.0;80.0;66.0
Счетчик 2;0;0;0;33.0;61.0;47.0
Счетчик 3;4.0;32.0;29.0;0;0;0
Счетчик 4;93.0;21.0;-71.0;0;0;0
Счетчик 5;81.0;9.0;-71.0;0;0;0

Есть ли какая-нибудь функция для преобразования строк в код формата xml?
Использование StringToFile в данном случае не удобно, т.к. придется отдельно писать очень много дополнительных строк (например объявления: <?xml version="1.0" encoding="windows-1251"?>)
Встроенных средств в MasterSCADA 4D я не нашел. На текущий момент вижу только одно решение: использование скриптов C# и библиотеки System.xml.

Может есть еще какие, более простые варианты?

Заранее благодарю.


Как вы и написали, для множества строк можно написать что нибудь на c#, как вариант сделать FB на c# c необходимой обработкой, а дальше, в программе st ее использовать в нужных местах