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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.10.2016, 12:50   #81  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от IvanS Посмотреть сообщение
Написал джоб с вызовом на сервере и создание класса Excel также на сервере. Выпадает ошибка.
Решить эту ошибку нам помог вот этот пост
За это сообщение автора поблагодарили: IvanS (1).
Старый 10.10.2016, 12:58   #82  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Цитата:
Сообщение от demianimp Посмотреть сообщение
Решить эту ошибку нам помог вот этот пост
эти пути я тоже давно проверил, доступ у пользователя есть

Последний раз редактировалось IvanS; 10.10.2016 в 13:03. Причина: 1
Старый 10.10.2016, 13:08   #83  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от IvanS Посмотреть сообщение
эти пути я тоже давно проверил, доступ у пользователя есть
Я правильно понял, что оба каталога у вас на сервере созданы?
Старый 10.10.2016, 13:15   #84  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Цитата:
Сообщение от demianimp Посмотреть сообщение
Я правильно понял, что оба каталога у вас на сервере созданы?
Все таки один каталог был удален. Хотя я четко помню, что создавал их. Чудеса происходят в Микрософте. После создания все пошло работать. Спасибо!
Старый 11.10.2016, 19:00   #85  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
672 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от IvanS Посмотреть сообщение
Написал джоб с вызовом на сервере и создание класса Excel также на сервере. Выпадает ошибка:
System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Runtime.InteropServices.COMException (0x800A03EC): Приложению Microsoft Excel не удается получить доступ к файлу "\\Aos-1\AxDocs\1.xls".
нужно смотреть опять же на то, как и кем делается подключение.

вот похожий случай, но из другой лечебницы http://infostart.ru/public/196323/
__________________
Felix nihil admirari
За это сообщение автора поблагодарили: Logger (3).
Старый 12.10.2016, 10:03   #86  
r2d2 is offline
r2d2
Участник
 
62 / 10 (1) +
Регистрация: 25.11.2013
День добрый товарищи! Пытаюсь скомпилировать классы из проекта в архиве"SysExcel_via_NET", однако возникают ошибки компиляции, среди которых например синтаксическая оiибка в классе SysExcelBorder в методе construct на строке с "Microsoft.Office.Interop.Excel.Border". Подобная ошибка встречается везде где присутствует Microsoft.Office.Interop. Не могу понять почему. Офис установлен, дистрибутив пространства имен Microsoft.Office.Interop.Excel ставил из OpenXMLSDKV25.exe.
Сам грешу на дистрибутив, потому прошу дать ссылку на правильный инсталлятор.
Старый 12.10.2016, 11:13   #87  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,932 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Зарегистрируйте .Net сборку Excel в AOT.
У вас должен появиться такой узел
\References\Microsoft.Office.Interop.Excel
Вложения
Тип файла: xpo axf.xpo (888 байт, 475 просмотров)
За это сообщение автора поблагодарили: r2d2 (1).
Старый 12.10.2016, 12:20   #88  
r2d2 is offline
r2d2
Участник
 
62 / 10 (1) +
Регистрация: 25.11.2013
Цитата:
Сообщение от Logger Посмотреть сообщение
Зарегистрируйте .Net сборку Excel в AOT.
У вас должен появиться такой узел
\References\Microsoft.Office.Interop.Excel
Спасибо, но как оказалось такой узел уже имеется в базе, и он пришел вместе с проектом SysExcel_via_NET
Старый 12.10.2016, 15:27   #89  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от r2d2 Посмотреть сообщение
возникают ошибки компиляции везде где присутствует Microsoft.Office.Interop. Не могу понять почему. Офис установлен.
Проверьте, установлен для Ms Excel компонент "Поддержка программирования .NET".
За это сообщение автора поблагодарили: r2d2 (1).
Старый 13.10.2016, 09:46   #90  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,932 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от r2d2 Посмотреть сообщение
Спасибо, но как оказалось такой узел уже имеется в базе, и он пришел вместе с проектом SysExcel_via_NET
Я не проверял отличается ли он для разных версий Excel или нет, но если отличается то может помочь его перерегистрация (там может другой id компонента перепрописаться)
Старый 14.10.2016, 09:29   #91  
r2d2 is offline
r2d2
Участник
 
