{% extends 'viewer.html' %}
{% block render_logic %}
// Загружаем файл локализации и устанавливаем его по умолчанию
Stimulsoft.Base.Localization.StiLocalization.setLocalizationFile("/static/local/ru.xml", true);
// Формируем экземпляр отчета
var report = new Stimulsoft.Report.StiReport();
// Загружаем шаблон отчета
var templatePath = "{{ template_url | safe }}";
try {
report.loadFile(templatePath);
} catch (error) {
alert(
"Не удалось загрузить шаблон " +
templatePath +
", возможно он отсутствует."
);
return;
}
// Привязка переменных к шаблону
{% for variable in variables %}
report.dictionary.variables.add(
new Stimulsoft.Report.Dictionary.StiVariable(
// Категория
'{{ variable.category }}',
// Наименование
'{{ variable.name }}',
// Псевдоним
'{{ variable.name }}',
// Описание
'{{ variable.description }}',
// Тип
variableTypeGetter('{{ variable.type | safe }}'),
// Значение
'{{ variable.value }}',
true
)
);
{% endfor %}
// Очищаем от "хвостов" соединений и источников,
// они нам только помешают, так как создают лишь видимость присутствия
report.dictionary.databases.clear();
report.dictionary.dataSources.clear();
// Привязка источников данных к шаблону
{% for source in sources %}
var dataSet = new Stimulsoft.System.Data.DataSet();
dataSet.readJsonFile('{{ source.get_absolute_url | safe }}');
report.regData('{{ source.alias }}', '', dataSet);
{% endfor %}
// Синхронизация источников данных
report.dictionary.synchronize();
var settings = new Stimulsoft.Report.Export.StiPdfExportSettings();
settings.useUnicode = true;
var service = new Stimulsoft.Report.Export.StiPdfExportService();
var stream = new Stimulsoft.System.IO.MemoryStream();
service.exportTo(report, stream, settings);
var data = stream.toArray();
Object.saveAs(data, "SimpleList.pdf", "application/pdf");
{% endblock %}