![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Порядковый номер в наборе данных [D6, IB6.x]
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);