Показать сообщение отдельно
Старый 03.07.2017, 13:42   #18  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
648 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от Fizik Посмотреть сообщение
Прошло время. Волею судеб сейчас мы все еще работаем на Axapta 3.0 SP4 Build #11.0
При том корпоративный MS Office уже 2013.
Ошибка работы с Excel снова появилась, причем метод visible() уже переделан.
Обращение к Excel происходит вот таким образом:

excel = new COMExcelDocument_RU();
excel.newFile(#ReportTemplatePath_FileServer + "ApplicationFSS.xltx", false);

excel.insertValue(bookmark, substr(_content, i, 1));

Подскажите, как все же еще можно переделать.
У нас зарубежный клиент, так что вместо COMExcelDocument_RU мы используем свои кастомные наработки. Офис 2013, Аксапта версии 4.0.
Вставить значение можно так:
X++:
public void insertValue(BookMark _bookMark, anyType _anyVal, int _workSheet = 1)
{
    COM comRange;
    ;

    this.checkExistDocument();

    comRange = this.findRange(_bookMark, _workSheet);

    this.insertValueInRange(comRange, _anyVal);
}
X++:
// Creates object range type named the same way as Excel bookmark
// bookMark -> Excel bookmark name
public COM findRange(PPO_MSOfficeBookMark bookMark, int _workSheet = 1) // was protected
{
    COM comRange,
        comWorkSheet;
    COM comApplication;
    ;

    if (m_comDocument)
    {
        comWorkSheet   = this.getWorkSheet(_workSheet);
        comApplication = m_comDocument.application();
        comWorkSheet.activate();

        if (comWorkSheet && comApplication)
        {
            comRange = comApplication.range(bookMark);
        }
    }
    return comRange;
}
X++:
// Exporting value in Range object
// comRange -> Range object
// anyVal -> Varible for export to Range object
protected void insertValueInRange(COM _comRange, anyType _anyVal)
{
    _comRange.value2(_anyVal);
}
Думаю, преобразовать код под свои нужды сможете без проблем.
__________________
// no comments
За это сообщение автора поблагодарили: Logger (1).