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

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

Лишние знаки после запятой при отображ. результ. запр.в DBGreed [D7, IB6.x]


Страницы:   1 2

linx ©   (2008-12-04 15:03:00) 

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


MsGuns   (2008-12-06 02:15:00) [1]

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

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


Anatoly Podgoretsky   (2008-12-05 12:04:00) [2]

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

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


Amoeba   (2008-12-05 12:02:00) [3]


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

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

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


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


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


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


Amoeba   (2008-12-05 11:02:00) [5]


> Сергей М. ©   (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';


linx   (2008-12-05 09:45:00) [6]

Сергей М.

Спасибо!!!


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

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

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


linx   (2008-12-05 09:40:00) [8]

Ты F1 нажимал ?

Да


linx   (2008-12-05 09:40:00) [9]

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


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


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


Ты F1 нажимал ?


linx   (2008-12-05 09:29:00) [11]


> 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 02:21:00) [12]

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


MsGuns   (2008-12-05 01:55:00) [13]

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


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


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


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


MsGuns   (2008-12-05 01:38:00) [15]

>Флеймим'с?

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


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


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

Флеймим'с?


MsGuns   (2008-12-04 23:21:00) [17]

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

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


Anatoly Podgoretsky   (2008-12-04 19:40:00) [18]

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

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


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

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

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

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


linx   (2008-12-04 17:51:00) [20]

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'


Страницы:   1 2

Наверх

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