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

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

double формат в DBGrid [D7, XP]


Tany ©   (2009-03-08 13:14:00) 

Подскажите как сделать чтобы значения отображалиси с двумя нулями после запятой в столбце DBGrid - да

Данное поле имеет формат на сервере(firebird) - numeric(15,2)

должно же быть что-то вроде:
DBGrid1.Columns[0].dataformat := '###,## - рублей' ?

что-то не могу найти подобного свойсва, подскажите как правильно.
заранее большое спасибо


Плохиш   (2009-03-09 11:26:00) [1]


> Tany   (08.03.09 22:13) [11]

> как в дизайне, если не секрет?

Стоит нанять программиста.


MsGuns   (2009-03-08 22:37:00) [2]

А ведь достал (а) уже !
"Кидаешь" какой-нить потомок датасета (например TIBQuery), затем в его св-ве SQL рисуешь запрос, затем жмякаешь на TIBQuery.Active. После этого дважды клякаешь на камом TIBQuery, открывается окно редактора филдов, наводишься на нужный (который типа дробное), в окне инспектора свойств радостно наблюдаешь DisplayFormat, к который суешь курсор и настукиваешь на клаве 0.##

Так доступно, бестолочь ?


Tany   (2009-03-08 22:16:00) [3]


> sniknik ©   (08.03.09 22:10) [10]

в дизайне где можно это задать?
pl_sum.DisplayFormat := '##0.00 руб';


Tany   (2009-03-08 22:13:00) [4]


> sniknik ©   (08.03.09 22:10) [10]

как в дизайне, если не секрет?

а то вот еще чуть мазохизма:

 cl := TColumn.Create(DBGrid1.Columns);
 cl.FieldName := 'pl_sum';
 cl.Title.Caption := 'Сумма';

 cl := TColumn.Create(DBGrid1.Columns);
 cl.FieldName := 'ident_title';
 cl.Title.Caption := 'Назначение платежа';

 cl := TColumn.Create(DBGrid1.Columns);
 cl.FieldName := 'pl_data';
 cl.Title.Caption := 'Дата платежа';


sniknik   (2009-03-08 22:10:00) [5]

у тебя чего справки нету, ты по каждому свойству поля будешь вопросы задавать?

и нафига все в рантайм? мазохист? в дизайне все делается в несколько кликов мыши + нужные свойства прописать.


Anatoly Podgoretsky   (2009-03-08 22:04:00) [6]

> Tany  (08.03.2009 21:41:08)  [8]

Не надо сначала сдавать работу, такая гадость получается.
Снааоа надо учиться, учиться, учиться


Tany   (2009-03-08 21:41:00) [7]


> MsGuns ©   (08.03.09 20:22) [7]


Ок только сначало нужно сдать работу ;)

вот подскажите как теперь прикрутить сюда заголовки вместо названия полей в DBGrid


---------------------------------------------------------------
 public
   a_ident: Integer;
 end;

var
 OplaF: TOplaF;
 pl_sum: TFloatField;
 pl_data: TDateTimeField;
 ident_title: TStringField;
implementation

uses Main;

{$R *.dfm}

procedure TOplaF.FormShow(Sender: TObject);
begin

 if(MainF.IBQuery.Active = true) then MainF.IBQuery.Close;
 MainF.IBQuery.SQL.Clear;
 MainF.IBQuery.SQL.Add('select p2.ident_title, p1.pl_data, p1.pl_sum from oplata p1, ident_opl p2 where ');
 MainF.IBQuery.SQL.Add('p1.pl_ident=:pl_ident and(p2.ident_id = p1.pl_nazn) order by p1.pl_data');
 MainF.IBQuery.Params[0].AsInteger := a_ident;

 ident_title:= TStringField.Create(MainF.IBQuery);

 ident_title.FieldName := 'ident_title';
 ident_title.Index := MainF.IBQuery.FieldCount;
 ident_title.DataSet := MainF.IBQuery;
 MainF.IBQuery.FieldDefs.UpDate;

 pl_data:= TDateTimeField.Create(MainF.IBQuery);
 pl_data.FieldName := 'pl_data';
 pl_data.Index := MainF.IBQuery.FieldCount;
 pl_data.DataSet := MainF.IBQuery;
 MainF.IBQuery.FieldDefs.UpDate;

 pl_sum:= TFloatField.Create(MainF.IBQuery);
 pl_sum.FieldName := 'pl_sum';
 pl_sum.Index := MainF.IBQuery.FieldCount;
 pl_sum.DataSet := MainF.IBQuery;
 pl_sum.DisplayFormat := '##0.00 ãðí';
 MainF.IBQuery.FieldDefs.UpDate;

 MainF.IBQuery.Open;
end;

procedure TOplaF.FormHide(Sender: TObject);
begin
pl_sum.Free; pl_data.Free; ident_title.Free;
end;


MsGuns   (2009-03-08 20:22:00) [8]

Изучаем TField со всеми нисходящими до полного просветления в голове.


фыва   (2009-03-08 19:15:00) [9]


> нет такого свойсва!

А начать F1на DisplayFormatруки отсохнут?


Tany   (2009-03-08 19:13:00) [10]


> MsGuns ©   (08.03.09 17:28) [4]
> TField.DisplayFormat := '0.00' для денюх, '0.##' - для кол-
> в


нет такого свойсва!

есть:DisplayName,DisplayText,DisplayLabel,DisplayWidth


MsGuns   (2009-03-08 17:28:00) [11]

TField.DisplayFormat := '0.00' для денюх, '0.##' - для кол-в


sniknik   (2009-03-08 15:52:00) [12]

> нет ну должно быть что-то вроде?
оно и есть, что-то вроде, но только не там "где светлей", а там где его реализовали.


Tany   (2009-03-08 14:01:00) [13]


> sniknik ©   (08.03.09 13:21) [1]

нет там типа money, есть из флоатов: numeric, decimal и double precision , которые в базе хранятся как к примеру 10,00, а в DBGrid отображается как "10"

нет ну должно быть что-то вроде?
DBGrid1.Columns[0].dataformat := '###,## - рублей'


sniknik   (2009-03-08 13:21:00) [14]

> что-то не могу найти подобного свойсва
ищи не в гриде у колонок, а у полей в датасете.

и кстати если "- рублей'" то должен бы быть не numeric(15,2) а тип типа money (не в курсе что там у firebird-а но что-то денежное должно быть), тогда он в дельфи не будет к double  приводиться а тоже будет "деньгами".


Наверх

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