Страница 1 из 2
Создание источников данных
Добавлено: 28 апр 2010, 04:57
AlexSnz
Добрый день!
Мы установили trial версию Stimulsoft Reports.Wpf 2010.1.
Не могли бы Вы подсказать, каким образом создаются источники данных в дизайнере отчетов Stimulsoft Reports.Wpf? В качестве источников данных мы бы хотели использовать значения переменных в проекте на С# (с использованием WPF)?
Спасибо!
Создание источников данных
Добавлено: 28 апр 2010, 06:50
Andrew
Здравствуйте,
Создать Новый источник данных (New Data Source) можно в ручном или автоматическом режиме. В ручном режиме, можно создать источник данных с помощью запроса, используя свойство Получить все колонки (Retrievs Columns), для получения колонок из базы данных; либо можно в ручную создать колонки. В автоматическом режиме, с помощью мастера создания нового источника данных, мастер сам получает колонки из базы данных определенного типа.
Рассмотрим создания нового источника данных , на примере Sql. Для того, чтобы создать новый источник данных, необходимо сначала создать Новое соединение (New Connection). Новое соединение (New Connection) позволит задать параметр подключения к источнику данных определенного типа. Т.е. если, к примеру, необходимо подключить Sql источник данных, то и при создании Новое соединение (New Connection), необходимо указать тип Sql соединения. Затем необходимо заполнить три поля, чтобы создать Новое соединение (New Connection). В поле Наименование (Name), задается название нового соединения, которое отображается в генераторе отчетов. В поле Псевдоним (Alias), задается название нового соединения, которое видит пользователь. В поле Строка Соединения (Connection String), задается строка запроса, в которой указываются необходимые параметры подключения к базе данных.
На рисунке 1 показано окно создания нового Sql соединения. Новое соединение (New Connection) создано. Следующий шаг - это создание нового источника данных. Рассмотрим случай создания нового источника данных вручную. При создании нового источника данных, следует выбирать тот тип базы данных, который указывали при создании нового соединения, в данном случаи это Sql. После того, как указали тип нового источника данных, необходимо сформировать запрос, который позволит с помощью свойства Получить все колонки (Retrieve Columns), извлечь необходимые колонки из базы данных. Либо в ручную создать необходимые колонки.
На рисунке 2 показано окно создания нового источника данных вручную. В поле Наименование в (Name in Source) написано имя параметра подключения к источнику данных определенного типа, т.е. имя соединения, которое было создано ранее. В поле Наименование (Name) написано имя источника данных, которое отображается в генераторе отчетов. В поле Псевдоним (Alias) написано имя источника данных, которое видит пользователь. В поле Текст запроса (Query Text) указывается строка запроса к базе данных. В поле Колонки (Columns) отображаются колонки, которые были извлечены из базы данных путем запроса, либо созданные вручную. Свойство Получить все колонки (Retrieve Columns), позволяет извлечь колонки из базы данных, согласно строки запроса. Теперь Новый источник данных (New Data Source) создан. Рассмотрим способо создания нового источника данных в атоматическом режиме, т.е. с помощью мастера создания новго источника данных. Новое соединение (New Connection) уже создано. Следующий этап - это создание источника данных. При создании нового источника данных в автоматическом режиме, следует выбрать созданное соединение, в нашем примере это Sql соединение. Мастер сам извлечет все колонки из базы данных, останется лишь выбрать нужное в окне Выбор данных (Select Data).
Как видно на рисунке 3, на примере была выбрана одна таблица MSreplication_options. Теперь Новый источник данных (New Data Source) создан.
Спасибо.
Создание источников данных
Добавлено: 28 апр 2010, 08:43
AlexSnz
Спасибо большое за ответ. Да, мы поняли как создать источник данных при подключении к БД, но нас интересует каким образом можно использовать в отчете значения программных объектов. В нашем проекте есть чтение данных из БД, они используются для расчета других величин, вот их и хотелось посмотреть в виде отчета.
Создание источников данных
Добавлено: 28 апр 2010, 10:28
Jan
Здравствуйте,
Спасибо большое за ответ. Да, мы поняли как создать источник данных при подключении к БД, но нас интересует каким образом можно использовать в отчете значения программных объектов. В нашем проекте есть чтение данных из БД, они используются для расчета других величин, вот их и хотелось посмотреть в виде отчета.
Не совсем понятна суть вопроса. Вам нужно прочитать значения из таблицы? Например, в выражении можно обратиться к ним в таком виде:
В скрипте отчета обращение идет в том же виде:
Код: Выделить всё
string s = MyDataSource.FieldName.ToString();
Если нужно, что-то посчитать к примеру в текстовом компоненте, то можно использовать такое выражение:
Код: Выделить всё
{MyDataSource1.Field + MyDataSource2.Field}
Спасибо.
Создание источников данных
Добавлено: 29 апр 2010, 09:31
gelenamd
У меня примерно такой же вопрос. Объясню, что хочу:
Есть класс:
Код: Выделить всё
public classt weekDay
{
public DayOfWeek day;
public string Name;
public string SomeOtherData;
}
Далее в программе я использую его в виде массива, коллекции или листа:
Код: Выделить всё
private weekDay[] days = new weekDay();
private List days = new List();
или вообще так:
Далее я программным способом заполняю данные коллекции, т.е. непосредственно в коде.
Теперь сам вопрос - каким образом мне создать DataSource привязанный к коллекции "days"?
Создание источников данных
Добавлено: 29 апр 2010, 18:16
Jan
Здравствуйте,
Можно использовать такой код:
Код: Выделить всё
StiReport report = new StiReport();
report.Load("test.mrt");
report.RegBusinessObject("MyList", list);
report.Design();
Посмотрите пожалуйста также следующие видео файлы:
http://www.stimulsoft.com/livedemos/Rep ... eList.html
http://www.stimulsoft.com/livedemos/Rep ... etail.html
Спасибо.
Создание источников данных
Добавлено: 30 апр 2010, 08:09
gelenamd
Спасибо за ответ.
Есть ещё один вопрос.
Имеется базовый класс и два наследника:
Код: Выделить всё
public abstract class BasePerson
{
public string Name;
public string SomeDescription;
}
public class LegalPerson : BasePerson
{
public string SomeLegalPersonData;
}
public class IndividualPerson : BasePerson
{
public string SomeIndividualPersonData;
}
Далее происходит создание перечислимого типа:
И объектов, которые будут населять этот лист:
Код: Выделить всё
IndividualPerson individualPerson = new IndividualPerson();
LegalPerson legalPerson = new LegalPerson();
а теперь непосредственно сам вопрос: есть ли возможность, при подключении в качестве источника данных, "достать" поля, уникальные для классов потомков, используя только вышеуказанный лист и без применения таких конструкций, вроде нижеуказанной?
Код: Выделить всё
foreach (BasePerson person in persons)
{
if (person is LegalPerson)
{
LegalPerson temp = person as LegalPerson;
string s = temp.SomeLegalPersonData;
}
}
То есть превышая возможности рефлексии.
Создание источников данных
Добавлено: 01 май 2010, 04:14
Jan
Здравствуйте,
Честно говоря, не совсем понял суть вопроса. Если я прав, то Вы можете обратиться напрямую к реальному объекту Бизнес Объекта при помощи свойств BusinessObjectValue (текущий объект), и Current (текущий элемент объекта. К примеру:
Код: Выделить всё
{((MyTypeOfBusinessObject)MyBusinessObject.BusinessObjectValue).MyProperty}
В этом случае, также придется добавить ссылку на сборку, в которой содержится определение Вашего бизнес объекта (свойство ReferencedAssemblies отчета).
Спасибо.
Создание источников данных
Добавлено: 01 май 2010, 08:04
AlexSnz
Добрый день! Спасибо большое за помощь. Используя первый ролик и демо-проект BusinessObject для WPF получили тот же результат, что и в ролике - только для WPF. К сожалению, не нашли в документации развернутой информации по работе с BusinessObject.
Создание источников данных
Добавлено: 01 май 2010, 16:38
Andrew
Здравствуйте,
Мы ведем активную разработку документации. Работа с BO несомненно также будет доступна. Кстати, в течение пары дней появятся две статьи по работе с ВО.
Спасибо.