Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Порядковый номер в TDBGrid / 4 сообщений из 4, страница 1 из 1
20.04.2003, 08:00
    #32144626
Costas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядковый номер в TDBGrid
Уважаемые подскажите как в TDBGrid сделать порядковый номер записи, т.е. слева столбец с номером от одного и т.д.
...
Рейтинг: 0 / 0
21.04.2003, 08:53
    #32144754
Артем1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядковый номер в TDBGrid
Добавить в DataSet вычисляемое поле и выводить туда RecNo, к примеру.
...
Рейтинг: 0 / 0
21.04.2003, 13:04
    #32145017
RomAlex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядковый номер в TDBGrid
Добавь процедуру
procedure TFormZak.SetLinks;
var BM:TBookMark;
i:integer;
begin
SetLength(Links,FormZak.TableZak.RecordCount);
if Length(Links)=0 then begin
Nilrec:=True;
Exit;
end;
with Table1 do
begin
Nilrec:=False;
Bm:=GetBookMark;
try
DisableControls;
try
First;
i:=0;
while not Eof do
begin
Links :=BookMark;
inc(i);
Next;
end;
except
end;
try
GotoBookMark(bm);
FreeBookMark(bm);
except
end;
finally
EnableControls;
end;
end;
end;

и функцию
function FindLink(bk:TBookmark; var idx: longint): Boolean;
var i:integer;
begin
Result:=false;
idx:=0;
if Length(links)=0 then Exit;
for i:=0 to Length(links)-1 do
begin
if Table1.CompareBookmarks(TBookMark(links),bk)=0 then
begin
Result:=true;
idx:=i+1;
break;
end;
end;
end;

После изменения ключа или фильтра вызывай процедуру
SetLinks;

Для отрисовки текста номера:
стандартная процедура для отрисовки

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
CurBK: TBookMark;
num:integer;
Tx : string;

begin
Tx:='';
with DBGrid1,Canvas do begin
if Column.FieldName = '' then begin
CurBk:=Table1.GetBookMark;
if FindLink(CurBk,num) then
Tx:=IntTostr(num);
end
FillRect(Rect);
if Tx<>'' then
TextOut(Rect.Left+5,Rect.Top,Tx) else
TextOut(Rect.Left+5,Rect.Top,Column.Field.Text);
end;
end;

В DBGrid добавь поле, измени только Title его, ссылку на поле не надо делать
...
Рейтинг: 0 / 0
23.04.2003, 15:49
    #32146855
MikNik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядковый номер в TDBGrid
Смотря к какой БД ты обращаешься. Если к Oracle, то это делается
элементарно:

select rownum,
d.*
from
(select <
твой запрос
>
) d.
Таким образом в первом поле этого запроса ты получаешь порядковые номера строк.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Порядковый номер в TDBGrid / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]