Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как проставить №п/п? [D7, XP]


Страницы:   1 2

deras ©   (2008-07-14 19:36:00) 

Есть FB2.0
Таблица Т1 имеет поля ID, Date, Num. Заполнены только поля ID и Date. Есть около 3 тыс. записей.
Как проставить в поле Num номер п/п записей, отсортированых по дате?
Спасибо


MsGuns   (2008-07-15 20:03:00) [1]

>Тын-Дын ©   (15.07.08 17:36) [28]
>Почему-то все решили, что это накладная, а № - номер строки в ней.
>В топике было про связку по номеру. Т.е. это именно порядковый номер >отчета.

Из фразы топика
Как проставить в поле Num номер п/п записей, отсортированых по дате?

рождается "именно порядковый номер отчета"?


Тын-Дын   (2008-07-15 19:32:00) [2]


> Anatoly Podgoretsky ©   (15.07.08 19:30) [29]



> deras   (14.07.08 19:54) [2]
>а остальные отчеты
> будут детализировать первый ( со ссылкой на первый отчет именно по полю №п/п)


Anatoly Podgoretsky   (2008-07-15 19:30:00) [3]

Ни о каком номере отчета не идет речь, а именно о номерах записей

> Num номер п/п записей,


Тын-Дын   (2008-07-15 17:36:00) [4]

Почему-то все решили, что это накладная, а № - номер строки в ней.
В топике было про связку по номеру. Т.е. это именно порядковый номер отчета.


MsGuns   (2008-07-15 16:50:00) [5]

> [24] MsGuns ©   (15.07.08 16:13)
>Номер позиции в накладной.

И нафиг не нужен. Если накладная отпускная, то она формируется на ПК и только после этого печатается КАК ЕСТЬ. Как правило, сортированная по наименованию товара (товарной группы). И в дальнейшем порядок НЕ МЕНЯЕТСЯ.

Если накладная приходная, то таки да, введенные записи располагаются не в том порядке, как в бумаге. Но это не является нарушением ! Ни один налоговик не придерется к такой чепухе. Главному же вообще по барабану.

Хотя, согласен, бывают случаи, когда требуется располагать записи в порядке их ввода - для этого строки документа сортируются по идентификатору. Хранить же в таблице номер пп есть дурь полнейшая - потому что приводит рано или поздно к геморрою.


Anatoly Podgoretsky   (2008-07-15 16:36:00) [6]

> Sergey13  (15.07.2008 16:21:25)  [25]

Накладные формируются по строгому закону и повторямость 100 процентная, кроме случая повреждения данных.


Sergey13   (2008-07-15 16:21:00) [7]

> [24] MsGuns ©   (15.07.08 16:13)
> Номер пп, очевидно, не является ни характеристикой объекта,
> ни тем более РЕАЛЬНОЙ характеристикой.

Номер позиции в накладной.

ЗЫ: это не наезд (в остальном я с тобой полностью согласен), просто бывают разные случаи. ИМХО.


MsGuns   (2008-07-15 16:13:00) [8]

В таблицах БД должны храниться реальные объекты с реальными же свойствами. Номер пп, очевидно, не является ни характеристикой объекта, ни тем более РЕАЛЬНОЙ характеристикой.
Он используется лишь для удобства работы с таблицами или отчетами (в конечном счете являющимися "твердой копией" таблиц) и формируется, как здесь было совершенно справедливо отмечено, "на лету", т.е. при формировании КОНКРЕТНОГО списка, отображаемого (печатаемого) в виде таблицы. Очевидно, что номер пп для каждой записи ОДНОГО И ТОГО ЖЕ списка может быть разным, например, при разных сортировках.

Для отображения номера пп в таблице (гриде) достаточно следующее:
В самую левую колонку грида положить поле датасета, не предназначенное для отображения - чаще всего для этого идеально подходит поле идентификатора, если же его нет, то в запрос надо добавить любое поле, например просто как константу (Select '1' as NPP, * FROM TABLE), которое и "уляжется" в самую первую колонку сетки.
В обработчике OnGetText этого поля написать
 Text := IntToStr(RecNo);
После этого как бы не был пересортирован на клиента датасет, в самой левой колонке сетки будет "правильная" нумерация строк-записей. (Исключение составляет эффект "дырок", появляющийся в следствие фильтрации - в этом случае следует вместо фильтра самого датасета использовать дополнительные условия выборки в запросе) - т.е. "фильтацию" заменить новой выборкой

Для того, чтобы поместить номер в отчет можно просто положить это поле как колонку отчета либо воспользоваться для нумерации записей средствами самого же компонента репорта


Anatoly Podgoretsky   (2008-07-15 12:57:00) [9]

> Тын-Дын  (15.07.2008 11:59:19)  [19]

Но речь то не про номер отчета, а про порядковый номер строчки в отчете. Номер отчета отдельная от отчета вещь, она конечно фиксируется отдельно от отчета, если конечно она есть.


Smile   (2008-07-15 12:11:00) [10]


> Тын-Дын ©   (15.07.08 11:43) [17]
> Твердые копии должна при повторной распечатке должны быть
> идентичными. Гарантии при "формировании на лету" - никакой
/I>
Не считаю это верным подходом (здесь может "спасти" и ксерокс)
Поддерживаю
> Desdechado ©   (14.07.08 20:43) [6]
> Не нужно хранить то, что может быть сгенерировано налету.
>

Тем более, что это вполне согласуется с
> Smile   (14.07.08 19:48) [1]
> Ну, на первый взгляд, в этом нет никакой необходимости.


Desdechado   (2008-07-15 12:05:00) [11]


> Номер отчета будет другой, если его на лету генерировать.
> Потому и фиксируется в отдельном поле.

Не путай номер отчета с номером пункта в списке, содержащемся в отчете.


Desdechado   (2008-07-15 12:04:00) [12]


> Твердые копии должна при повторной распечатке должны быть
> идентичными.

Такие отчеты сохраняются в сформированном виде в стеке распечатанных отчетов, чтобы их потом можно было повторно распечатать без мурыженья базы.


Тын-Дын   (2008-07-15 11:59:00) [13]


> Anatoly Podgoretsky ©   (15.07.08 11:46) [18]
>
> То есть есть данные в отчете будут совсем другие, тогда
> какая разница на лету номер генерируется или нет.


Номер отчета будет другой, если его на лету генерировать.
Потому и фиксируется в отдельном поле.
Единственное, что это должно быть предусмотрено до, а не после формирования строки все-таки.


Anatoly Podgoretsky   (2008-07-15 11:46:00) [14]

То есть есть данные в отчете будут совсем другие, тогда какая разница на лету номер генерируется или нет.


Тын-Дын   (2008-07-15 11:43:00) [15]


> Desdechado ©   (14.07.08 20:43) [6]
>
> Не нужно хранить то, что может быть сгенерировано налету.
>


Твердые копии должна при повторной распечатке должны быть идентичными. Гарантии при "формировании на лету" - никакой


Тын-Дын   (2008-07-15 11:40:00) [16]

Удалено модератором


Johnmen   (2008-07-15 11:39:00) [17]

Удалено модератором


Тын-Дын   (2008-07-15 11:37:00) [18]

Удалено модератором


Johnmen   (2008-07-15 11:36:00) [19]

Удалено модератором


Тын-Дын   (2008-07-15 11:29:00) [20]

Удалено модератором
Примечание: Обсуждение модерирования


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо