idhas |
Отправлено: 11.10.2005, 15:17 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 17
|
ВСТУПЛЕНИЕ: Есть очевидная проблема, которая должна решаться быстро и легко, т.к. с этим встречается каждый первый программирующий базы данных.
УСЛОВИЯ: есть DBGrid в который помещается выборка служащих скажем получивших з/п их можно сортировать по фамилии и по з/п.
ЗАДАЧА: нужно добавить колонку в которой будет нумерация выбранных строк независимо от сортировки.
ПРИМЕЧАНИЕ: нумерация так же должна отображаться в QuickReport
(с)
Отредактировано idhas — 11/10/2005, 15:22 |
|
Gedeon |
Отправлено: 11.10.2005, 15:25 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Просите эти данные у сервера
|
|
olegenty |
Отправлено: 11.10.2005, 16:28 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
а можно и без сервера, но тогда всё будет зависеть от компонентов. так, при использовании TMemTableEh, можно добавить Calculated поле, расчёт которого производить как
CODE |
Field->Value = MemTable->RecNo;
// или Field->Value = MemTable->RecNo(); — исходника под рукой нет, но это рабочий код.
|
и всё, счастье наступает автоматически. а, что бы Ипполит не говорил, счастье надо планировать. ибо это не пункт назначения, а способ путешествовать .
|
|
idhas |
Отправлено: 11.10.2005, 16:31 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 17
|
Если просить их у BDE через RecNo (или что имеллось в виду под "Просите эти данные у сервера"?), то получается, что он выдаст номер записи в таблице, а не в гриде. Т.е., если у таблицы включен фильтр, то в ней нумерация будет не с 1-цы, а скажем что-то типа:
123
241
412
567
Опять же, если создать поле типа Calculated и присваивать ему номера инкриментом (какой-то глобальной переменной), то она часто увеличивается при "ненужных" событиях, приходится ее обнулять.
Возможно можно как-то этого избежать? Имеется в виду стандартными компонентами.
Отредактировано idhas — 11/10/2005, 16:37 |
|
idhas |
Отправлено: 11.10.2005, 16:49 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 17
|
У компонента TTable нашлось замечательное св-во BeforeScroll
В нем и стоит обнулять эту глобальную пер-ую (точнее устанавливать в 1).
Пока все не перетыкаешь — не поймешь, что делать... (с) |
|
olegenty |
Отправлено: 12.10.2005, 06:24 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
TMemTableEh нумерует корректно, ничего и никогда сбрасывать не нужно.
|
|
greyich |
Отправлено: 13.10.2005, 12:44 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 45
|
QUOTE (olegenty @ 12/10/2005, 06:24) | TMemTableEh нумерует корректно, ничего и никогда сбрасывать не нужно. |
кстати, а что Вы можете сказать про EhLib 4. Я пока не ставил но уже судя по хелперу видны значительные доработки.
|
|
olegenty |
Отправлено: 13.10.2005, 13:03 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
пока ничего не скажу. сегодня поставил и пока снёс. для BCB6 вошли не все компоненты (TDBXDataDriverEh отсутствует в палитре компонентов). Дмитрий обещал исправить. Далее — 3.6с — последняя бесплатная версия. Начиная с версии 4.0 исходники поставляются только в платной версии, а так — она Shareware.
вообще же, версия 4.0 — первая версия, куда полноценно вошел набор компонентов TMemTableEh и TXXXDataDriverEh. т.е. этот набор компонентов достиг той степени совершенства, при которой его стало возможным включить в пакет поставки.
|
|