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

Вниз

Лишние знаки после запятой при отображ. результ. запр.в DBGreed   Найти похожие ветки 

 
linx ©   (2008-12-04 15:03) [0]

Если в ячейку вводится натуральное число - то в таблице так и сохраняется, и, далее так и отображается, если я хочу просмотреть содержимое через DBGreed, а если вводится число дробное, то даже 2 знака после запятой(исходного числа) превращаются в 13, и отображаются соответственно.


 
MsGuns ©   (2008-12-04 15:05) [1]

TField.DisplayFormat + F1


 
linx ©   (2008-12-04 15:31) [2]

Ой, если не трудно, как прикрутить его к DBGreed? Я не спец..


 
linx ©   (2008-12-04 15:35) [3]

Виноват DBGrid..


 
Сергей М. ©   (2008-12-04 15:36) [4]

А как ты тогда умудрился "прикрутить" DBGrid к DataSource, а DataSource к Query, если ты "не спец" ?

Наверно, все-таки Инспектором Объектов воспользовался ?


 
Правильный$Вася   (2008-12-04 15:42) [5]


> Greed

это жадность


 
linx ©   (2008-12-04 16:15) [6]


> А как ты тогда умудрился "прикрутить" DBGrid к DataSource,
>  а DataSource к Query, если ты "не спец" ?

у меня была сложная и длинная жизнь.. Когда-то имел некоторую практику.

А где в инспекторе объектов?


 
KilkennyCat ©   (2008-12-04 16:30) [7]

справа


 
linx ©   (2008-12-04 16:50) [8]

Может через OnDrawDataCell?


 
Anatoly Podgoretsky ©   (2008-12-04 16:53) [9]

> linx  (04.12.2008 16:15:06)  [6]

Дважды щелкни по набору данных, у тебя это Query и добавь все поля, затем сможешь управлять в инспекторе объектов


 
Сергей М. ©   (2008-12-04 17:02) [10]


> Может через OnDrawDataCell?


Не трожь грид - он не виноват.
Если хочешь в динамике форматировать вещ.значение, чтобы не трогать дизайн-тайм, то достаточно сразу после открытия запроса назначит соотв.полю набора свой обработчик OnGetText


 
linx ©   (2008-12-04 17:22) [11]

У меня запрос формируется динамично, после выполнения запроса, полагаю, надо свойство поля задать
Должна быть строка типа   DataModule7.IBQuery22.Fields.FieldByName("cenaopt1").DisplayFormat:="#.00";
или   DataModule7.IBQuery22["cenaopt1"].DisplayFormat:="#.00";
Но при компиляции получаю ошибку..


 
linx ©   (2008-12-04 17:40) [12]

procedure TDataModule7.IBQuery22CenaOpt1GetText(Sender: TField;
 var Text: String; DisplayText: Boolean);
begin
 IBQuery22.FieldByName("CenaOpt1").DisplayText:=FloatToStr(FormatFloat(IBQuery["C enaOpt1"], "0,00"));
end;

Так?


 
linx ©   (2008-12-04 17:51) [13]

procedure TDataModule7.IBQuery22CenaOpt1GetText(Sender: TField;
 var Text: String; DisplayText: Boolean);                                                                  // TFloatField
begin
 IBQuery22.FieldByName("CenaOpt1").DisplayFormat:="#,00";
end;

Получаю:
[Error] Unit7.pas(573): Undeclared identifier: "DisplayFormat"


 
linx ©   (2008-12-04 19:14) [14]

Anatoly Podgoretsky ©   (04.12.08 16:53) [9]

Дважды щелкни по набору данных, у тебя это Query и добавь все поля, затем сможешь управлять в инспекторе объектов

