Форум: "Базы";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
Внизсквозная нумерация в DbGrid Найти похожие ветки
← →
m_i_p (2006-11-03 08:07) [0]помогите плиз,
необходимо в DbGrid отобразить номера строк, как например это сделано в Excel
← →
ЮЮ © (2006-11-03 08:26) [1]В экселе в натуре 65536 строк. А в гриде не больше того, что может войти в грид.
Сделай в DataSete calculated поле, в котором присваивай DataSet.RecNo и выведи его в грид. Или отрисовывай в гриде сам DataSet.RecNo.
P.S. Только с фильтрацией, если используешь, придется расстаться
P.P.S. А оно вообще нало? Что этот номер может дать кому-то полезного?
← →
Anatoly Podgoretsky © (2006-11-03 08:46) [2]> ЮЮ (03.11.2006 08:26:01) [1]
Может, тетя Люба подерется с тетей Валей.
Например так: ты что дура в строке 6 сумма к оплате 500, сама дура там 750
← →
evvcom © (2006-11-03 11:00) [3]> [2] Anatoly Podgoretsky © (03.11.06 08:46)
А потом вместе пойдут бить морду программисту. :-)
← →
Павел Калугин © (2006-11-03 11:06) [4]можно пронимеровать результат выдачи например так:
select a.au_lname+" "+ a.au_fname as author,
phone,
(select count(*)
from authors b
where b.au_lname+" "+ b.au_fname <= a.au_lname+" "+ a.au_fname
) As RowNumber
from authors a
order by author
но, вопрос в том для чего оно?
в гриде, мое мнение, это излишество.
в некоторых отчетах - необходимость.
← →
Sergey13 © (2006-11-03 11:09) [5]> [4] Павел Калугин © (03.11.06 11:06)
> в некоторых отчетах - необходимость.
Некоторые, если не все, репортеры с успехом нумеруют сами.
← →
Павел Калугин © (2006-11-03 11:37) [6]> [5] Sergey13 © (03.11.06 11:09)
Некоторые - да.
а вот большинство - нет.
Ибо в большинстве отчет это просто текстовый файл, в формате указанном заказчиком по каналам электронной связи передаваемый всяким контролерамю.
или rtf формат по почте электрияеской клиентам рассылаемый.
а в частности можно и в Кристале красивости рисовать.
← →
Johnmen © (2006-11-03 11:42) [7]
> Павел Калугин © (03.11.06 11:37) [6]
> Некоторые - да. а вот большинство - нет.
Я вот скажу, что все репортёры нумеруют сами. Если, конечно же, их попросить.
← →
Павел Калугин © (2006-11-03 12:05) [8]> [7] Johnmen © (03.11.06 11:42)
умеют, кто бы спорил...
но большинство отчетов которые я видел - в TMemo собираем текст и SaveToFile его.
← →
Stanislav © (2006-11-03 12:22) [9]а в MSSQL 2005 есть спец. фнкция.
← →
Кщд © (2006-11-03 12:57) [10]
> а в MSSQL 2005 есть спец. фнкция.
row_number
← →
Anatoly Podgoretsky © (2006-11-03 13:16) [11]> evvcom (03.11.2006 11:00:03) [3]
Вот это то и обидно, а ведь уверяли, что без этих номеров жить не могут.
← →
Anatoly Podgoretsky © (2006-11-03 13:17) [12]> Sergey13 (03.11.2006 11:09:05) [5]
А ведь не для отчетов просят.
← →
Anatoly Podgoretsky © (2006-11-03 13:18) [13]> Кщд (03.11.2006 12:57:10) [10]
Которая полетит к черту при локальной сортировке/фильтрации
← →
Кщд © (2006-11-03 13:19) [14]
> (select count(*)
> from authors b
> where b.au_lname+" "+ b.au_fname <= a.au_lname+"
> "+ a.au_fname
> ) As RowNumber
это даже на индекс не встанет
если очень хочется, то лучше, имхо, так:
create table #temp (id int, name varchar(100))
select identity(int, 1, 1) as id, t.name into #temp from sometable t
← →
Кщд © (2006-11-03 13:22) [15]
> Которая полетит к черту при локальной сортировке/фильтрации
разумеется
просто способ получить пронумерованный набор с сервера
← →
Павел Калугин © (2006-11-03 13:27) [16]> [14] Кщд © (03.11.06 13:19)
Ну, если можно ХП написать и табличку создать то проще сразу создавать с полем RowMo identyty(1,1) и вставлять туда набор данных.
Но, мое мнение, что не создавая ХП вложить всесь этот процесс в TDataSet несколько хлопотно. поздзапрос проще.
← →
sniknik © (2006-11-03 13:42) [17]> Но, мое мнение, что не создавая ХП вложить всесь этот процесс в TDataSet несколько хлопотно. поздзапрос проще.
а ты читал то на что отвечаешь? показанные там 2 строчки это и есть все "хлопоты", не показана третья с непосредственно выборкой, ну и удаление темповой тоже желательно. но это все, и гораздо проще чем еще ХП туда притягивать.
вообще на http://sql.ru гдето есть статься по этой нумерации, рассмотрено гдето 6-8 способов... и их недостатки.
← →
evvcom © (2006-11-03 14:02) [18]Да к DataSet вообще можно ничего не прикручивать. Автор же про DbGrid говорит. Простейший OnCustomDrawCell и никакой зависимости от недостатков row_num, row_number и им подобных.
← →
Johnmen © (2006-11-03 14:31) [19]
> evvcom © (03.11.06 14:02) [18]
> Да к DataSet вообще можно ничего не прикручивать. Автор
> же про DbGrid говорит. Простейший OnCustomDrawCell ....
С этого места поподробней :)
← →
Павел Калугин © (2006-11-03 16:06) [20]> [17] sniknik © (03.11.06 13:42)
естественно читал
В гриде отобразить можно что?
да хоть черта лысого. Особенно просто его отобразитиь если этот черт - набор данных
остается получить его в наборе данных.
← →
Кщд © (2006-11-03 17:52) [21]
> остается получить его в наборе данных.
посчитайте во сколько table scan это выльется
лучше уж никак, чем таким запросом...
← →
Павел Калугин © (2006-11-03 17:53) [22]> [21] Кщд © (03.11.06 17:52)
> [17] sniknik © (03.11.06 13:42)
вообще на http://sql.ru гдето есть статься по этой нумерации, рассмотрено гдето 6-8 способов... и их недостатки.
← →
Кщд © (2006-11-03 18:45) [23]
> Павел Калугин © (03.11.06 17:53) [22]
там где-либо предлагают совершить N table scan, где N - кол-во записей в выборке? :)
← →
MsGuns © (2006-11-04 01:49) [24]Засстерилитсья ! Сколько "вумных" советов и критики, и ни одного толкового совета.
TField.OnGetText(event):
Text := IntToStr(Sender.DataSet.RecNo);\
и все..
← →
Дмитрий Белькевич © (2006-11-04 02:40) [25]В качестве глупой идеи: т.к. к таблицам часто инкрементные поля - юиды добавляют, может эти юиды и показывать? Тогда пофиг фильтр/сортировка - всегда однозначность гарантирована, да и никакой дополнительной возни, только поле таблицы показать.
← →
Anatoly Podgoretsky © (2006-11-04 11:02) [26]> MsGuns (04.11.2006 1:49:24) [24]
> Text := IntToStr(Sender.DataSet.RecNo);
И это тоже самое, это самое слово. Можно дать только от не понимания
технологий работы с базами.
← →
Anatoly Podgoretsky © (2006-11-04 11:03) [27]> Дмитрий Белькевич (04.11.2006 2:40:25) [25]
> всегда однозначность гарантирована
А кто просил одназначность, одназначно реализуется с помощью первичных
ключей.
← →
MsGuns © (2006-11-04 12:05) [28]>Anatoly Podgoretsky © (04.11.06 11:02) [26]
>И это тоже самое, это самое слово. Можно дать только от не понимания
технологий работы с базами.
Сабж нетрудно перечитать, всепонимающий Вы наш ?
;)))
← →
Anatoly Podgoretsky © (2006-11-04 12:11) [29]> MsGuns (04.11.2006 12:05:28) [28]
Наоборот, непонимающий Вы наш
← →
evvcom © (2006-11-07 09:24) [30]> [19] Johnmen © (03.11.06 14:31)
OnCustomDrawCell я, конечно, погорячился. Из DevExpress этот обработчик. А для DBGrid вот:procedure TMyForm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
inherited;
if Column.FieldName = "" then
DBGrid1.Canvas.TextOut(Rect.Left, Rect.Top, IntToStr(MyDataSet.RecNo));
end;
Мог бы и провести аналогию имен :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.047 c