Показать сообщение отдельно
Старый 12.03.2009, 16:32   #19  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
А если в формуле запятые на точки с запятой поменять? Думаю, в этом дело. Внес исправления в джоб - попробуйте еще раз. Появился такой фрагмент:
X++:
    str strFormula;
    COMVariant sep;
    ..........
    xlApp = new COM('Excel.Application');

    // создаем формулу с правильным разделителем списка (запятой или точкой с запятой)
    sep = xlApp.International(#xlListSeparator);
    strFormula = strFmt('=CONCATENATE(RC[-10]%1RC[-9]%1RC[-8]%1RC[-7]%1RC[-6]%1RC[-5]%1RC[-4]%1RC[-3]%1RC[-2]%1RC[-1])',
                 sep.bStr());
    ..........
    fld = flds.Item('str11'); fld.Value(strFormula);
У меня в хозяйстве есть даже отдельный статический метод (для Global):
X++:
// определение разделителя списка Excel
// нужно для диапазонов вида Range('C:C,F:F')
// Excel берем параметром из контекста задачи,
// чтобы не загружать отдельную сессию из-за единственного символа
static str excelListSeparator(COM _excelApplication)
{
    #define.xlListSeparator(5)
    COMVariant sep = _excelApplication.International(#xlListSeparator);
    ;
    return sep.bStr();
}