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

Передача параметра через URL

Добавлено: 05 сен 2012, 18:24
AlexandrBogdanov
Здравствуйте! Подскажите, пожалуйста, каким образом можно передать в отчет параметр типа строка и дата через URL и как к ним обратиться в самом отчете. С числовым типов все получается, передаем так: ...&param1=10. Затем обращаемся к этому параметру в запросе отчета select * from mytable where field1 = {param1}. Со строками и датами сделать что-то подобное не получилось. Подскажите, пожалуйста. Сейчас завершаем проект, после которого планируем приобрести стимулсофт. Вот осталось эта единственная загвоздочка из-за которой так доконца не получается доделать пользовательский фильтр.

С уважением,
Александр

Re: Передача параметра через URL

Добавлено: 06 сен 2012, 16:23
Vladimir
Здравствуйте, Александр

Попробуйте следующий способ:

...&param1=mystr&param2=2012-09-06

select * from mytable where field1 = '{param1}' AND field2 = '{param2}'

То есть, переданные параметры в SQL запросе взять в кавычки. Если в значениях параметров так же будут присутствовать кавычки, то они будут автоматически экранированы в целях безопасности.

Спасибо.

Re: Передача параметра через URL

Добавлено: 09 сен 2012, 11:15
AlexandrBogdanov
Благодарим за быстрый и оперативный ответ! Все оказалось так, как вы и сказали. Но теперь появилась новая проблема. Дело в том, что в Опере кириллические символы кодируются в url и поэтому, если мы передаем в качестве параметра, например, такой ...&surname=Богданов, Опера преобразует его в &surname=%C1%EE%E3%E4%E0%ED%EE%E2. А стимулсофт в свою очередь преобразует его в Áîãäàíîâ. В результате возникает ошибка "Data not found". То есть преобразование происходит видимо некорректно. С латинскими символами в свою очередь все хорошо и отчет отрабатывает правильно. Не подскажите, как исправить эту ошибку?

С уважением,
Александр.

PS В файле index пытались делать преобразование переменной, но у нас самостоятельно это сделать не получилось. Так или иначе возникала ошибка Data not found

Re: Передача параметра через URL

Добавлено: 10 сен 2012, 12:24
Vladimir
Здравствуйте, Александр

Для кодирования URL попробуйте использовать следующий метод:

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

string url = "...&surname=Богданов";
url = System.Web.HttpUtility.UrlEncode(url);
Спасибо.

Re: Передача параметра через URL

Добавлено: 11 сен 2012, 12:43
AlexandrBogdanov
Благодарим за совет!

С уважением, Александр.

Re: Передача параметра через URL

Добавлено: 11 сен 2012, 16:00
Vladimir
Здравствуйте, Александр

Всегда рады Вам помочь!

Спасибо.