Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нумерация выборки???????? Доб-ть счет-к к DBGrid-у не зав. от сорт 
:(
    Опции темы
Bes
Дата 9.12.2004, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



ВСТУПЛЕНИЕ: Ребята, есть очевидная проблема, которая должна решаться быстро и легко, т.к. с этим встречается каждый первый программирующий базы данных.

УСЛОВИЯ: есть DBGrid в который помещается выборка служащих скажем получивших з/п их можно сортировать по фамилии и по з/п.
ЗАДАЧА: нужно добавить колонку в которой будет нумерация выбранных строк независимо от сортировки. т.е. по сути сделать видимым св-во ADOQuery.RecNo
ПРИМЕЧАНИЕ: Естественно приделывать доп. поле к таблице бессмысленно, т.к. нумерация в таком случае будет изменяться в зависимости от сортировки.

P.S. такое ощущение, что нужно просто где-то поставить галку, т.к. задача очевидна и решена как в ACCESSe так и в QueryAnalizer при MSSQLServer2000.
Заранее благодарен.
PM MAIL   Вверх
Dimich
Дата 9.12.2004, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Могу предложить свое решение: использовать обработик OnGetText и сделать маленький трюк:
1. Пусть например запрос был:
Код

select famil, zarplata from zzz

а мы его модифицируем к виду:
Код

select 1 as n, famil, zarplata from zzz

2. В DBGrid добавим колонку и привяжем ее к нашему полю N (без этого OnGetText не будет работать)
3. Создадим OnGetText для этой колонки:
Код

procedure TForm1.MyGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
 Text := IntToStr (Query1.RecNo);
end;


З.Ы. Извращенный способ, но работает!
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
Mal Hack
Дата 9.12.2004, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



1. Делаем первую колонку в Grid, как FixedCol.
2. После того, как получили результат выборки делаем цикл от 1 до кол-ва полученных записей и вставляем i в cells[0,i] (вроде с местом не перепутал)..

Да, при этом всатвку самих данных надо делать, начиная с первого столбца, а не нулевого.
PM ICQ   Вверх
Bes
Дата 9.12.2004, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Я чего-то не пойму, толи лыжи не едут, что ли....
Как будто мы на разных языках говорим, тьфу программируем. :-)
К Dimich: Что значит создать OnGetText для этой колонки. в смысле свое событие присобачить?... а я так не умею. :-((( это чего надо делать.
К Mal Hack: а у DBGrid нет fixedCol и cells[] это вы чего имели ввиду?...
или до них можно как-то достучаться? (если я правильно понимаю иерархию компонентов), опять же тогда как это сделать.
P.S. тут или вы сильно умные или я, но что-то кто-то недопонял. :-)
PM MAIL   Вверх
Mal Hack
Дата 9.12.2004, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата
К Mal Hack: а у DBGrid нет fixedCol и cells[] это вы чего имели ввиду?...
или до них можно как-то достучаться? (если я правильно понимаю иерархию компонентов), опять же тогда как это сделать.

Тьфу, млин. Да, нету...
Просто я щас с MySQL работаю и данные в обычный StringGrid кодом загоняю...
PM ICQ   Вверх
Dimich
Дата 9.12.2004, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Цитата(Bes @ 9.12.2004, 15:30)
К Dimich: Что значит создать OnGetText для этой колонки. в смысле свое событие присобачить?... а я так не умею. :-((( это чего надо делать.

Да, я имел ввиду присобачить.......
Вот в этой теме я уже рассказывал, как это делается
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
Bes
Дата 9.12.2004, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



К DIMICH: Нашел, разобрался, попробовал - получилось. Круто!
Огромное спасибо. помогли. :-) Удачи.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0686 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.