Изменение параметров для создания нового файла отчета

Обсуждение Stimulsoft Reports.JS
Ответить
angolub
Сообщения: 38
Зарегистрирован: 11 май 2018, 16:51

Изменение параметров для создания нового файла отчета

Сообщение angolub »

Здравствуйте,

У нас зарегистрированная версия пакета "stimulsoft-reports-js": "2018.2.3".
Задача: при большом объеме данных разбивать один отчет на несколько результирующих файлов. В самом файле выводить информацию номер части и количество частей. Например, Часть 2 из 5.

Мы столкнулись со следующей проблемой. При передачи параметра номер части во всех результирующих файлах отображается Часть 1 из 5.
Т.е. тот параметр, который пришел в первый раз.

Подскажите, как переопределить параметр для отчета? Не хочется инициализировать StiReport каждый раз в цикле, а просто менять параметр.

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

        let report = new Stimulsoft.Report.StiReport();
        report.load(template);
        
	let settings = new Stimulsoft.Report.Export.StiPdfExportSettings();
        settings.imageQuality = 1.0;
        settings.imageResolution = 300;
        settings.pdfImageCompressionMethod = Stimulsoft.Report.Export.StiPdfImageCompressionMethod.Flate;
        settings.pdfEmbeddedFonts = true;
        settings.exportRtfTextAsImage = true;
        settings.embeddedFonts = true;
        
        let service = new Stimulsoft.Report.Export.StiPdfExportService();
        let stream;
		
	for (let i = 0; i < 5; ++i) {
		let fileName = `report_${i+1}.pdf`;
		if (report.dictionary.variables.getByName('partNumber'))                           
				report.dictionary.variables.getByName('partNumber').valueObject = i + 1;
                            
	        if (report.dictionary.variables.getByName('partsCount'))
        	        report.dictionary.variables.getByName('partsCount').valueObject = 5;
				
		stream = new Stimulsoft.System.IO.MemoryStream();

        	await new Promise((resolve, reject) => {
	        report.renderAsync(function () {
                    try {
                        service.exportToAsync(function () {
                            try {
                                fs.writeFileSync(fileName, Buffer.from(stream.toArray()));
                                resolve();
                            }
                            catch (err) {
                                reject(err);
                            }
                        }, report, stream, settings);
                    }
                    catch (err) {
			reject(err);
                    }
                }, false);
            });
		
 }
Вложения
newParamValueError.JPG
newParamValueError.JPG (10.86 КБ) 6056 просмотров
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Изменение параметров для создания нового файла отчета

Сообщение Aleksey »

Здравствуйте,

Вышлите пример, который воспроизводит проблему, для анализа.

Спасибо.
angolub
Сообщения: 38
Зарегистрирован: 11 май 2018, 16:51

Re: Изменение параметров для создания нового файла отчета

Сообщение angolub »

Высылаю пример mrt файла
Вложения
Report_ReportParam.mrt
(17.37 КБ) 371 скачивание
report_params.json
(928 байт) 382 скачивания
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Изменение параметров для создания нового файла отчета

Сообщение Aleksey »

Здравствуйте,

Необходимо некоторое время для анализа проблемы.

Спасибо.
angolub
Сообщения: 38
Зарегистрирован: 11 май 2018, 16:51

Re: Изменение параметров для создания нового файла отчета

Сообщение angolub »

Здравствуйте,

Подскажите, пожалуйста, удалось ли что-то выяснить и поправить данную ошибку.

С уважением,
Алина Голубь
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Изменение параметров для создания нового файла отчета

Сообщение Aleksey »

Здравствуйте,

Разбираемся, о результатах дадим знать.

Спасибо.
angolub
Сообщения: 38
Зарегистрирован: 11 май 2018, 16:51

Re: Изменение параметров для создания нового файла отчета

Сообщение angolub »

Здравствуйте,

Мы обновились до новой версии "stimulsoft-reports-js": "2021.3.7".
Ошибка сохранеяется.

sqlCommand меняется успешно для каждой части.

Есть ли какие-то новости по решению проблемы?
angolub
Сообщения: 38
Зарегистрирован: 11 май 2018, 16:51

Re: Изменение параметров для создания нового файла отчета

Сообщение angolub »

Здравствуйте,

Проблема решается так:
Если вы хотите поменять значение в уже построенной переменной, то надо делать это с помощью следующего кода:
report.setVariable(paramName, paramValue);
Заменили код

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

report.dictionary.variables.getByName('partNumber').valueObject = i + 1; 
на

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

report.setVariable('partNumber', i+1);
и все заработало
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Изменение параметров для создания нового файла отчета

Сообщение Aleksey »

Здравствуйте,

Спасибо за информацию.
Ответить