Страница 1 из 1

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

Добавлено: 10 сен 2008, 10:08
Алексей
Добрый день

Пытаюсь создать тестовый отчет на своей базе с диалоговой формой и выбором значения для передачи в отчет.
Т.е. есть форма, на которой лежит компонент "Поле со списком", для него создан отдельный источний данных. В свойствах компонента указано Связывание данных / 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'

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

Заранее благодарен за ответ.

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

Добавлено: 10 сен 2008, 11:05
Edward
Здравствуйте.

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

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

Список1.Control.SelectedItem.ToString()
Спасибо.

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

Добавлено: 10 сен 2008, 12:58
Алексей
Еще вопрос: а можно самим создавать пользовательские функции в отчетной системе?
Хочу создать функцию для конвертации типов, например String to Giud

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

Добавлено: 10 сен 2008, 13: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# контролирует типы.
Вот и возникает еще вопрос - а можно нам писать свои функции в системе, чтобы мы могли реализовать преобразование?

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

Добавлено: 10 сен 2008, 14:05
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

Спасибо.