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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.04.2006, 14:18   #1  
SFa is offline
SFa
Участник
 
9 / 10 (1) +
Регистрация: 04.04.2006
Мне нужно загрузить шаблон экселевского файла, далее в него писать данные, используя OWC...

На форуме откопал что это можно зделать с помощью XMLURL("str _filename") но
Ахарта в упор его не видит, и ругается сообщением что у СОМ обьекта нет такого метода...((

Код:
 Excel   =  new COM("OWC.Spreadsheet");
 Excel.XMLURL("C:\test.XLS");
Тут же пишу Excel.csvurl(...) молчит все норм...я в тупике...

Есть догада что дело в версии MSOWC.DLL если это так, следующий вопрос как подконектить новую dll?
Старый 04.04.2006, 17:09   #2  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Код:
Excel.XMLURL("C:\\test.XLS");
А так, случайно, не ругается?
Старый 04.04.2006, 22:08   #3  
SFa is offline
SFa
Участник
 
9 / 10 (1) +
Регистрация: 04.04.2006
Цитата:
Сообщение от Lemming Посмотреть сообщение
Код:
Excel.XMLURL("C:\\test.XLS");
А так, случайно, не ругается?
Было бы все так просто )))
Код просто от руки набивал слэш забыл....

Тем более она бы не ругалась что такого обьекта нет, вероятнее всего выдала бы неизвестную ошибку.....

Я уже все перекопал....MSDN на спридшит наизусть выучил ))

HELP!
Старый 05.04.2006, 08:52   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
По-моему, работа с XML появилась начиная с OfficeXP (owc10.dll).

Не совсем понятно, что вы с помощью этого метода хотите сделать - шабон должент быть в формате Excel XML

Так же не понятно зачем вы вообще используете Spreadsheet? У вас не установлен Excel?
__________________
Axapta v.3.0 sp5 kr2
Старый 05.04.2006, 10:12   #5  
SFa is offline
SFa
Участник
 
9 / 10 (1) +
Регистрация: 04.04.2006
Цитата:
Сообщение от AndyD Посмотреть сообщение
Так же не понятно зачем вы вообще используете Spreadsheet? У вас не установлен Excel?
Отчет очень обьемный, вывод через COM("Excel.Application") очень долгий, Spreadsheet ускоряет процесс с нескольких десятков минут до секунд так что выбор очевиден, не так ли?

Цитата:
Сообщение от AndyD Посмотреть сообщение
Не совсем понятно, что вы с помощью этого метода хотите сделать - шабон должент быть в формате Excel XML
Шаблон в формате XMl содержит стили,цвета,границы и тд...шаблон уже готов, все что есть в шаблоне просто не резон прописывать прямо в коде (тем более как я не игрался с borders.item() зделать определнную границу (справа,сверху, слева etc) мне не удалось....) вот поэтому собссна и решил заливать прямо в шаблон, но........





Цитата:
Сообщение от AndyD Посмотреть сообщение
По-моему, работа с XML появилась начиная с OfficeXP (owc10.dll).
Имеено он у меня и стоит.....там же откопал хелп по OWC, в методах спридшита описан XMLURL, но все попытки вызвать его из аксапты провалились...
Старый 05.04.2006, 10:32   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Попробуйте тогда
<div class='XPPtop'>X++</div><div class='XPP'>
Excel = [color=:blue]new[/color] COM([color=:red]"OWC10.Spreadsheet"[/color]);</div>
А вообще, чтобы проверить, создайте форму, на ней контрол ActiveX (Microsoft Excel Spreadsheet 10.0) и проверьте у него наличие этого метода
__________________
Axapta v.3.0 sp5 kr2
Старый 05.04.2006, 11:13   #7  
SFa is offline
SFa
Участник
 
