как с помощью параметров отчёта выгрузить рассчитанные в отчёте данные куда-либо?
У нас на форуме существует правило: один вопрос - одна тема. Пожалуйста, придерживайтесь данного правила. Более того не стоит поднимать старые темы, даже если ситуация в них схожа с вашей. Такие темы относятся к старой версии ЛЭРС УЧЕТ и их содержание может быть не актуально для текущей версии, что может вводить в заблуждение. Лучше в таких случаях создавать новую тему, сославшись на старую.
Уточните, пожалуйста, что вы подразумеваете под выгрузкой с помощью параметров отчета? Имеется ввиду в отчете сохранить данные в параметр отчета, после чего задействовать их уже где то вне отчета? Опишите подробнее.
Мне необходимо сохранить где-либо рассчитанное в отчёте значение, чтобы использовать его в следующем отчётном периоде.
Какой либо штатной возможности сохранять промежуточные данные из отчета не существует. Отчет по своей сути в принципе не предполагает сохранение данных.
Теоретически это можно сделать через скрипты, сохраняя, например, в файл, но стоит учитывать, что отчет формируется на Сервере и скрипт соответственно будет выполнен на нем. При одновременном формировании отчета разными пользователями могут возникнуть проблемы с доступом к файлу и различные коллизии. В общем это не тривиальная задача, как может показаться на первый взгляд.
Да, я понимаю возможные проблемы.
Покажите пожалуйста пример процесса сохранения данных в файл.
Собственно ничего такого необычного мы не использовали. Вы можете посмотреть пример работы с файлами в C# в статье на сайте Microsoft.
Пример скрипта с таким взаимодействием ниже:
using System.IO;
// Обрабатывает запрос источника данных.
// Событие поднимается самым первым, ДО получения значения вычисляемого поля
private void BaseReport_DataSourceDemanded(object sender, System.EventArgs e)
{
StreamReader sr = new StreamReader("C:\\SavedText.txt");
// Получаем строку из файла
labelForCalcField.Text = "<" + sr.ReadLine() + ">";
sr.Close();
}
// Записывает в файл значение вычисляемого поля calcSumM1
private void BaseReport_AfterPrint(object sender, System.EventArgs e)
{
StreamWriter sw = new StreamWriter("C:\\SavedText.txt");
// Записываем значение в файл
sw.WriteLine(GetCurrentColumnValue(calcSumM1.Name));
sw.Close();
}
Данный скрипт можно внедрить в любую отчетную форму, подключив к событиям “DataSourceDemanded” (загрузка данных) и “AfterPrint” (после формирования отчета) соответствующие им обработчики из данного скрипта.
Перед запуском скрипта вам необходимо обязательно создать файл “C:\SavedText.txt”. При необходимости вы можете доработать скрипт, чтобы он создавался автоматически.
спасибо, всё получилось.