Страница 1 из 1
Переменные в новых сборках
Добавлено: 01 окт 2008, 13:10
Andrey
Здравстувйте. Устал бить в бубен. Раньше делал:
rep.Load("report.mrt");
rep.Compile();
rep["Spell"] = SpellTextBox.Text;
rep["ConnectionString"] = DbConnection.ConnectionString;
rep.Render(false);
rep.Show();
Теперь никак не могу добиться смены значения переменных.
Всё как-то по-другому. За одно, раз даже это пока не получается, расскажите пожалуйста, как правильно в новых сборках делать следующие вещи:
1) как отрендерить в одну портянку несколько разных отчетов с разными переменными;
2) как отрендерить один и тот же отчет несколько раз в одну портянку, но с разными значениями переменных (напрашивается приведение к первой задаче, но, подозреваю, что можно как-то оптимальней).
Спасибо.
Переменные в новых сборках
Добавлено: 01 окт 2008, 18:22
Валерий В. Шинкевич
Теперь никак не могу добиться смены значения переменных.
Для установки значений переменных лучше написать отдельный метод типа:
Код: Выделить всё
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();
1) как отрендерить в одну портянку несколько разных отчетов с разными переменными;
Насколько я понял - вам нужно создать отчет с несколькими страницами (Page), и каждая страница будет представлять отдельный "отчет", но переменные будут общие для всего отчета (можно у переменных сделать префикс имени, для каждой страницы, чтобы не было путанницы, если страницы используют одноименные переменные, но с разными значениями)
2) как отрендерить один и тот же отчет несколько раз в одну портянку, но с разными значениями переменных (напрашивается приведение к первой задаче, но, подозреваю, что можно как-то оптимальней).
тогда уж лучше использовать DataSource, а не переменные....
Переменные в новых сборках
Добавлено: 02 окт 2008, 05:27
Andrey
1) как отрендерить в одну портянку несколько разных отчетов с разными переменными;
Есть
разные отчеты со своими наборами переменных. Пользователь отмечает галочками те отчеты, которые ему нужны, и должен получить одну портянку в предпросмотре или на принтере. Т.е., инициализируются переменные строится отчет, инициализируются переменные второго отчета, он строится и добавляется к первому.. и т.д.
По второму пункту. Например, есть какой-то отчет по клиенту (ID клиента передается в переменную, а дальше запросом вытягиваются данные из базы). Пользователь выбирает нужных клиентов (несколько), и должен получить одну портянку для всех клиентов так же, как описано выше.
Переменные в новых сборках
Добавлено: 02 окт 2008, 12:44
Vital
Здравствуйте,
rep.Load("report.mrt");
rep.Compile();
rep["Spell"] = SpellTextBox.Text;
rep["ConnectionString"] = DbConnection.ConnectionString;
rep.Render(false);
rep.Show();
Теперь никак не могу добиться смены значения переменных.
Все проверил. Все работает. Шлите пример.
1) как отрендерить в одну портянку несколько разных отчетов с разными переменными;
Используйте свойство SubReports объекта StiReport.
2) как отрендерить один и тот же отчет несколько раз в одну портянку, но с разными значениями переменных (напрашивается приведение к первой задаче, но, подозреваю, что можно как-то оптимальней).
Используйте свойство SubReports объекта StiReport. Для каждого варианта создайте отдельный отчет.
Спасибо.