AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.10.2014, 11:55   #1  
at5454 is offline
at5454
Участник
 
61 / 10 (1) +
Регистрация: 29.05.2014
Некорректно вставляет из textbuffer в эксель
Здравствуйте!
В переменную записываются данные код, наименование и каталожный номер.
Эта переменная потом принимается в textBuffer и вставляется в эксель.
Проблема с полем inventTable.itemname - если оно превышает 33 символа то поле
inventTable.N_InventCatId падает на следующую строчку. То есть слишком длинный itemname как бы выталкивает все следующие за собой поля на следующую строку.
НО!) если вместо inventTable.itemname вставлять статичное значение любой длины, то в экселе все отображается корректно!
В этом классе макросом регулируется ширина столбца, но не думаю что дело в этом.
Помогите пожалуйста разобраться
linestr = strfmt("%1\t%2\t'%3" ,
inventTable.itemId,inventTable.itemname,inventTable.N_InventCatId);



textBuffer.appendText(linestr);
currentRow++;


currentRow --;
textBuffer.toClipboard();

xExcelSheetManager.selected(startRow ,1);
excelSheet = xExcelSheetManager.sheet();
cell= excelSheet.Range(strfmt("A%1", startRow));
cell.Paste();
Старый 31.10.2014, 12:00   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Не присутствуют ли в наименовании номенклатуры спецсимволы?
За это сообщение автора поблагодарили: at5454 (1).
Старый 31.10.2014, 12:28   #3  
at5454 is offline
at5454
Участник
 
61 / 10 (1) +
Регистрация: 29.05.2014
в моем конкретном случае есть только фигурные скобки
Старый 31.10.2014, 12:38   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Строка может содержать непечатаемые символы (\n - например).
Удалить ненужные символы можно функцией strrem().
Или при помощи strkeep(), наоборот оставить только нужные символы.
Старый 31.10.2014, 12:58   #5  
Oz is offline
Oz
Участник
Аватар для Oz
 
293 / 51 (2) ++++
Регистрация: 22.08.2002
Адрес: Москва
Как вариант - обрамлять вставляемый текст двойными кавычками. Тогда и спецсимволы попадут в Excel и корректно там обработаются.
Но при этом надо учитывать, что если внутри передаваемой строки тоже окажется символ двойной кавычки, Excel это воспримет, как окончание вводимого поля и обработает соответственно. Чтобы избежать этого, достаточно удвоить все внутренние двойные кавычки.
Примерно так:
X++:
strVal = strReplace(strVal, '"', '""');
__________________
Здесь могла быть Ваша реклама!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Чудеса TextBuffer DmitryK DAX: Программирование 13 18.10.2013 15:27
Вставка в Excel из TextBuffer. Кодировка Poleax DAX: Программирование 14 30.03.2011 11:16
TextBuffer: не находит знак переноса строки Arahnid DAX: Программирование 7 17.11.2007 18:35
Вывод в эксель Shakr DAX: Программирование 1 06.08.2007 12:03
Axapta виснет на TextBuffer::replace dzeaman DAX: Программирование 3 04.10.2005 09:30

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:12.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.