После изменения значения DisplayFormat для нужных полей в инспекторе объектов добиться правильного отображения чисел в таблице удалось, но изменить значение DisplayFormat через строчку типа IBQuery22.FieldByName("CenaOpt1").DisplayFormat:="#,00"; так и не получилась.. :(


 
Anatoly Podgoretsky ©   (2008-12-04 19:40) [15]

> linx  (04.12.2008 17:51:13)  [13]

Все правильно у TField нет такого свойства.


 
MsGuns ©   (2008-12-04 23:21) [16]

>linx ©   (04.12.08 19:14) [14]
>значение DisplayFormat через строчку типа IBQuery22.FieldByName("CenaOpt1").DisplayFormat:="#,00"; так и не получилась.. :(

Нада "#.00"
Это недокументированная, секретная фича, зашитая борландами в делфу по спецзаказу ЦРУ США.
Она еще, кстати, доступна не для всех, а только для наследников TNumericField, но для Вашего случая подойдет  :)


 
Германн ©   (2008-12-05 01:11) [17]


> MsGuns ©   (04.12.08 23:21) [16]

Флеймим"с?


 
MsGuns ©   (2008-12-05 01:38) [18]

>Флеймим"с?

Это где - ткни носом


 
Германн ©   (2008-12-05 01:46) [19]


> Это где - ткни носом


> Нада "#.00"
> Это недокументированная, секретная фича, зашитая борландами
> в делфу по спецзаказу ЦРУ США.


 
MsGuns ©   (2008-12-05 01:55) [20]

А ну докажи, что это не правда ;)


 
Германн ©   (2008-12-05 02:21) [21]

Да пошёл бы ты!


 
linx ©   (2008-12-05 09:29) [22]


> Anatoly Podgoretsky ©   (04.12.08 19:40) [15]
>
> > linx  (04.12.2008 17:51:13)  [13]
>
> Все правильно у TField нет такого свойства.


А как же это:
"MsGuns ©   (04.12.08 15:05) [1]

TField.DisplayFormat + F1
"
?
А у чего это свойство есть???


 
Сергей М. ©   (2008-12-05 09:33) [23]


> linx ©   (05.12.08 09:29) [22]


Ты F1 нажимал ?


 
linx ©   (2008-12-05 09:40) [24]

TNumericField.DisplayFormat так правильно?
А как объяснить делфи что поле "CenaOpt1" - это TNumericField?
Вопросы ламерские наверно.. Уж извините..


 
linx ©   (2008-12-05 09:40) [25]

Ты F1 нажимал ?

Да


 
Сергей М. ©   (2008-12-05 09:42) [26]

TNumericField(IBQuery22.FieldByName("CenaOpt1")).DisplayFormat:="#,00";

Это называется приведение типа.


 
linx ©   (2008-12-05 09:45) [27]

Сергей М.

Спасибо!!!


 
Amoeba ©   (2008-12-05 11:02) [28]


> Сергей М. ©   (05.12.08 09:42) [26]
>
> TNumericField(IBQuery22.FieldByName("CenaOpt1")).DisplayFormat:
> ="#,00";
>
> Это называется приведение типа.
>

А если это поле не TNumericField? Что получим при прямом приведении без проверки типа?

Тогда уж как минимум:
(IBQuery22.FieldByName("CenaOpt1") as TNumericField).DisplayFormat:="#,00";
будет исключение.

А так правильно:
if IBQuery22.FieldByName("CenaOpt1") is TNumericField then
 TNumericField(IBQuery22.FieldByName("CenaOpt1")).DisplayFormat:="#,00";


 
Сергей М. ©   (2008-12-05 11:07) [29]


> А если это поле не TNumericField?


В его случае точно TNumericField.


 
Amoeba ©   (2008-12-05 12:02) [30]


> Сергей М. ©   (05.12.08 11:07) [29]
>
>
> > А если это поле не TNumericField?
>
>
> В его случае точно TNumericField.

Тогда, конечно, другое дело, раз тип поля программисту заведомо известен.

В данном случае хотелось дать понять автору вопроса, что прямое приведение не всегда допустимо.


 
Anatoly Podgoretsky ©   (2008-12-05 12:04) [31]

> Amoeba  (05.12.2008 12:02:30)  [30]

Необязательно заранее знать, это вполне можно узнать в рантайм, после выполнения заранее неизвестного запроса.


 
MsGuns ©   (2008-12-06 02:15) [32]

С запятой однако работать не будет

Суважением. Чукча.



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

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

Наверх




Память: 0.54 MB
Время: 0.012 c
1-1206530639
Igor_34
2008-03-26 14:23
2009.01.18
документ Word и компонент WebBrowser


15-1227246774
Math
2008-11-21 08:52
2009.01.18
Более точные вещественные числа чем Extended?


2-1228195255
Sw
2008-12-02 08:20
2009.01.18
Тип данных


15-1227101960
Mozart
2008-11-19 16:39
2009.01.18
Русский перевод фильмов bbc зло?


2-1228213679
Sasha
2008-12-02 13:27
2009.01.18
TServerSocket и интернет