Показать сообщение отдельно
Старый 05.05.2010, 08:43   #4  
Roman N. Krivov is offline
Roman N. Krivov
Участник
 
25 / 11 (1) +
Регистрация: 04.05.2010
Адрес: Мир, Россия, Московская область
Ты вчерась просил ковер? Ну так я его припер!
ExcelReportFromTemplate::array2variant
X++:
static ComVariant array2variant(Array _array)
{
    Integer    idx;
    array arr = new array (types::class);
    ;

    if (_array)
    {
        for (idx=1; idx <= _array.lastIndex(); idx++)
        {
            arr.value(idx, ExcelReportFromTemplate::createVariantFromValue(_array.value(idx)));
        }
        return ComVariant::createFromArray(arr);
    }

    return ComVariant::createNoValue();
}
ExcelReportFromTemplate::createVariantFromValue
X++:
private static ComVariant createVariantFromValue(anytype _value)
{
    str     value;
    ;
    switch (typeof(_value))
    {
        case Types::String      :
        case Types::RString     :
        case Types::VarString   :
            return ComVariant::createFromStr(_value);

        case Types::Enum        :
            return ComVariant::createFromStr(enum2Value(_value));

        case Types::Integer     :
            return ComVariant::createFromInt(_value);

        case Types::Real        :
            return ComVariant::createFromReal(_value);

        case Types::Date        :
        case Types::DateTime    :
            return ComVariant::createFromDate(_value);

        case Types::Real     :
            return ComVariant::createFromReal(_value);

    }
    return ComVariant::createNoValue();
}

Последний раз редактировалось Roman N. Krivov; 05.05.2010 в 08:46.