![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проставить №п/п? [D7, XP]
deras © (2008-07-14 19:36:00)Есть FB2.0
Таблица Т1 имеет поля ID, Date, Num. Заполнены только поля ID и Date. Есть около 3 тыс. записей.
Как проставить в поле Num номер п/п записей, отсортированых по дате?
Спасибо
Тын-Дын (2008-07-15 11:17:00) [21]Удалено модератором
Примечание: Верно подмечено
Johnmen (2008-07-15 11:10:00) [22]Самый простой, и самый верный, способ - это использовать стандартную функциональность генератора отчетов. И не маятся ...й.
> Примечание: Выражения выбираем, не в пивной
Так нормально?
Sergey13 (2008-07-15 09:39:00) [23]> [0] deras (14.07.08 19:36)
> отсортированых по дате
> [2] deras (14.07.08 19:54)
> со ссылкой на первый отчет именно по полю №п/п
А почему бы не сделать ссылку на дату? №п/п получается лишним.
Johnmen (2008-07-14 22:39:00) [24]Удалено модератором
Примечание: Выражения выбираем, не в пивной
Loginov Dmitry (2008-07-14 22:35:00) [25]> Как проставить в поле Num номер п/п записей, отсортированых
> по дате?
Используй конструкцию EXECUTE BLOCK. Имхо, самый простой способ. Пример:
execute block returns (ID integer, "DATE" timestamp, Num integer)
as
begin
:Num = 0;
for select t.id, t.ADATE from MyTable t order by t.ADATE
into :ID, :ADATE
do
begin
:Num = :Num + 1;
suspend;
end
end
Desdechado (2008-07-14 20:43:00) [26]Не нужно хранить то, что может быть сгенерировано налету.
Тем более, что записи могут удаляться или изменяться (даты), или вообще меняться принцип сортировки в отчетах. Зачем же тогда каждый раз мучить таблицу перезаписью?
Тын-Дын (2008-07-14 20:37:00) [27]
> deras (14.07.08 20:12) [4]
> я тож так хотел делать... Но думал, есть менее ресурсоемкий
> вариант.. Но все равно спасибо!
Одноразовая задача. Зачем её оптимизировать?
deras (2008-07-14 20:12:00) [28]я тож так хотел делать... Но думал, есть менее ресурсоемкий вариант.. Но все равно спасибо!
Тын-Дын (2008-07-14 19:57:00) [29]
> deras (14.07.08 19:36)
Пробежать в цикле по таблице, последовательно увеличивая и записывая число.
deras (2008-07-14 19:54:00) [30]это поле необходимо для формирования отчетов. В первом отчете будет просто визуализация этого поля, а остальные отчеты будут детализировать первый (со ссылкой на первый отчет именно по полю №п/п)
Smile (2008-07-14 19:48:00) [31]Ну, на первый взгляд, в этом нет никакой необходимости. По-скольку это "поле" может понадобиться лишь при визуализации таблицы (каким-либо образом) или при формировании отчета.
Ну, а в этих случаях есть множество вариантов.
Уточните потребность в №п/п.