Показать сообщение отдельно
Старый 30.03.2007, 17:19   #15  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
А тут, как раз таки, надо воспользоваться COMDispFunction
X++:
    Com sheet;
    Com Range;
    COMDispFunction f;
    str s;

    COMVariant varArg1 = new COMVariant();
    COMVariant varArg2 = new COMVariant();
    COMVariant varArg3 = new COMVariant();
    COMVariant varArg4 = new COMVariant();
    COMVariant varArg5 = COMVariant::createNoValue();
    COMVariant varRet  = new COMVariant(COMVariantInOut::OUT_RETVAL, ComVariantType::VT_ERROR);
;
    Range = sheet.range("D10:AK258");
    s = Range.Address(true, true, -4150);
    info(s);

    f  = new COMDispFunction(app, "ConvertFormula", ComDispContext::Method);
    varArg1.bStr(s);
    varArg2.int(-4150);
    varArg3.int(1);
    varArg4.int(1);
    f.call(varArg1, varArg2, varArg3, varArg4, varArg5, varRet);
    info(varRet.bStr());
__________________
Axapta v.3.0 sp5 kr2