62 / 10 (1) +
Регистрация: 25.11.2013
Цитата:
Сообщение от Logger Посмотреть сообщение
Я не проверял отличается ли он для разных версий Excel или нет, но если отличается то может помочь его перерегистрация (там может другой id компонента перепрописаться)
Спасибо! Проблема уже решена, удалось скомпилить и немного протестировать классы. Вроде бы все работает. Причем по некоторым причинам пришлось регистрировать 12.0.0.0 версию вместо 14.0.0.0.
Старый 14.10.2016, 10:21   #92  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от r2d2 Посмотреть сообщение
Причем по некоторым причинам пришлось регистрировать 12.0.0.0 версию вместо 14.0.0.0.
Не везде одинаковая версия офиса установлена?..
Старый 14.10.2016, 10:27   #93  
r2d2 is offline
r2d2
Участник
 
62 / 10 (1) +
Регистрация: 25.11.2013
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Не везде одинаковая версия офиса установлена?..
И эта тоже. Но основная в том, что сисадмин не хочет что то ставить на серваке, мол не трогай если и так работает.
Старый 24.01.2017, 13:03   #94  
Alyona98 is offline
Alyona98
Участник
 
1 / 10 (1) +
Регистрация: 24.01.2017
Есть проблема открытия файла Excel в пакетнике.
АХ2009, Office 2013, в пакетном режиме в момент отработки кода открытия книги просто падает обработки.
При чем никаких уведомлений не выдается как в АХ, так и Windows.
try catch Exception::CLRError тоже ничего не перехватывает.
А еще самое интересное в аналогичной тестовой среде все работает отлично и без ошибок, а вот на рабочей как назло падает.
Поэтому вопрос как минимум понять, что за ошибка мешает корректной работе в рабочей среде? А от неё уже смотреть дальше
__________________
3rn.ru
Старый 24.01.2017, 14:10   #95  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
С вероятностью 76% решение проблему вот тут
За это сообщение автора поблагодарили: Logger (1).
Старый 09.04.2018, 20:12   #96  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Реализовывал сегодня в Ax2009 вызов функции TextToColumns класса Range из сборки Microsoft.Office.Interop.Excel.

Проблема возникла с тем как запрограммировать параметр Object FieldInfo. Это array форматов данных столбцов. Какой столбец должен быть текстовым, какой числовым, какой с датами и т.д. У меня несколько столбцов имеют тип "Дата" и я этот параметр обязательно должен был инициализировать и передать в функцию. Примеров в гугле даже для C# практически не смог найти. Не говоря уж про примеры из аксапты.

А без примеров не совсем очевидно как сформировать этот array. В результате сегодняшних экспериментов получил следующий результат, может кому пригодится .
В примере происходит открытие файла csv, в котором построчно хранятся данные, разделённые символом табуляции. После открытия происходит вызов функции TextToColumns для распределения данных по столбцам.
X++:
    Microsoft.Office.Interop.Excel._Application         excel;
    Microsoft.Office.Interop.Excel.Workbooks            workbooks;
    Microsoft.Office.Interop.Excel._Workbook            workbook;
    Microsoft.Office.Interop.Excel._Worksheet           ws;
    Microsoft.Office.Interop.Excel.Range                range;
    System.Type                                         type;
    System.Reflection.FieldInfo                         fieldInfo;
    System.Object                                       missing;
    Microsoft.Office.Interop.Excel.XlColumnDataType     columnDataType;
    System.Array                                        formatArray;
    System.Array                                        array;
    int                                                 i;
    System.String                                       decimalSeparator;
    System.Object                                       textToColumnsDestination;
