Страница 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?