Страница 1 из 3
Создать источник данных на основе переменных
Добавлено: 22 май 2013, 11:56
Ингвар
Такой вопрос - можно ли на основе переменных отчета создать источник данных.
То есть, где-нибудь в событии "Начало построения" отчета, я пишу код, который создает строки в источнике данных и прописывает туда какие то значения на основе значений переменных отчета или других источников.
Подозреваю что для этого предназначен источник данных User Sources. Неплохо бы в таком случае пример.
Re: Создать источник данных на основе переменных
Добавлено: 22 май 2013, 14:52
HighAley
Здравствуйте.
В событии "Начало построения" вы можете изменить DataSet на основе имеющихся данных.
Если же вы хотите использовать StiUserData, то можете использовать следующий код:
Код: Выделить всё
StiUserData myUserData = new StiUserData();
myUserData.Name = "MyData1";
myUserData.GetData += new Stimulsoft.Report.Dictionary.StiUserGetDataEventHandler(myUserData_GetData);
myUserData.Connect += new EventHandler(myUserData_Connect);
// .... add columns ....
StiDataColumn myColumn1 = new StiDataColumn("MyColumn1", typeof(int));
myUserData.Columns.Add(myColumn1);
StiReport report = new StiReport();
report.Load(@"D:\MyTest1.mrt");
report.RegData("MyData1", myUserData);
report.Show();
Описание функций:
Код: Выделить всё
void myUserData_Connect(object sender, EventArgs e)
{
myUserData.Count = 10000000;
}
private void myUserData_GetData(object sender, Stimulsoft.Report.Dictionary.StiUserGetDataEventArgs e)
{
if (e.ColumnName == "MyColumn1") e.Data = ......;
if (e.ColumnName == "MyColumn2") e.Data = ......;
if (your_condition) //end of data. break rendering of this datasource
{
//emulate EOF
myUserData.Count = e.UserSource.Position;
}
}
Спасибо.
Re: Создать источник данных на основе переменных
Добавлено: 23 май 2013, 11:01
Ингвар
А можно пример проекта такого отчета?
Например я в редакторе создаю источник UserSources, в нем две колонки, а затем в событии "Начало построения" набиваю их случайными датами. Можно вас попросить сделать пример такого отчета?
Re: Создать источник данных на основе переменных
Добавлено: 23 май 2013, 13:37
Ингвар
А можно еще например из одного источника данных, записать данные в User Sources?
Например в приложении проект - один источник данных и csv, можно их, например, переписать в MyDate?
Re: Создать источник данных на основе переменных
Добавлено: 27 май 2013, 14:03
HighAley
Здравствуйте.
Не могли бы вы изложить суть вашей проблему и мы постараемся подобрать наилучшее решение для неё.
Опишите, пожалуйста, где изначально находятся данные для отчёта.
Спасибо.
Re: Создать источник данных на основе переменных
Добавлено: 27 май 2013, 16:46
Ингвар
Суть проблемы такая - есть источник данных (в данном случае csv, но может быть и другой). Мне необходимо обработать все его данные по сложному алгоритму - с математическими вычислениями и обработкой времени. Штатным функционалом это сделать довольно сложно.
Вот я и хочу обработать данные в действии "начало построения", и записать сформированные данные в новый источник данных - UserSources, и его данные выводить на страницы отчета.
От вас мне нужен простой пример, который позволил бы в действии "Начало построения" переписать данные из одного источника (данные из csv) в другой (user sources).
Re: Создать источник данных на основе переменных
Добавлено: 29 май 2013, 15:50
HighAley
Здравствуйте.
Что вам мешает получить DataSet и зарегестрировать его в качестве источника данных?
UserSources создан для более сложных задач.
Спасибо.
Re: Создать источник данных на основе переменных
Добавлено: 10 июн 2013, 10:07
Ингвар
Aleksey Andreyanov писал(а):
Что вам мешает получить DataSet и зарегестрировать его в качестве источника данных?
А можно пример?
Re: Создать источник данных на основе переменных
Добавлено: 10 июн 2013, 11:48
HighAley
Здравствуте.
Создайте датасет в своём проекте, сделайте все необходимые действия, а потом зарегестрируйте его в отчёте.
Код: Выделить всё
DataSet data = new DataSet();
// ваши действия с данными
report.RegData(data);
Спасибо.
Re: Создать источник данных на основе переменных
Добавлено: 10 июн 2013, 14:43
Ингвар
А можно пример к моей задаче - есть источник данных "Данные из csv", их нужно считать и переписать в источник DataSet?