;
    type             = System.Type::GetType('System.Reflection.Missing');
    fieldInfo        = type.GetField('Value');
    missing          = fieldInfo.GetValue(null);
    fileFormat       = Microsoft.Office.Interop.Excel.XlFileFormat::xlWorkbookDefault;

    excel            = new Microsoft.Office.Interop.Excel.ApplicationClass();
    excel.set_Visible(true);

    workbooks        = excel.get_Workbooks();
    workbook         = workbooks._Open( fileName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);

    ws              = workbook.get_ActiveSheet();
    range           = ws.get_Range( "A:A", missing);
    range.Select();

    formatArray = System.Array::CreateInstance( System.Type::GetType("System.Object"), 27);

    for (i=0; i<27; i++)
    {
        array   = System.Array::CreateInstance( System.Type::GetType("System.Int32"), 2);
        array.SetValue( i+1, 0);

        switch (i+1)
        {
            case 12,13,14,15:
                columnDataType  = Microsoft.Office.Interop.Excel.XlColumnDataType::xlDMYFormat;
                break;
            case 17,18,19:
                columnDataType  = Microsoft.Office.Interop.Excel.XlColumnDataType::xlTextFormat;
                break;
            default:
                columnDataType  = Microsoft.Office.Interop.Excel.XlColumnDataType::xlGeneralFormat;
                break;
        }

        array.SetValue( columnDataType, 1);

        formatArray.SetValue(array,i);
    }

    textToColumnsDestination    = ws.get_Range("A1",missing);
    decimalSeparator            = ",";

    range.TextToColumns( textToColumnsDestination
                       , Microsoft.Office.Interop.Excel.XlTextParsingType::xlDelimited
                       , Microsoft.Office.Interop.Excel.XlTextQualifier::xlTextQualifierDoubleQuote
                       , false
                       , true
                       , false
                       , false
                       , false
                       , false
                       , missing
                       , formatArray
                       , decimalSeparator
                       , missing
                       , true
                       );
__________________
Дмитрий
За это сообщение автора поблагодарили: dech (3), Logger (5).
Старый 20.08.2020, 06:07   #97  
oleggy is offline
oleggy
Участник
 
268 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
Привет всем.
Подскажите у кого нибудь имеется последняя актуальная сборка всех классов для работы в AX 2009 ? Может быть есть ветка на github.
Старый 08.04.2021, 09:59   #98  
abv2703 is offline
abv2703
Участник
 
92 / 22 (1) +++
Регистрация: 05.12.2003
Адрес: Санкт-Петербург, улица Бухарестсткая
О, обсуждение 13-го года Ничего не помогает: System.GC::Collect(); и все такое употребил - процесс висит. Что интересно, при последующем запуске в диспетчере наблюдается второй процесс, который благополучно завершается, а тот первоначальный все остается. Сейчас 21-год,
может решение есть? Собственно, не очень беспокоит, но что за фигня? Так и хочется вчинить иск нашему Биллу. ))))
Старый 08.04.2021, 10:47   #99  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,932 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Убедитесь, что перед вызовом
System.GC::Collect();
очистили все ссылки на Excel объекты.

Лучше еще вызвать
WaitForPendingFinalizers
после
System.GC::Collect();

Завершить процесс Excel 2013
Старый 08.04.2021, 12:51   #100  
abv2703 is offline
abv2703
Участник
 
92 / 22 (1) +++
Регистрация: 05.12.2003
Адрес: Санкт-Петербург, улица Бухарестсткая
В том-то и штука, что все проделал:

void finalize()
{
;

//excel.Quit();

workBook = null;
workSheet = null;
excel = null;
workSheets = null;
workBooks = null;

System.GC::Collect();
System.GC::WaitForPendingFinalizers();


}

Однако ж нет
Теги
.net, ax2009, excel, законченный пример, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
проблема использования Excel через clr Batuev Artem DAX: Программирование 8 22.08.2011 18:01
AX.NET: интеграция .NET-приложений с Аксаптой и (будущие) возможности облачных вычислений gl00mie DAX: Программирование 2 23.04.2010 00:47
Импорт даты через Excel OliaM DAX: Функционал 2 13.12.2007 10:32
Экспорт в Excel через WorkBooks.OpenText() Владимир Максимов DAX: Программирование 2 09.04.2004 17:16
Чтение Excel-ячейки в Аксапте (2.5) через COM AKIS DAX: Программирование 3 25.03.2004 20:18

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

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

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