![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
порядковый номер строки в дб гриде [D6, Win2k]
StarCon © (2004-09-08 09:20:00)как сделать счетчик строк первой колонкой в дб гриде?
пробовал через событие DrawColumnCell:
if Column.FieldName = 'ROWNUM' then begin
DeviceOrdList.Canvas.FillRect(Rect);
DeviceOrdList.Canvas.TextOut(Rect.Left+1,Rect.Top+2,InttoStr(DataSources.DataSet.Recno));
end;
не получается, RecNo возвращает -1 (используется BDE TQuery)
sniknik (2004-09-08 11:06:00) [1]> У грида есть св-ство Row
получится только если записей в рекордсете меньше чем в грид влазит. (когда все видно и листать не приходится)
особенность дбгрида, строк ровно сколько сколько видно (иногда на одну больше - если со шрифтами игратся rowcount сбивается).
KSergey (2004-09-08 10:51:00) [2]У грида есть св-ство Row
Ну там protected и все такое, но можно на нем попробовать поиграть
Ega23 (2004-09-08 10:15:00) [3]RecNo в ClientDataSet работает.
StarCon (2004-09-08 09:56:00) [4]мда... CalcField конечно хорошо, да вот вычислять не представляется возможным, а RecNo не работает, как я уже говорил
похоже придется через sql как-то решать...
Ega23 (2004-09-08 09:42:00) [5]SQL-запросом тоже не получается
А я и не говорил, что там всё просто.
StarCon (2004-09-08 09:28:00) [6]SQL-запросом тоже не получается
делаю порядковый номер - select rownum, * from ....
но стоит добавить order by - и порядок нумерации нарушается
CalcField сейчас посмотрю - не использовал ни разу, спасибо!
Ega23 (2004-09-08 09:22:00) [7]1. Можно в DataSet при SQL-запросе добавить.
2. Можно сделать вычисляемое поле, и в OnCalcField его считать.
3. Наверняка ещё варианты есть.
Мне больше по душе 1, хотя с ним гемора больше.