Здравстувйте. Устал бить в бубен. Раньше делал:
rep.Load("report.mrt");
rep.Compile();
rep["Spell"] = SpellTextBox.Text;
rep["ConnectionString"] = DbConnection.ConnectionString;
rep.Render(false);
rep.Show();
Теперь никак не могу добиться смены значения переменных.
Всё как-то по-другому. За одно, раз даже это пока не получается, расскажите пожалуйста, как правильно в новых сборках делать следующие вещи:
1) как отрендерить в одну портянку несколько разных отчетов с разными переменными;
2) как отрендерить один и тот же отчет несколько раз в одну портянку, но с разными значениями переменных (напрашивается приведение к первой задаче, но, подозреваю, что можно как-то оптимальней).
Спасибо.
Переменные в новых сборках
-
- Сообщения: 83
- Зарегистрирован: 21 фев 2007, 06:29
- Откуда: Нижний Новгород/Йошкар-Ола
Переменные в новых сборках
Для установки значений переменных лучше написать отдельный метод типа:Теперь никак не могу добиться смены значения переменных.
Код: Выделить всё
public static void SetVariable(StiReport p_report, string name, object value)
{
if (p_report == null) return;
if (p_report.IsCompiled ||
!p_report.NeedsCompiling)
{
p_report[name] = value;
}
else
{
if (p_report.Dictionary.Variables.Contains(name))
{
p_report.Dictionary.Variables[name].ValueObject = value;
}
else
{
p_report.Dictionary.Variables.Add(name, value);
}
}
}
Код: Выделить всё
SetVariable(rep, "Spell", SpellTextBox.Text);
SetVariable(rep,"ConnectionString", DbConnection.ConnectionString);
rep.Render(false);
rep.Show();
Насколько я понял - вам нужно создать отчет с несколькими страницами (Page), и каждая страница будет представлять отдельный "отчет", но переменные будут общие для всего отчета (можно у переменных сделать префикс имени, для каждой страницы, чтобы не было путанницы, если страницы используют одноименные переменные, но с разными значениями)1) как отрендерить в одну портянку несколько разных отчетов с разными переменными;
тогда уж лучше использовать DataSource, а не переменные....2) как отрендерить один и тот же отчет несколько раз в одну портянку, но с разными значениями переменных (напрашивается приведение к первой задаче, но, подозреваю, что можно как-то оптимальней).
Переменные в новых сборках
Есть разные отчеты со своими наборами переменных. Пользователь отмечает галочками те отчеты, которые ему нужны, и должен получить одну портянку в предпросмотре или на принтере. Т.е., инициализируются переменные строится отчет, инициализируются переменные второго отчета, он строится и добавляется к первому.. и т.д.1) как отрендерить в одну портянку несколько разных отчетов с разными переменными;
По второму пункту. Например, есть какой-то отчет по клиенту (ID клиента передается в переменную, а дальше запросом вытягиваются данные из базы). Пользователь выбирает нужных клиентов (несколько), и должен получить одну портянку для всех клиентов так же, как описано выше.
Переменные в новых сборках
Здравствуйте,
Спасибо.
Все проверил. Все работает. Шлите пример.rep.Load("report.mrt");
rep.Compile();
rep["Spell"] = SpellTextBox.Text;
rep["ConnectionString"] = DbConnection.ConnectionString;
rep.Render(false);
rep.Show();
Теперь никак не могу добиться смены значения переменных.
Используйте свойство SubReports объекта StiReport.1) как отрендерить в одну портянку несколько разных отчетов с разными переменными;
Используйте свойство SubReports объекта StiReport. Для каждого варианта создайте отдельный отчет.2) как отрендерить один и тот же отчет несколько раз в одну портянку, но с разными значениями переменных (напрашивается приведение к первой задаче, но, подозреваю, что можно как-то оптимальней).
Спасибо.