DBGrid again...
От: Rider Россия  
Дата: 11.02.02 08:59
Оценка:
Кто может помочь? У меня проблема — Необходимо в одном Гриде вывести данные из двух связанных таблиц.. Пусть главная таблица — Т1, детэйл таблица — Т2. Таблицы связаны по полю kod, таблица Т2 состоит из двух полей: kod C(6),name C(35), в гриде отображается главная таблица Т1, необходимо выводить в столбце вместо её поля kod — значение Т2.name, причём чтобы это было одновременно для всех видимых строчек грида, после прокрутки вниз значения также должны обновляться в соответствии со значениями поля T1.kod. (Приведённый ниже код работает только для одной записи из Т1...)
Кто-нибудь мог бы помочь?
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var K,N:String;
 
begin
  K:=Т1.FieldByName('KOD').AsString;
  if(Т2.Locate('KOD',Trim(K),[loCaseInsensitive]))then
  N:=Т2.FieldByName('NAME').AsString;
  if(Column.FieldName='KOD')then
   begin
    with DBGrid1.Canvas do
      begin
       Brush.Color:=clWhite;
       FillRect(Rect);
       Font.Color:=clBlack;
       TextOut(rect.Right-2-DBGrid1.Canvas.TextWidth(N),Rect.Top+2,N);
      end;
   end;
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.