9 / 10 (1) +
Регистрация: 04.04.2006
Цитата:
Сообщение от AndyD Посмотреть сообщение
Попробуйте тогда
<div class='XPPtop'>X++</div><div class='XPP'>
Excel = [color=:blue]new[/color] COM([color=:red]"OWC10.Spreadsheet"[/color]);</div>
COM-объект с ProgID 'OWC10.Spreadsheet' не мог быть создан. Убедитесь, что объект был должным образом зарегистрирован.

Не вышло... ((
Старый 05.04.2006, 11:44   #8  
SFa is offline
SFa
Участник
 
9 / 10 (1) +
Регистрация: 04.04.2006
Ну вот....дело сдвинулось....через конфигурацию зарегистрировал Owc10.DLL

теперь отрабатывается
<div class='XPPtop'>X++</div><div class='XPP'>Excel = [color=:blue]new[/color] COM([color=:red]"OWC10.Spreadsheet"[/color]);</div>

Но на методе выпадает в ошибку:
Функция 'XMLURL возвратила код ошибки E0040104 (0x<unknown>), что означает: <unknown>

<div class='XPPtop'>X++</div><div class='XPP'>Excel.XMLURL([color=:red]"C:\\test.xls"[/color]);</div>

Ща буду добивать ))
Старый 05.04.2006, 11:47   #9  
mugz is offline
mugz
Участник
 
107 / 10 (1) +
Регистрация: 05.08.2004
regsvr32 owc10.dll
Старый 05.04.2006, 11:53   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Странно. По-видимому у вас не зарегистрировался компонент от OfficeXP.

Проверьте - в реестре у вас должен быть ключи
HKEY_CLASSES_ROOT\OWC10.Spreadsheet
и
HKEY_CLASSES_ROOT\OWC10.Spreadsheet.10

Если их нет, то зарегистрируйте вручную - запустите из папки
"Program Files\Common Files\Microsoft Shared\Web Components\10\"

regsvr32 owc10.dll

Excel.XMLURL("C:\\test.xls");

Я же написал - надо открывать XML документ. Сохраните test.xls из Excel в формате таблицы XML и открывайте его
__________________
Axapta v.3.0 sp5 kr2
Старый 05.04.2006, 13:12   #11  
SFa is offline
SFa
Участник
 
9 / 10 (1) +
Регистрация: 04.04.2006
Цитата:
Сообщение от AndyD Посмотреть сообщение
Я же написал - надо открывать XML документ. Сохраните test.xls из Excel в формате таблицы XML и открывайте его
Здесь затупил c xml ))) Спасибо....

Теперь прога идет до первого range.value() и там выпадает ((

Функция 'value возвратила код ошибки 80020005 (0xDISP_E_TYPEMISMATCH), что означает: Один или большее количество аргументов не мог быть преобразовано.
<div class='XPPtop'>X++</div><div class='XPP'>
Excel = [color=:blue]new[/color] COM([color=:red]"OWC10.Spreadsheet"[/color]);
cursheet = excel.Activesheet();
range = curSheet.range([color=:red]'A1'[/color]);
range.value([color=:red]'xxxxxxx'[/color]);</div>

*БЬЮСЬ ГОЛОВОЙ ОБ КЛАВУ*
Старый 05.04.2006, 13:42   #12  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Если хотите использовать именно Value(), то надо использвать так
<div class='XPPtop'>X++</div><div class='XPP'>
#define.xlRangeValueDefault(0x0000000A)
...
range.value(#xlRangeValueDefault, [color=:red]'xxxxxxx'[/color]);</div>
либо используйте value2()
<div class='XPPtop'>X++</div><div class='XPP'>
range.value2([color=:red]'xxxxxxx'[/color]);</div>
__________________
Axapta v.3.0 sp5 kr2
Старый 06.04.2006, 07:20   #13  
SFa is offline
SFa
Участник
 
9 / 10 (1) +
Регистрация: 04.04.2006
Все! Сегодня добил Большое спасибо AndyD, без вас не справился бы.....

:РЕСПЕКТ:
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:09.