Передача параметров в запрос

Обсуждение Stimulsoft Reports.NET
Ответить
Алексей
Сообщения: 36
Зарегистрирован: 29 авг 2008, 08:39
Откуда: Харьков
Контактная информация:

Передача параметров в запрос

Сообщение Алексей »

Добрый день

Пытаюсь создать тестовый отчет на своей базе с диалоговой формой и выбором значения для передачи в отчет.
Т.е. есть форма, на которой лежит компонент "Поле со списком", для него создан отдельный источний данных. В свойствах компонента указано Связывание данных / Items / с.cID.
+ кнопки "Ок" и "Отмена"

На всякий случай проверил в просмотре отчета - вижу форму, из выпадающего списка доступны записи, все нормально.

В самом запросе указываю
.................
Where c.cID = @cID

Создаю параметр
@cID
Список1.Value
10
Uniqueidentifier

При просмотре отчета получаю ошибку:
с:\\Documents and Settings\... error CS0117 'Stimulsoft.Report.Dialogs.StiComboBoxControl' does not contain a definition for 'Value'

Что я делаю не так?

Заранее благодарен за ответ.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Передача параметров в запрос

Сообщение Edward »

Здравствуйте.

Попробуйте, пожалуйста, изменить код следующим образом:

Код: Выделить всё

Список1.Control.SelectedItem.ToString()
Спасибо.
Алексей
Сообщения: 36
Зарегистрирован: 29 авг 2008, 08:39
Откуда: Харьков
Контактная информация:

Передача параметров в запрос

Сообщение Алексей »

Еще вопрос: а можно самим создавать пользовательские функции в отчетной системе?
Хочу создать функцию для конвертации типов, например String to Giud
Алексей
Сообщения: 36
Зарегистрирован: 29 авг 2008, 08:39
Откуда: Харьков
Контактная информация:

Передача параметров в запрос

Сообщение Алексей »

Edward писал(а):Здравствуйте.

Попробуйте, пожалуйста, изменить код следующим образом:

Код: Выделить всё

Список1.Control.SelectedItem.ToString()
Спасибо.
Я надеюсь, все это проще реализовывается, но проще у меня не получилось...

На кнопку ОК на событие Click я повесил обработчик

Код: Выделить всё

Guid eeee = new Guid (Список1.SelectedValue.ToString()); 
Towns.Parameters["@cID"].ParameterValue = eeee;
Towns.Connect();
А в свойствах параметра @cID в поле "Выражение" я вообще убрал значение. Только так и заработало.
В случае, если у меня параметр типа Uniqueidentifier, то при присвоении ему типа Object (Список1.SelectedValue) - возникает исключительная ситуация, т.к. C# контролирует типы.
Вот и возникает еще вопрос - а можно нам писать свои функции в системе, чтобы мы могли реализовать преобразование?
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Передача параметров в запрос

Сообщение Edward »

Al_Ex писал(а):Я надеюсь, все это проще реализовывается, но проще у меня не получилось...

На кнопку ОК на событие Click я повесил обработчик

Guid eeee = new Guid (Список1.SelectedValue.ToString());
Towns.Parameters["@cID"].ParameterValue = eeee;
Towns.Connect();
Да, действительно есть и немного другой способ.
Посмотрите, пожалуйста, отчет 'Parameters From Dialog Form' в программе-примере 'Demo'.
SqlDataSource открывает данные только после установки параметров по нажатию кнопки 'ok'.
Изначально во время запуска отчета источник данных не подключается к ним. За это отвечает свойство ConnectOnStart у источника данных Employee_Sales_by_Country (выделите его и нажмите F4).
А в свойствах параметра @cID в поле "Выражение" я вообще убрал значение. Только так и заработало.
В случае, если у меня параметр типа Uniqueidentifier, то при присвоении ему типа Object (Список1.SelectedValue) - возникает исключительная ситуация, т.к. C# контролирует типы.
Вот и возникает еще вопрос - а можно нам писать свои функции в системе, чтобы мы могли реализовать преобразование?
Да, это возможно. На закладке 'Code' Вы можете объявлять свои функции (только делайте, пожалуйста, это вне блока StiReport Designer generated code - do not modify, так как этот код будет перегенерирован и Ваша функция удалится).

Также на странице примеров возможно посмотреть ролик про создание статической функции для отчета.

http://www.stimulsoft.com/LiveDemos.aspx

http://www.stimulsoft.com/livedemos/Rep ... ction.html

Спасибо.
Ответить