Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.01.2013, 15:35
Kis Kis вне форума
Новичок
 
Регистрация: 02.09.2011
Сообщения: 76
Репутация: 11
По умолчанию Печать DbGridEh

Здравствуйте! такой вопрос...В DbgridEh отображается база аксесс. В одном из столбцов процедура замены символов

Код:
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
begin
 if column.FieldName = 'Unit' then
   with dbgrideh1.Canvas do
   begin
     fillrect(rect);
     if adoquery1.FieldByName('Unit').AsString = 'считыватель 2-2' then
     begin
     textout(rect.Left + 39 - dbgrideh1.Canvas.TextWidth('заезд'),
     rect.Top + 2, 'заезд');
     end
     else
     textout(rect.Left + 39 - dbgrideh1.Canvas.TextWidth('выезд'),
     rect.Top + 2, 'выезд');
     end;
end; 

На экране все норм, но когда вывожу на печать, то печатается "считыватель"...как можно сделать, чтобы печаталось все таки "заезд"...?
Ответить с цитированием
  #2  
Старый 29.01.2013, 15:54
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Лучше использовать гриды для отображения информации, а всякие замены и т.п. осуществлять на уровне запроса к базе данных.
Просто это самый оптимальный вариант.

Тем более твой код просто рисует текст на канве, а не меняет значения внутри самого грида.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 29.01.2013, 15:58
Kis Kis вне форума
Новичок
 
Регистрация: 02.09.2011
Сообщения: 76
Репутация: 11
По умолчанию

А можно пример или хотя бы ссылку на построение такого запроса?
Ответить с цитированием
  #4  
Старый 29.01.2013, 16:04
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Выборку как делаешь? Код в студию.

На счет акцеса помочь не могу, только с Ораклом.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 29.01.2013, 16:14
Kis Kis вне форума
Новичок
 
Регистрация: 02.09.2011
Сообщения: 76
Репутация: 11
По умолчанию

Выборка простая...

Код:
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT * FROM events where events.message = "проход совершен" ');
  ADOQuery1.Active := True;

Просто представления даже не имею, как можно запросом "заменить слова"...и нагуглить не могу пока ничего полезного)
Ответить с цитированием
  #6  
Старый 29.01.2013, 16:19
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

примерно так, не помню только может ли акцесс работать с IIF
Код:
SELECT *, IIF(unit = 'считыватель 2-2', 'заезд', 'выезд') as new_str FROM events where events.message = "проход совершен" 

гугление
в частности это
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз

Последний раз редактировалось Yurk@, 29.01.2013 в 16:22.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:21.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025