Показать сообщение отдельно
Старый 27.05.2015, 20:23   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,656 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
По кнопке Ctrl+E выполняется копирование содержимого в буфер обмена, после чего запускается статический метод класса SysGridExportToExcel:: performPushAndFormatting(), который открывает экземпляр Excel, форматирует его нужным образом, а затем "тупо" вставляет буфер обмена через worksheet.pasteSpecial().

Другими словами, со стороны Axapta просто нет никакой модификации данных, вставляемых в Excel. Вот в каком виде в буфер попали, в таком виде в Excel и будут вставлены.

Возможно, у Вас проблема на стороне Excel. Может, там настроена какая-то хитрая автозамена? Попробуйте набрать проблемный текст в Notepad (блокнот) или Word и через копирование/вставку вставить в Excel. Если проблема сохранится, то дела в настройках Excel, а не Axapta

Другой способ проверки, это в методе SysGridExportToExcel:: performPushAndFormatting() для целей отладки сделать так

X++:
public static void performPushAndFormatting(container _moneyColumns, container _columnAlignments, container _formatColumns, int _numberOfRows)
{
(...)
    TextBuffer TextBuffer;   // debug 
    ;

(...)
    for (retryCount = 1; retryCount <= 3; retryCount++)
    {
        try
        {
// debug -->
            TextBuffer = new TextBuffer();
            TextBuffer.fromClipboard();
            info(TextBuffer.getText());
// debug <--
            
            // Paste the data from the clipboard into cell A1 on the only sheet.
            currentSheet.pasteSpecial();

            break;
        }

(...)
В результате, Вы увидите, что же именно вставляется в Excel. В смысле, какой текст, и как там обстоят дела с кавычками... Если в буфере все хорошо - ищите проблему в Excel.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...