Тема: DDE в Ax2009
Показать сообщение отдельно
Старый 01.06.2011, 14:56   #1  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Проблема в том, что функции DDEClient.poke(Item, Data) оба значения передются как UNICODE.
Но внутри идет вызов функции DdeClientTransaction(), в которой значение pData передается как UNICODE, а параметр wFmt установлен в CF_TEXT (как ANSI текст). Соответственно, Excel неправильно интерпретирует передаваемые данные.

Как возможный вариант исправления, могу предложить написать dll-ку, которая будет перехватывать вызовы DdeClientTransaction и подменяеть параметр CF_TEXT на значение CF_UNICODETEXT.


Что касается 2003-го офиса, то, возможно, проблема в том же самом UNICODE, но только со стороны Excel. Возможно, он так же не умеет с ним работать.
Но это только гипотеза. Проверить не на чем
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: oip (5).