Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Формат отображения числа [D7, Win95/98, WinME, Win2k, WinXP]


Максим ©   (2004-07-02 14:05:00) 

Здравствуйте, подскажите, пожалуйста. Данные находятся на MS SQL Server 2000, для доступа к ним использую TADOQuery, поставщик-Microsoft OLE DB Provider for Sql Server. Полученные данные надо забрасывать в Excel. А также надо иметь возможность редактировать данные, для чего  использую TDBGrid. Получается такая ерунда. Если устанавливаю на Server тип данных как decimal and numeric(эти типы больше всего соответствуют «реальным» числам), то Excel их почему-то  переформатирует в какой то тип подставляю знак $ перед каждым числом, и изменить тип числа в Excel потом ни как не получается (остается $ и не подходящие для дальнейших арифм. операций разделители). Поэтому вынужден на сервере устанавливать тип как Real. Числа этого же типа отображаются в TDBGrid например так 45,7272626738349476, что вряд ли кого устроит.
Свойства Tfield.MaskEdit  использовать не могу так как числа с плавающей точкой.
Свойства Tfield.DisplayFormat вообще почему то в Delphi7 нет. Как быть.


menart   (2004-07-03 08:50:00) [1]

http://delphimaster.ru/cgi-bin/forum.pl?id=1088496646&n=8


Максим   (2004-07-03 04:32:00) [2]

Доступ к серверу(Excel) осуществляется методом раннего связывания. А забрасываю в Excel так
OLEVariant(FApplication).Range[RName].Resize(numRows,numFields):= Data;, где Data: Variant;
(Data:= VarArrayCreate([1,numRows,1,numFields],varVariant);), далее в двойном цикле так
Data[cRow+1,cField+1] := Fields[cField].AsVariant;. Преобразование к OLEVariant вариант необходимо так как доступ к Range осуществляю по имени(RName), что к сожелению нельзя сделать с помощью описанного в Delphi объекта Range.
Скорее всего Delphi неадекватно "понимает" decimal и numeric, но даже если это так, как быть я не пойму.


Тимохов   (2004-07-02 14:10:00) [3]

как в эксель выбрасываешь?


Наверх

Титульная страница Поиск, карта сайта Написать письмо