Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > DisplayFormat


Автор: Keeper89 10.5.2011, 14:20
Доброго времени суток.

В БД есть номер телефона в формате 0000000000, а в DBGridEh хочу отобразить как 8(000)-000-00-00. Как такое сделать?
Смотрел DispayFormat, но не хочет он у меня отображаться как надо.

Автор: pseud 11.5.2011, 11:09
Код

select
  t.phone,
  '8(' || substr(t.phone,1,3) || ')-' || substr(t.phone,4,3) || '-' || substr(t.phone,7,2) || '-' || substr(t.phone,9,2) phone_str
from 
  table1 t

Автор: Keeper89 11.5.2011, 17:27
pseud, то есть только запросом? Или например при отрисовке ячейки можно и лучше?

Автор: pseud 11.5.2011, 18:52
Цитата(Keeper89 @  11.5.2011,  17:27 Найти цитируемый пост)
pseud, то есть только запросом? Или например при отрисовке ячейки можно и лучше? 

Keeper89, не пользуюсь DBGridEh.

Автор: Keeper89 18.5.2011, 20:24
Никто не знает, как можно сделать это при отрисовке?

Автор: Keeper89 19.5.2011, 00:28
Сделал вот так:
Код

procedure TForm1.DBGridPersonsForProjectsDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
begin
  if Column.Title.Caption = 'Телефон' then
  begin
    TDBGridEh(Sender).Canvas.TextOut(Rect.Left + 2, Rect.Top + 2,
      DM.DBWrapper.FormatPhoneNumber(Column.Field.AsString));
  end
end;

Если можно лучше, буду рад выслушать.

Автор: northener 19.5.2011, 01:16
Цитата(Keeper89 @  19.5.2011,  00:28 Найти цитируемый пост)
Сделал вот так:


Цитата(Keeper89 @  19.5.2011,  00:28 Найти цитируемый пост)
 TDBGridEh


А у автора EhLib спросил?

Автор: Keeper89 19.5.2011, 02:19
Цитата(northener @  19.5.2011,  01:16 Найти цитируемый пост)
А у автора EhLib спросил? 

На их форуме?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)