Страница 1 из 1

Errors CompileReportsToAssembly

Добавлено: 27 мар 2020, 09:22
ohleg
Добрый день!

У меня есть ошибка, когда я пытаюсь скомпилировать dashboard.mrt

Неявное преобразование типа "object" в "string" невозможно. Существует явное преобразование (возможно, отсутствует приведение)

Код: Выделить всё

StiReport FileReport = new StiReport();
FileReport.Load(Path.Combine(this.MrtPath,  "DASHBOARD.mrt"));
CompilerResults res = FileReport.CompileReportsToAssembly(pathToAssembly, new StiReport[] { FileReport });
Задача в кратце.
Есть WebApi, который компилирует report.mrt, и отправляет на сторону клиента массив байтов для отображения отчетов. Как можно провернуть это с dashboard?

Re: Errors CompileReportsToAssembly

Добавлено: 30 мар 2020, 21:08
Aleksey
Здравствуйте,

Дашборды не поддерживают компиляцию.

Как вариант, вы можете сохранить снапшот дашборда (SaveSnapshot() метод) и в последующем его загружать.

Спасибо.

Re: Errors CompileReportsToAssembly

Добавлено: 31 мар 2020, 09:38
ohleg

Код: Выделить всё

	var report= new StiReport();
	report.Load("DASHBOARD.mrt"));
	report.SaveSnapshot("snapshot_DASHBOARD.mrt")); //При debug уходит в функцию и ничего больше не происходит(ни дальнейшего продолжения кода, ни исключения). Сторону клиента приход ответ "Timeout"

Re: Errors CompileReportsToAssembly

Добавлено: 02 апр 2020, 14:44
ohleg
Можете дать ссылку на документацию по snapshot'у? Или такой нет? Мне нужно понять, что будет на выходе с dashboard после использования функции SaveSnapshot()

Re: Errors CompileReportsToAssembly

Добавлено: 04 апр 2020, 09:23
Andrew
Здравствуйте,

Возможно вам нужно это? https://admin.stimulsoft.com/documentat ... 1551c1.htm

Спасибо.

Re: Errors CompileReportsToAssembly

Добавлено: 06 апр 2020, 16:54
ohleg
Нет.
Согласно инструкции (Reports and Dashboards for Web > .NET Core > HTML5 вьювер > Отображение отчета и дашборда),
понял что скомпилированный Snapshot должен отображаться как и обычный отчет?
Делаю:
WebApi сохраняет dashboard_snapshot, компилирует его и отправляет в клиентскую часть как массив байтов

Код: Выделить всё

StiReport FileReport = new StiReport();
FileReport.Load(Path.Combine(this.MrtPath,  "dashboard_snapshot.mrt"));
FileReport.CompileReportsToAssembly(pathToAssembly, new StiReport[] { FileReport });
На стороне клиента, получаем отчет и открываем через Viewer.

Код: Выделить всё

StiReport stiReport = new StiReport();
stiReport.LoadDocument(reportContentArrayBytes);
return await StiNetCoreViewer.GetReportResultAsync(this, stiReport);
В результате открывается пустой отчет.
Даже если убрать то что выполняется на стороне WebApi и грузить сразу из файла как в примере, то все равно открывается пустой отчет.

Если через интерфейс попробовать открыть этот snapshot(Open the previously saved report in the window of preview), то выходит ошибка:
You cannot load a report with dashboards.
You should use the Stimulsoft Dashboards.WEB products.

Re: Errors CompileReportsToAssembly

Добавлено: 08 апр 2020, 00:19
HighAley
Здравствуйте.

К сожалению, дашборды не работают в режиме компиляции и их нельзя загрузить с помощью LoadDocument().
Об этом написано в последнем абзаце указанного вами раздела документации.

Спасибо.

Re: Errors CompileReportsToAssembly

Добавлено: 08 апр 2020, 12:37
ohleg
Спасибо.

Т.е. скомпилировать нельзя и snapshot dashboard'a?
Т.к.:

Код: Выделить всё

StiReport dashboard = StiReport.CreateNewDashboard();
dashboard.Load(Path.Combine(this.MrtPath,  "DASHBOARD.mrt"));
dashboard.SaveSnapshot(Path.Combine(this.MrtPath, "DASHBOARD_snapshot.mrt"));

Код: Выделить всё

StiReport FileReport = StiReport.CreateNewDashboard();
FileReport.Load(Path.Combine(this.MrtPath, "DASHBOARD_snapshot.mrt"));
FileReport.CompileReportsToAssembly(pathToAssembly, new StiReport[] { FileReport });
Передача на сторону клиента как массив байтов
На стороне клиента:

Код: Выделить всё

StiReport stiReport = StiReport.CreateNewDashboard();
var reportContentArrayBytes = await response.Content.ReadAsByteArrayAsync();
stiReport.Load(reportContentArrayBytes);
 return await StiNetCoreViewer.GetReportResultAsync(this, stiReport);
Открывает пустую страницу

Re: Errors CompileReportsToAssembly

Добавлено: 14 апр 2020, 14:17
Aleksey
Здравствуйте,

Нет, компиляция не поддерживается в дашбордах - ни для шаблона, ни для снапшота.

Спасибо.