Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Порядковый номер в наборе данных [D6, IB6.x]


Страницы:   1 2 3

erika ©   (2005-09-14 09:02:00) 

Здравствуйте!
Необходимо вывести порядковый  номер записи, для отображения пользователю  в  DBGrid:
1. Существует  таблица  TT с полями artpost (varchar), colorpost (varchar), kolzak (numeric 15,2), innpost (varchar)
2. Существует таблица ХХ с  полями innpost (varchar), namepost (varchar)
3. Формируется следующий  запрос
  select ТТ.artpost, ТТ.colorpost, ТТ.kolzak, ХХ.namepost
  inner join ХХ on (ТТ.innpost = ХХ.innpost) and (kolzak=5), где   5 - это любое число задаваемое пользователем.
3. Получаем набор данных отображаемый  по средством  DBGrid пользователям, в котором ДОЛЖНО ОТОБАЖАТЬСЯ В НОВОМ ПОЛЕ ПОРЯДКОВЫЙ НОМЕР СРОКИ.

Поле содержащее порядковый  номер записи не подходит. Пробовала
  select count (*),ТТ.artpost, ТТ.colorpost, ТТ.kolzak, ХХ.namepost
  inner join ХХ on (ТТ.innpost = ХХ.innpost) and (kolzak=5)
не вышло.
Подскажите пожалуйста, как выполнить поставленную задачу.
Заранее благодарна.


erika   (2005-09-14 09:38:00) [41]

Пользователь хочет иметь такую информацию, отговорить пыталась.


Anatoly Podgoretsky   (2005-09-14 09:27:00) [42]

erika ©   (14.09.05 09:02)  
Зачем?
Это лишняя путающая пользователя информации, не имеющая практической ценности. Обычно номера нужны только в отчетах и там они нормально делаются средсвами отчета.

msguns ©   (14.09.05 09:15) [1]
Только RecNo не обязан быть подряд и отражать порядок сортировки и фильтрации.


erika   (2005-09-14 09:25:00) [43]

В поле ID - gen_id - PK и  оно отображает сквозную нумерацию всех записей.
Например, можно  произвести построение запроса примерно следующего типа:

select sum(XX.zena) sum_zena, ТТ.artpost, ТТ.colorpost, ТТ.kolzak, ХХ.namepost
from TT
 inner join ХХ on (ТТ.innpost = ХХ.innpost) and (kolzak=5)
group by ТТ.artpost, ТТ.colorpost, ТТ.kolzak, ХХ.namepost

Только вместо - sum(XX.zena) sum_zena -  что-то типа recno
дело в  том, что отображение данных будет не только через D6, поэтому  енобходимо прописть в  запросе.


msguns   (2005-09-14 09:15:00) [44]

В датасете должно быть одно поле, которое не нужно отображать (чаще всего это ID). Помещаем его в грид слева. В обработчике OnGetText этого поля пишем

Text := IntToStr(Field.DataSet.Recno);


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо