Показать сообщение отдельно
Старый 12.03.2009, 11:41   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Следующий код у меня нормально выводит 2400 символов в ячейку:
X++:
static void Job148(Args _args)
{
    COM rstAxa;
    COM flds, fld;
    COM xlApp;
    COM wbks, wbk;
    COM wkss, wks;
    COM rng;

    str strValue;

    int adoTypeToExcel(str _type)
    {
        switch (_type)
        {
        // используются значения констант перечисления DateTypeEnum из топика TypeProperty (ADO)
        // (см. справку по ADO в файле ADO210.CHM - можно поискать на своем компе)
            case 'num' : return   5; // adDouble
            case 'str' : return   8; // adBSTR
            case 'date': return 133; // adDBDate
        }
        return 8;
    }
    ;

    strValue = '1234567890123, 1234567890123, 1234567890123, 1234567890123, 1234567890123, 1234567890123, 1234567890123, 1234567890123, 1234567890123, 1234567890123, ';
    strValue += strValue; // 20 значений
    strValue += strValue; // 40 значений
    strValue += strValue; // 80 значений
    strValue += strValue; // 160 значений (2400 символов)

    rstAxa = new COM('ADODB.Recordset');
    flds = rstAxa.Fields();
    flds.Append('strValue', adoTypeToExcel('str' ));
    rstAxa.Open();

    rstAxa.AddNew();
    fld = flds.Item('strValue'); fld.Value(strValue);
    rstAxa.Update();

    xlApp = new COM('Excel.Application');
    wbks = xlApp.Workbooks();
    wbk  = wbks.Add();
    wkss = wbk.Worksheets();
    wks  = wkss.Item(1);
    rng  = wks.Range('A1');

    rng.CopyFromRecordset(rstAxa);
    rstAxa.Close();
    xlApp.Visible(true);
}
Может быть, с методом формирования строки серийников какие-нибудь проблемы? Может, попробовать параллельно выводить серийники в инфолог?