Страница 1 из 1
Передача параметра через URL
Добавлено: 05 сен 2012, 18:24
AlexandrBogdanov
Здравствуйте! Подскажите, пожалуйста, каким образом можно передать в отчет параметр типа строка и дата через URL и как к ним обратиться в самом отчете. С числовым типов все получается, передаем так: ...¶m1=10. Затем обращаемся к этому параметру в запросе отчета select * from mytable where field1 = {param1}. Со строками и датами сделать что-то подобное не получилось. Подскажите, пожалуйста. Сейчас завершаем проект, после которого планируем приобрести стимулсофт. Вот осталось эта единственная загвоздочка из-за которой так доконца не получается доделать пользовательский фильтр.
С уважением,
Александр
Re: Передача параметра через URL
Добавлено: 06 сен 2012, 16:23
Vladimir
Здравствуйте, Александр
Попробуйте следующий способ:
...¶m1=mystr¶m2=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
Здравствуйте, Александр
Всегда рады Вам помочь!
Спасибо.