AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
NAV
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 10.06.2009, 11:04   #1  
Dark Light ist offline
Dark Light
Участник
 
64 / 49 (0) +++
Registriert seit: 17.02.2009
Ort: Омск
Проблема некорректного вывода данных в EXCEL
Добрый день.

Есть форма с ActiveX, в которую встроен Excel. Но проблема не в этом (скорее всего).

Проблема возникает, когда я вывожу в ячейку текстовое значение, вроде "01.001". В Excel'е она превращается в строку "1.001" (если ячейка имеет текстовый формат).

Делаю я это через
X++:
comRange.value2("01.001");
Пробовал через array как в Excel быстрый вывод. Без изменений.

Единстенный вариант решения пока - это выводить текстовые данные с " \' " в начале, что сильно не хочется.

Geändert von Dark Light (10.06.2009 um 11:26 Uhr)
Alt 10.06.2009, 12:23   #2  
Gustav ist offline
Gustav
Moderator
Benutzerbild von Gustav
SAP
Лучший по профессии 2009
 
1.858 / 1152 (42) ++++++++
Registriert seit: 24.01.2006
Ort: Санкт-Петербург
Blog-Einträge: 19
Zitat:
Zitat von Dark Light Beitrag anzeigen
Есть форма с ActiveX, в которую встроен Excel.
Эта штука называется OWC.Spreadsheet. Она ПОХОЖА на Excel, но всё же отличается от него: как в худшую (по большей части), так и в лучшую (бывает и такое!) стороны.
Zitat:
Zitat von Dark Light Beitrag anzeigen
Единстенный вариант решения пока - это выводить текстовые данные с " \' " в начале, что сильно не хочется.
В данном случае Вы попали на "худшую сторону". Увы, это не ПОКА, для Spreadsheet это просто единственный вариант. Если, конечно, не считать вариант с формулой, который еще более туманен: comRange.Value2('=""&"01.001"');

Немного успокою Вас и уберегу от дальнейшего безуспешного копания на эту тему: в Spreadsheet, как и в Excel, есть метод CopyFromRecordset(), который выводит на лист заранее приготовленный ADODB.Recordset. Так вот для строковых значений типа "01.001" этот метод в Spreadsheet'е автоматически добавляет начальный апостроф (в "большом" Excel'е такого не происходит).
This post has been rated by: Logger (4).
Alt 30.06.2009, 09:10   #3  
dech ist offline
dech
Участник
Benutzerbild von dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Registriert seit: 25.06.2009
Ort: Омск
Blog-Einträge: 3
К сожалению, проблема экспорта в XL сохраняется, например, если у нас выгружается столбец сумм, где некоторые значения, например 30.05, могут превратиться в дату (30 мая). Для файлов .XLS проблема решается возведением выражения в кавычки:
X++:
strfmt("'%1'", SomeTable.SomeValue)
Для файлов же .CSV такая проблема остается. Открыв в блокноте, можно убедиться, что выгрузка прошла успешно, и данные не испортились. Просто сам XL отображает эти данные, автоматически подбирая формат ячеек под значение.
Alt 30.06.2009, 09:22   #4  
ice ist offline
ice
Участник
Benutzerbild von ice
Лучший по профессии 2014
 
1.821 / 402 (17) +++++++
Registriert seit: 23.03.2006
Zitat:
Zitat von dech Beitrag anzeigen
К сожалению, проблема экспорта в XL сохраняется, например, если у нас выгружается столбец сумм, где некоторые значения, например 30.05, могут превратиться в дату (30 мая). Для файлов .XLS проблема решается возведением выражения в кавычки:
X++:
strfmt("'%1'", SomeTable.SomeValue)
Для файлов же .CSV такая проблема остается. Открыв в блокноте, можно убедиться, что выгрузка прошла успешно, и данные не испортились. Просто сам XL отображает эти данные, автоматически подбирая формат ячеек под значение.
вместо "30.05" пишите "30,05"
Alt 30.06.2009, 14:43   #5  
Владимир Максимов ist offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1.715 / 1204 (44) ++++++++
Registriert seit: 13.01.2004
Blog-Einträge: 3
Необходимо сначала установить нужный формат ячейки Excel (range.NumberFormat()), а потом вставлять данные в эту ячейку.

Если же вы не форматируете ячейки Excel, т.е. оставляете ее в формате "Общий", то Excel оставляет за собой право попытаться самостоятельно определить формат полученных данных и выполнить конвертация в соответствии с настройками отображения. Что он, собственно, и делает.
Stichworte
excel, spreadsheet

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Быстрый способ вывода данных в Excel с картинками Zlojbarsuk DAX: Программирование 10 23.10.2008 20:13
Проблема с импортом из Excel через COM Romsrs DAX: Программирование 18 10.06.2008 10:34
Возникла проблема с получением имени файла при создании своего канала вывода отчетов. oleg_kap DAX: Программирование 3 06.06.2006 14:12
Проблема с созданием шаблона импорта Excel в 3.0 AK-76 DAX: Администрирование 1 25.07.2003 22:21

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 17:08 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.