Показать сообщение отдельно
Старый 12.01.2012, 19:04   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,709 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Общее правило при работе с любыми внешними (по отношению к Axapta) объектами:

Следует избегать многосоставных конструкций. Со многими точками.

А в данном случае, нужно просто явно указать класс объекта, который будет выполнять обработку. В данном случае - чтение значение ячейки

X++:
static void checkExcell(Args _args)
{
    FilePath path='';
    container conFilter = ["Файл  (*.xls)", "*.xls"];
    SysExcelApplication exappl;
    SysExcelCells excells;
    SysExcelWorksheets exsheets;
    SysExcelWorksheet exsheet;
    int row;
    real a,b;

    // Добавчик
    SysExcelCell excellOne;
    SysExcelCell excellTwo;
    ;

    path = WinAPI::getOpenFileName(0,conFilter,"", "Укажите файл ",'',"");
    if (!path) return;

    exappl = SysExcelApplication::construct();
    exappl.workbooks().open(path);
    exsheets = exappl.workbooks().item(1).worksheets();
    exsheet = exsheets.itemFromNum(1);
    excells = exsheet.cells();

    for(row = 1;row<3;row++)
    {
        // Вот это надо сделать
        excellOne = excells.item(row,1);
        excellTwo = excells.item(row,2);
        
        a = excellOne.value().double();
        //info(strfmt('%1',a));                          // строка 1
        b = excellTwo.value().double();
        info(strfmt('%1',a));                            // строка 2
        info(strfmt('%1',b));
    }

    exappl.quit();

}
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...