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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.03.2019, 17:03   #1  
amin is offline
amin
Участник
 
4 / 10 (1) +
Регистрация: 27.07.2006
Как это работает через NET?
В свое время была тема "Как программно из AX присвоить bookmark в Excel"
Как программно из AX присвоить bookmark в Excel

Там это делалось через COM, и все было хорошо. Пытаюсь сделать через NET? - не ругается, но и не создает.


Microsoft.Office.Interop.Excel.WorksheetClass netObject = range.worksheet().netObject();
Microsoft.Office.Interop.Excel.Names netNames = netObject.get_Names();

;
......
netNames.Add("SSSS", "=$A$1"
,null
,null
,null

,null
,null
,null
,null
,null
,null
);
.....
Старый 28.03.2019, 11:31   #2  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
186 / 78 (3) ++++
Регистрация: 23.10.2012
Добрый день.
В рамках Аксапты, видимо, нужно передавать аргументы.
https://docs.microsoft.com/en-us/dot...view=excel-pia
Старый 29.03.2019, 16:13   #3  
amin is offline
amin
Участник
 
4 / 10 (1) +
Регистрация: 27.07.2006
Добрый день, Товарищ ♂uatr!
Это я читал, а в коде будет выглядеть передача необязательных аргументов со значениями по умолчанию, а то не указывать их нельзя, а в указанном варианте - см. выше.
Старый 29.03.2019, 16:40   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,162 / 1903 (70) ++++++++
Регистрация: 12.10.2004
Записей в блоге: 1
попробуйте вместо null передавать результат вот этого метода:

X++:
protected final CLRObject getClrMissingArg()
{
    CLRObject                           clrMissingArg;  // что передавать вместо необязательных параметров
    System.Reflection.FieldInfo fieldInfo;
    System.Type                 type;

    #define.SystemReflectionMissing     ('System.Reflection.Missing')
    ;

    // if (!isMissingArgInited)
    {
        // BP deviation documented
        type                = System.Type::GetType( #SystemReflectionMissing );
        fieldInfo           = type.GetField( @"Value" );
        clrMissingArg       = fieldInfo.GetValue( null );
        // isMissingArgInited  = true;
    }
    return clrMissingArg;
}
Старый 29.03.2019, 17:40   #5  
amin is offline
amin
Участник
 
4 / 10 (1) +
Регистрация: 27.07.2006
Увы, Logger, благодарю, но не прокатило. Ругается на неинициализированность объекта CLRObject, хотя метод возвращает его "живым". Вы сами пробовали прогнать этот пример (у меня AX 4.0)? Может на другой версии это рабочее.
Старый 30.03.2019, 10:14   #6  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,781 / 959 (35) +++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от amin Посмотреть сообщение
Ругается на неинициализированность объекта CLRObject, хотя метод возвращает его "живым"
Метод напрямую указывается в параметре или через промежуточную переменную?
Правильным будет:
X++:
CLRObject nullObj = getClrMissingArg();
и уже nullObj использовать в параметрах.
Старый 31.03.2019, 02:54   #7  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 358 (13) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Сам пример в С#/.Net (i.e. Console App) пробовали запустить? Работает?
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 02.04.2019, 18:29   #8  
amin is offline
amin
Участник
 
4 / 10 (1) +
Регистрация: 27.07.2006
to Alex_KD
Вполне себе
Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workBook = ObjExcel.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel.Worksheet sheet = ObjExcel.Worksheets.get_Item(1);
Microsoft.Office.Interop.Excel.Names netNames = workBook.Names;
netNames.Add("SSSS", "=$A$1");
ObjExcel.Visible = true;
P.S. Что интересно,NET, как и COM ActiveWorkbook.Names("sssss").Delete не видят.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
sertandev: Simple server-side scripting with ASP.NET Razor Blog bot DAX Blogs 2 06.04.2018 06:47
Глюк(?) при импорте в Excel через .Net Loengrinchik DAX: Программирование 1 14.08.2015 10:55
goshoom: Exception handling with X++ and .NET Interop Blog bot DAX Blogs 0 02.09.2013 11:12
Dynamics AX: .Net Adapter and why? Blog bot DAX Blogs 0 26.06.2007 02:54
Работа Web-приложения .NET через COM Connector Fedor_imported DAX: Программирование 1 28.06.2005 00:45
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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