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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.07.2010, 16:43   #1  
Toto is offline
Toto
Участник
 
2 / 10 (1) +
Регистрация: 09.07.2010
Ошибка времени выполнения в ComExcelDocument_RU.findRange()
DAX 2009 и Excel 2007.

При вызове метода insertRows класса ComExcelDocument_RU, по непонятным мне причинам, на одних и тех же данных время от времени вываливается ошибка времени выполнения "неправильные типы аргументов в операции присвоения значения переменной" на 18 строке метода findRange
X++:
comApplication = m_comDocument.application();
. Если пошагово под отладчиком пройти данные методы, то ошибки не возникает, но стоит запустить на выполнение в нормальном режиме - может возникнуть ошибка.

метод insertRows
X++:
void insertRows(int _fromRow,
                int _toRow,
                int _fromWorkSheet = 1,
                int _offset        = 1,
                int _numOfCopies   = 1,
                // CIT_MSOfficeReport, kirp -->
                /*
                int _toWorkSheet   = 1)
                */
                int                 _toWorkSheet        = 1,
                MSOfficeBookMark_RU _copyFromBookmark   = "")
                // CIT_MSOfficeReport, kirp <--
{
    COM         comRows,
                comWorkSheet,
                comRow, comRowTarget, selection;
    COMVariant  comRowVariant, selVariant;
    ;

    if (_numOfCopies <= 0)
        return;

    if (! m_comDocument)
        throw error(strfmt("@GEE6401", this.getApplicationName()));

    // CIT_MSOfficeReport, kirp -->
    if (_copyFromBookmark)
    {
        comRow = this.findRange(_copyFromBookmark, _fromWorkSheet);
        comRow.copy();
    }
    else
    {
    // CIT_MSOfficeReport, kirp <--

        comRow = this.findRange(strFmt("%1:%2", _fromRow, _toRow), _fromWorkSheet);
        comRow.copy();
    // CIT_MSOfficeReport, kirp -->
    }
    // CIT_MSOfficeReport, kirp <--

    comRowTarget = this.findRange(strFmt("%1:%2", _fromRow + _offset, _fromRow + _offset + (_toRow - _fromRow + 1) * _numOfCopies - 1), _toWorkSheet);
    comRowTarget.select();
    comRowTarget.insert();

    comWorkSheet  = this.getWorkSheet(_toWorkSheet);
    comRows = comWorkSheet.cells();
    comRows = COM::createFromVariant(comRows.item(1));
    comRows.select();
    m_comApplication.cutCopyMode(false);
}
метод findRange
X++:
// Creates object range type named the same way as Excel bookmark
// bookMark -> Excel bookmark name
// CIT_MSOfficeReport, ilso -->
/*
protected COM findRange(MSOfficeBookMark_RU bookMark, int _workSheet = 1)
*/
public COM findRange(MSOfficeBookMark_RU bookMark, int _workSheet = 1)
// CIT_MSOfficeReport, ilso <--
{
    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;
}
insertRows вызывается с первыми 5 параметрами.
Подскажите, пожалуйста, в чем может быть дело.

PS. В поиске ничего не нашел.
Теги
com-объект, excel, thread, асинхронный com, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка времени выполнения DmitryS DAX: Администрирование 5 17.06.2010 13:14
Ошибка времени выполнения: В NumberSeqReference_Empl_RU (Объект), не найден исполнимый код метода "loadModule" Ksju DAX: Функционал 14 21.10.2009 13:00
Ошибка времени выполнения Stas[SNRC] DAX: Программирование 6 12.03.2008 12:21
Ошибка времени выполнения Didukh84 DAX: Программирование 19 06.03.2008 09:11
Ошибка времени выполнения: Binary (Объект), метод string вызван с недопустимыми параметрами. mmm DAX: Программирование 4 15.05.2007 16:00

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

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

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