|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Помогите с простой задачкой DBEdit
Помогите кодом в простой ситуации. В DBEdit из базы данных отображает Всегда три числа: 1,2 или 3. Нужно сделать так, что-бы в DBEdit в место этих трех цифр отображались слова, вместо 1-ДА, 2-НЕТ и 3-НЕЗНАЮ. Помогите плиз.
|
#2
|
||||
|
||||
Цитата:
Если же нужна расшифровка, то есть много способов это сделать. Например использовать вместо TDBEdit обычный TEdit (или TComboBox) в котором "вручную" расшифровывать. Ещё можно использовать TDBLookupComboBox через временную таблицу расшифровки. А также можно расшифровку поля производить прямо в SQL-запросе. |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
BRESKON (12.10.2012)
|
#3
|
||||
|
||||
Цитата:
|
#4
|
||||
|
||||
Цитата:
Для расшифровки удобно использовать событие AfterScroll (и TDBEdit тут не нужен). Примерно так: Код:
procedure TForm1.Table1AfterScroll(DataSet: TDataSet); begin case Table1.FieldByName('Имя поля').AsInteger of 1: Edit1.Text := 'ДА'; 2: Edit1.Text := 'НЕТ'; 3: Edit1.Text := 'НЕЗНАЮ'; else Edit1.Text := '???'; end; end; |
#5
|
|||
|
|||
или, например, завести вычисляемое поле
|
#6
|
||||
|
||||
Цитата:
Правда у вычисляемых полей есть один минус - их нельзя редактировать. |
#7
|
||||
|
||||
Цитата:
Код:
unit BuhPrint; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls, Grids, DBGrids, StdCtrls, DBCtrls, Mask, DB, ADODB; type TPrintPD = class(TForm) Panel1: TPanel; MainMenu1: TMainMenu; N1: TMenuItem; Panel2: TPanel; Panel3: TPanel; DBPD: TDBGrid; DBEdit1: TDBEdit; DBCheckBox1: TDBCheckBox; DBComboBox1: TDBComboBox; Label1: TLabel; Label2: TLabel; ADOTable1: TADOTable; DataSource1: TDataSource; Edit1: TEdit; procedure N1Click(Sender: TObject); procedure TDBGridAfterScroll(DataSet: TDataSet); private { Private declarations } public { Public declarations } end; var PrintPD: TPrintPD; implementation uses DM; {$R *.dfm} procedure TPrintPD.N1Click(Sender: TObject); begin close; end; procedure TPrintPD.TDBGridAfterScroll(DataSet: TDataSet); begin case TDBGrid.FieldByName('ПлатДок').AsInteger of 1: Edit1.Text := 'ДА'; 2: Edit1.Text := 'НЕТ'; 3: Edit1.Text := 'НЕЗНАЮ'; else Edit1.Text := '???'; end; end; end. |
#8
|
||||
|
||||
Цитата:
Тебе нужно обращаться не к сетке, а к таблице - в данном случае это DataSet. А ещё у TDBGrid события AfterScroll нету и быть не может. |