Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

Изменение порядка значений при экспорте в Excel   Найти похожие ветки 

 
petrovskyi   (2006-11-16 13:49) [0]

Фигня какая-то получается. Есть ADODataSet полученный из хранимой процедуры. В EhDbGrid (EhLib v.4.1, недавно установил) вся информация отображается правильно. А вот при выбросе информации в Excel в некоторых полях (на первый взгляд абсолютно без системы, потому что все числовые поля в Delphi имеют тип BCDField) значение учеличивается на 4 порядка. Причем это только во вновь разрабатываемом модуле. В старых модулях все нормально.  Есть, правда еще один ньюанс: на днях переустанавливал ПО на компьютере и вместо MS Office 2000  установил MS Office 2003, а в Delphi используется модуль Excel2000.
Кто что может объяснить?


 
Vadim.Spb   (2006-11-16 13:58) [1]

Чтобы не попадать на такие и прочие ошибки - проще один раз освоить экспорт в Excel не через компоненты, а своим кодом.


 
Petrovskyi   (2006-11-16 14:12) [2]

В том то и дело, что работаю не через компоненты, а аналогичный код в других модулях, написанных ранее, рабатает нормально.


 
ANB ©   (2006-11-16 14:45) [3]


> Petrovskyi   (16.11.06 14:12) [2]

преобразуй в строку и не мучайся. а в экселе сделай формат ячейки числовой


 
Vadim.Spb   (2006-11-16 15:25) [4]

Petrovskyi [2]
Так покажи код!


 
Petrovskyi   (2006-11-16 15:38) [5]

>ANB [3]
Так преобразовываю и форматирую

> Vadim.Spb [4]
вот код

   ...
   ISheet.Range["B7:B12", EmptyParam].NumberFormat := "# ### ##0";
   ISheet.Range["C6:C12", EmptyParam].NumberFormat := "# ### ##0";
   ISheet.Range["D6:D12", EmptyParam].NumberFormat := "# ### ##0";
   ISheet.Range["E6:E12", EmptyParam].NumberFormat :=  "# ##0"+DecimalSeparator+"00";

   MngApprArray := VarArrayCreate([0,5,0,4], varVariant);
   with ADODataSet02 do begin
     first;
     i := 0;
     while not eof do begin
       MngApprArray[i,0] := FieldByName("Field1").asString;
       MngApprArray[i,1] := CurrToStr(FieldByName("Field2").AsCurrency);
       MngApprArray[i,2] := CurrToStr(FieldByName("Field3").AsCurrency);
       MngApprArray[i,3] := CurrToStr(FieldByName("Field4").AsCurrency);
       MngApprArray[i,4] := FloatToStr(FieldByName("Field5").Value);
       i := i + 1;
       next;
     end;
   end;
   IRange.Value := MngApprArray;



 
ANB ©   (2006-11-16 16:31) [6]


> Petrovskyi   (16.11.06 15:38) [5]

Убрать формат попробуй


 
Petrovskyi   (2006-11-16 16:51) [7]

> Vadim.Spb [6]
Попробовал - не помогло.
А помогло - вывод самих полей без преобразования в строку.
Почему так - не понимаю. Но вопрос закрыт.
Всем спасибо за помощь.



Страницы: 1 вся ветка

Текущий архив: 2007.02.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.074 c
2-1168772080
Garacio
2007-01-14 13:54
2007.02.04
в ListView правильно SubItems.add или SubItems.Strings


2-1169307240
wl
2007-01-20 18:34
2007.02.04
Реализация алгоритма поиска по словарю


2-1168871380
pound
2007-01-15 17:29
2007.02.04
сделать перетаскиваемую форму за любое место


1-1163595674
thevalery
2006-11-15 16:01
2007.02.04
Unicode Caption/Hint


15-1168873817
pasha_golub
2007-01-15 18:10
2007.02.04
Адрес веб-интерфейса для регистрации Турбо Делфай Проф