Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];

Вниз

Лишние знаки после запятой при отображ. результ. запр.в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.005 c
2-1228125086
Sasha
2008-12-01 12:51
2009.01.18
Клиент-серверное приложение


15-1227298788
DillerXX
2008-11-21 23:19
2009.01.18
Активное шумоподавление


2-1228465214
1234567
2008-12-05 11:20
2009.01.18
MessageBox


15-1227266733
istok2
2008-11-21 14:25
2009.01.18
запуск exe под админом после ребута..


2-1228224496
programmer90
2008-12-02 16:28
2009.01.18
Работа со char массивом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский