|
![]() |
#1 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Gustav (2). |
![]() |
#2 |
Участник
|
Тот же результат, что и с 0.
|
|
![]() |
#3 |
Moderator
|
Да, именно так и надо делать. Лично я - сторонник этого способа
![]() У меня так происходит, если тип поля рекордсета задавать константой adDate(7). А если взять adDBDate, которая 133, то на месте нулевых дат в Excel будут желаемые пустые ячейки. Во всяком случае для сочетания Ax 3.0 SP4 + Oracle 10 + Excel 2003 это так. |
|
![]() |
#4 |
Moderator
|
Пользуясь сегодняшнем случаем наконец-то подправил в своем рабочем классе (практически в персональном "пролетариате"
![]() X++: #CCADO void setValue(anytype _fldName, anytype _fldValue) { // _fldName - можно текстовое имя, а можно числовое, начиная с 1 (!), а не 0 как в самом ADO anytype fldName; ; if (typeof(_fldName)==Types::Integer) fldName = _fldName - 1; else fldName = _fldName; fld = flds.Item(fldName); // COM flds и fld - полЯ и полЕ рекордсета, определены в Class Declaration if (! ((fld.Type()==#adDate || fld.Type()==#adDBDate) && !_fldValue) ) { fld.Value(_fldValue); // если непустая дата или любое др.значение } // иначе если значение - пустая дата, то вообще не прописываем в поле } X++: if (ltDb.TransDate)
out2xls.setValue(nextNum(),ltDb.TransDate); |
|
Теги |
ado, comvariant, excel, faq, odbc, sql, интеграция, прямой доступ, формат дат, экспорт, экспорт в excel |
|
|