Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DBGrid нормальный вывод информации

520
22 сентября 2007 года
inkognitum
155 / / 03.05.2006
Добрый день!

Есть таблица контрагентов

Поля:
id - уникальный номер контрагента
name - наименование
id2 - уникальный номер головного контрагента

я дела нормальный вывод в копоненте DBGrid, настраиваю Columns

и как сделать, чтобы вместо id2 выводилось поле name из справочника контрагентов а не число.

допестим данные
id name id2
1 ; Вовочкин Вова ; 54235;
...
54235; Малышев Андрей; 26451;

а при выводе в DBGrid вывелось допустим не 54235 а Малышев Андрей

Заранее спасибо!
317
22 сентября 2007 года
Relax
573 / / 20.09.2000
перехватывай событие отрисовки ячейки столбца id2. в этом событии вытаскивай из другой таблицы текст и выводи его на канву таблицы с соответствующим смещением
2.1K
23 сентября 2007 года
mainigor
151 / / 21.10.2005
Цитата: Relax
перехватывай событие отрисовки ячейки столбца id2. в этом событии вытаскивай из другой таблицы текст и выводи его на канву таблицы с соответствующим смещением



это чего за перехват ?

просто

 
Код:
select t1.id, t1.name, t2.name
  from table1 t1
       INNER JOIN table2 t2 ON (t1.id_2 = t2.id)

это можно подставить для вывода в Grid.
тот случай, что описан выше хорош для отрисовки изображений, а тексты Grid и сам ничего так рисует.:)
520
23 сентября 2007 года
inkognitum
155 / / 03.05.2006
Цитата: mainigor
это чего за перехват ?

просто
 
Код:
select t1.id, t1.name, t2.name
  from table1 t1
       INNER JOIN table2 t2 ON (t1.id_2 = t2.id)

это можно подставить для вывода в Grid.
тот случай, что описан выше хорош для отрисовки изображений, а тексты Grid и сам ничего так рисует.:)



большое спасибо, я конечно думал запросом приджонить но думал есть другой способ. темболее я пользуюсь ADOTable, думал может какнить можно просто ссылочно скрестить... VS2005 позволяет такие штуковины делать.

520
23 сентября 2007 года
inkognitum
155 / / 03.05.2006
Цитата: mainigor
это чего за перехват ?

просто
 
Код:
select t1.id, t1.name, t2.name
  from table1 t1
       INNER JOIN table2 t2 ON (t1.id_2 = t2.id)

это можно подставить для вывода в Grid.
тот случай, что описан выше хорош для отрисовки изображений, а тексты Grid и сам ничего так рисует.:)



не работает :)

select * from kontragents t1 INNER JOIN kontragents t2 ON (t1.id = t2.id_kontr)

вот запрос. он наверное не может сам на себя ссылатся. :(

2.1K
23 сентября 2007 года
mainigor
151 / / 21.10.2005
Цитата: inkognitum
не работает :)

select * from kontragents t1 INNER JOIN kontragents t2 ON (t1.id = t2.id_kontr)

вот запрос. он наверное не может сам на себя ссылатся. :(



я то думал таблицы две.
вот вариант :

 
Код:
SELECT distinct k1.ID, k1.NAME, k2.Name
 FROM KOTRAGENTS k1, KOTRAGENTS k2
   WHERE k1.id_2=k2.id

у меня работает
1
24 сентября 2007 года
kot_
7.3K / / 20.01.2000
Цитата: inkognitum
не работает :)

select * from kontragents t1 INNER JOIN kontragents t2 ON (t1.id = t2.id_kontr)

вот запрос. он наверное не может сам на себя ссылатся. :(


Во первых - нормально построить базу данных.
Во вторых - ничто не мешает запросу ссылаться на самого себя, т.е. конструкция типа:

 
Код:
select * from kontragents t1 INNER JOIN kontragents t2 ON (t1.id = t2.id_kontr)

выглядит уродливо и не оптимально но вполне допустимо - при одном но - обязательно должен быть признак - генеральный это контрагент или нет или же ввести условие что уровней вложенности может быть не более одного. Т.е. окончательный вариант может быть примерно таким:
 
Код:
select t1.id, t1.name,t2.id AS gid,t2.name AS gname from kontragents t2 INNER JOIN kontragents t1 ON (t2.id = t1.id_kontr)
263
24 сентября 2007 года
koltaviy
816 / / 16.12.2004
Цитата: inkognitum
большое спасибо, я конечно думал запросом приджонить но думал есть другой способ. темболее я пользуюсь ADOTable, думал может какнить можно просто ссылочно скрестить... VS2005 позволяет такие штуковины делать.


Lookup поле используй!!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог