![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Лишние знаки после запятой при отображ. результ. запр.в DBGreed [D7, IB6.x]
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'