powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ПРОБЛЕМА!!! Как заполнить таблицу?
12 сообщений из 12, страница 1 из 1
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32198668
Desteft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Помогите пожалуйста, есть столбец в TDBGrid, значения в котором полученны с помощью SQL запроса, нужно чтобы в столбце вместо значения 1 отображалось значение "Да", а вместо значения 0 отображалось значение "Нет". Заранее спасибо.
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32198699
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно по разному ,
можно сделать с помошью LookUp поля а можно
на событие OnDrawGridCell (точно непомню)
выводить сооветсвующий текст ...
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32198735
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополню. Можно непосредственно в запросе преобразовать, можно вычисляемое поле создать, можно обработчик поля OnGetText заюзать. Выбирай. А лучше EhLib юзать и галку поставить.
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32198751
Hammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть несколько вариантов:
1. На форме уже существует ClientDataSet и его поля совпадают с TAdoQuery.
1.1 procedure TForm1.FormCreate( ... )
begin
...
ClientDataSet.CreateDataSet;
...
end;
1.2 procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
ClientDataSet.EmptyDataSet;
ClientDataSet.AppendRecord( [ ... ] );
end;

2. На форме уже существует ClientDataSet и у него нет полей, а в TAdoQuaery есть.
2.1 procedure TForm1.FormCreate( ... )
begin
...
ClientDataSet.CreateDataSet;
ClientDataSet.Data := Null;
ClientDataSet.FieldDefs.BeginUpdate;
ClientDataSet.FieldDefs := ADOQuery1.FieldDefs
ClientDataSet.FieldDefs.EndUpdate;
...
end;
2.2 procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
ClientDataSet.EmptyDataSet;
ClientDataSet.AppendRecord( [ ... ] );
end;

3. На форме нет ClientDataSet.
3.1
implementation

{$R *.DFM}
var
CDS: TClientDataSet;

3.2 procedure TForm1.FormCreate( ... )
begin
...
CDS := TClientDataSet.Create( nil );
ClientDataSet.Data := Null;
ClientDataSet.FieldDefs.BeginUpdate;
ClientDataSet.FieldDefs := ADOQuery1.FieldDefs
ClientDataSet.FieldDefs.EndUpdate;
...
end;
3.3 procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
ClientDataSet.EmptyDataSet;
ClientDataSet.AppendRecord( [ ... ] );
end;

3.4 procedure TForm1.FormClose( ... )
begin
CDS.Free;
end;
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32198762
Desteft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не подскажишь как с помощью запроса сделать, OnGetText - событие какой компоненты и что такое EhLib. Спасибо.
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32198779
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не подскажишь как с помощью запроса сделать,

это для сиквела

Код: plaintext
1.
2.
3.
SELECT
...
colYesNo = CASE WHEN colSomeField =  0  THEN 'Нет' ESLE 'Да' END,
...


OnGetText - событие какой компоненты

TField

и что такое EhLib.

http://www.farpost.com/personal/dmitryb/
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32198802
Desteft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что такое colYesNo и colSomeField. Cпасибо.
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32198821
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое colYesNo и colSomeField. Cпасибо.

8-)

colYesNo это алиас для выражения, вычисляемого в CASE. А colSomeField - это то поле, где храниться 0\1. Тыж не написал как поле называется, вот я его так и назвал.
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32199392
Desteft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Select не работает, ругается на = перед CASE.
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32199456
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С какой субд работаешь?
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32199467
Desteft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С Interbase 7
...
Рейтинг: 0 / 0
ПРОБЛЕМА!!! Как заполнить таблицу?
    #32199651
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, синтаксиса Interbase не знаю. Поддерживает ли он CASE? Может так надо:

Код: plaintext
1.
2.
3.
SELECT
...
  CASE WHEN colSomeField =  0  THEN 'Нет' ESLE 'Да' END AS colYesNo,
...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ПРОБЛЕМА!!! Как заполнить таблицу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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