powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с выводом значений...
15 сообщений из 15, страница 1 из 1
Помогите с выводом значений...
    #32198247
Desteft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Помогите пожалуйста, есть столбец в TDBGrid, значения в котором полученны с помощью SQL запроса, нужно чтобы в столбце вместо значения 1 отображалось значение "Да", а вместо значения 0 отображалось значение "Нет". Заранее спасибо.
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32198307
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так сделай calculated field, в нем и выводи
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32198312
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут вариантов море:
1. Заменять прямо в запросе (CASE в FB1.5, IIF в Ya);
2. Создать вычисляемое поле
3. Использовать сетку, к примеру DBGridEh, где это можно сделать прямо в ней
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32198464
Desteft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раскажите пожалуйста поподробней про эти способы. Спасибо.
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32198509
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. SELECT ...,CASE FLAG WHEN 0 THEN 'Нет' WHEN 1 THEN 'Да' ELSE 'Не известно' END,... FROM ... (работает в FB1.5)
2. Книжку читай
3. Свойства KeyList и PickList
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32198543
Desteft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал, не работает, может что не так?
SELECT CASE image_real WHEN 0 THEN 'ds' WHEN 1 THEN 'dsq' ELSE 'dsf' END FROM IMAGE;
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32198545
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На чём пробовал? Ч ж 2 раза писал тебе, что это только в Firebird 1.5 работает.
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32198551
Desteft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, а в IB7, как надо написать?
И как используется PickList, а то в Help мало чего написано?
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32198582
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В IB 7 - никак, а в сетке в KeyList значения 0 1 пишешь, а в PicList - Нет Да
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32198633
Desteft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините но здесь нет свойства KeyList, есть только PickList. Где его искать?
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32198709
zDIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое лучшее в данном случае, сделать вычисляемое поле на клиенте, все-таки, делать такое на сервере грубовато. Для этого необходимо перед открытием набора в событии таблы OnBeforeOpen:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
procedure ...DataSetBeforeOpen(DataSet: TDataSet);
var
  Index: Integer;
  Field: TField;
begin
  if DataSet.Fields.Count <>  0  then Exit;
  DataSet.FieldDefs.Update;
  for Index :=  0  to DataSet.FieldDefs.Count -  1  do
    DataSet.FieldDefs[Index].CreateField(DataSet);
  Field := TStringField.Create(DataSet);
  Field.Calculated := True;
  Field.FieldName := 'YesNo';
  Field.Size :=  3 ;
  Field.DataSet := DataSet;
end;

ну и OnDataSetCalcFields

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure ...DataSetCalcFields(DataSet: TDataSet);
var
  Field: TField;
begin
  Field := DataSet.FindField('YesNo');
  if not Assigned(Field) then Exit;
  if DataSet.FieldByName('YesNoBinary').AsInteger =  1 
    Field.AsString := 'Нет'
  else
    Field.AsString := 'Да';
end;
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32199220
gray_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, ну что вы в самом деле. У поля в наборе данных есть событие OnGetText. В нём можно задавать значение выводимое в DBGrid.
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32199535
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А этому чуваку пофиг что есть. Ему только на 3-й раз дошло, что CASE в FB1.5 работает, что сетку нужно взять DBGridEh - это тоже ему пофиг. У меня уже сил ему отвечать нету.
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32199632
zDIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, пожалуй, ответ с OnGetText не только лучший, но и наиболее корректный (если не учитывать доп. проблемы с редактированием), я тут же правлю свой код...
...
Рейтинг: 0 / 0
Помогите с выводом значений...
    #32200798
Fighter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
До кучи... Можно ещё и прорисовывать в ячейке, хоть текст, хоть галочку какую-нить...
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с выводом значений...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]