21.06.2010, 16:41 | #1 |
Участник
|
Reporting Server - передача параметров из AX
Добрый день.
Необходима помощь в следующем вопросе: пытаюсь передать из аксапты, из диалогового окна, параметры запроса для отчета построенного в Report Server. Все параметры передаются вроде нормально, кроме тех которые в кириллице.Что делать с последними ума не приложу. Побывал конвертировать в utf8, при помощи utf8:ansi2itf8. Результат все-равно набор других таких же нечитабельных символов. |
|
22.06.2010, 11:19 | #2 |
Участник
|
Там суть в том, что надо получить utf-8 в виде набора байт. Потом это надо представить в 16тиричном виде разделенными процентом. Т.е. Вы должны получить в итоге строку вида - %2f%d0%9e%d1%82%d1%87%d0%b5%d1%82%d1%8b.
|
|
22.06.2010, 11:42 | #3 |
Участник
|
есть наработки в этом плане? кусок кода?
|
|
22.06.2010, 13:28 | #4 |
Участник
|
Если у Вас четверка и выше используйте .NET напрямую
X++: string url = HttpUtility.UrlPathEncode("http://axforum.info/"); Последний раз редактировалось _scorp_; 22.06.2010 в 13:31. |
|
|
За это сообщение автора поблагодарили: belugin (2). |
22.06.2010, 13:35 | #5 |
Участник
|
Параметры я передаю из аксапты...
X++: MenuFunction menuFunction; Args args; ; menuFunction = new MenuFunction(menuItemOutputStr(ReportForm),MenuItemType::Output); args = new Args(); args.parm(strfmt("param1=%1¶m2=%2","параметр1","параметр2")); menuFunction.run(Args); menuFunction.wait(); |
|
22.06.2010, 14:12 | #6 |
Участник
|
посмотрите WebSession::createUrlParamStr
X++: ... else if(ws && ws.coMmode()) { iisServer = new IISServer(); buffer.appendText(iisServer.urlEncode(encryptedValue)); } else { buffer.appendText(WebLet::formatHTMLText(encryptedValue)); } iisServer - вроде правильное я бы послушал совета _scorp_ |
|
22.06.2010, 14:21 | #7 |
Участник
|
кроме того, есть класс SysUrlEncoder.
он вроде совсем правильно работает. Но я бы все равно воспользовался советом _scorp_ исходя из соображений производительности |
|
22.06.2010, 15:11 | #8 |
Участник
|
1. напрямую использовать .NET у меня не получилось. Пробовал так:
X++: System.Web.HttpUtility HttpUtility = new HttpUtility(); 2.SysUrlEncoder - возвращает мне данные не в том формате, который правильно интерпретирует отчет. Т.е. к примеру, надо передать в параметр отчета букву "Б". SysUrlEncoder возвращает %411. А мне(точнее отчету) надо %d0%91. |
|
22.06.2010, 15:22 | #9 |
Участник
|
Цитата:
Сообщение от zelibobis
1. напрямую использовать .NET у меня не получилось. Пробовал так:
X++: System.Web.HttpUtility HttpUtility = new HttpUtility(); 2.SysUrlEncoder - возвращает мне данные не в том формате, который правильно интерпретирует отчет. Т.е. к примеру, надо передать в параметр отчета букву "Б". SysUrlEncoder возвращает %411. А мне(точнее отчету) надо %d0%91. X++: static void testUrl(Args _args) { str url; ; url = System.Web.HttpUtility::UrlPathEncode("Б"); info(url); //%d0%91 } |
|
|
За это сообщение автора поблагодарили: zelibobis (1). |
22.06.2010, 15:37 | #10 |
Участник
|
|
|
Теги |
ax2009, reporting services, кодировка, полезное, параметры |
|
|