Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вопрос по DBGrid-у Помогите пожалуйста.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Вот в чём проблема: есть DBGrid - в нём несколько колонок, указан некоторый DataSource откуда и берутся данные. При печати печатаются все строки этого DBGrida. Мне же нужно чтобы печатались лишь выбранные. Для этого в запросе, который использ. для этого DBGrida я добавил ещё одно поле SELECTION - соответственно и втаблицу БД откуда выбираются данные тоже пришлось добавить такое же поле, в котором ничего не содержится (' '). Теперь при нажатии пробела сделал обработчик, который заносит в это поле произвольную метку ('X'). Теперь при печати печатаются только те строки в которых поле SELECTION имеет метку ('X').Всё бы хорошо да только вот установка этих меток (особенно для нескольких строк) происходит слишком медленно. :( И ещё было проверено что во время установки этих меток, которые служат всего лишь для печати происходит UPDATE таблици в БД. Из-за чего при работе нескольких пользователей возникают блокировки. Если кто-то знает как можно реализовать эти метки для печати проще пожалуйста подскажите. Если можно по подробнее, потому что перепробовал много вариантов - не выходит. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 18:58 |
|
||
|
Вопрос по DBGrid-у Помогите пожалуйста.
|
|||
|---|---|---|---|
|
#18+
Вариант первый, если есть ключевое поле, то запоминать в списке значения этих полей непосредственно в программе. При печати использовать не таблицу, которая отображается на экране, а специальный запрос, в котором будет что-то типа select * from table where ID in [список значений ID из выбранных строк] строку со списоком генерируем перед открытием запроса, а запрос открываем непосредственно перед печатью (предпростмотром). Вариант второй, создавать временную таблицу, которая уникальна для каждого пользователя (можно использовать имя компьютера для формирования файла), в которой сохранять значения ID для выбранных строк. Это чтобы избежать блокировок в основной таблице. Для печати опять же используем запрос, в котором участвуют две таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 20:36 |
|
||
|
Вопрос по DBGrid-у Помогите пожалуйста.
|
|||
|---|---|---|---|
|
#18+
я поддердиваю, проще всего пользоваться запросами. Только мне кажется будет весьма неудобно, каждый раз ставить метки перед печатью. А если в БД будет 5000 записей, илли 50 000, тут уж не налистаешься, надо создать поле по которому классифицировать данные (например поле class), но это поле должно заполняться при внесении записи, А потом уж и селект например: Select * from table where class in ('хозтовары', 'промтовары') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 21:06 |
|
||
|
Вопрос по DBGrid-у Помогите пожалуйста.
|
|||
|---|---|---|---|
|
#18+
>Дмитрий Мыльников >"... таблицу, которая уникальна для каждого пользователя ..." Немного поправлю, таблица - да, но с уникальным значением поля для каждого пользователя (можно группу полей). Тогда не будет проблем с созданием таблиц для нового пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2003, 07:24 |
|
||
|
Вопрос по DBGrid-у Помогите пожалуйста.
|
|||
|---|---|---|---|
|
#18+
Немного не по теме......... Подскажите пожалуйста, как правильно вывести DBGrid на печать (все столбцы и строки), а то ерунда какая-то получается.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2003, 08:10 |
|
||
|
Вопрос по DBGrid-у Помогите пожалуйста.
|
|||
|---|---|---|---|
|
#18+
2 RDen: взять нормальный грид, например из EHlib, и выгружать в Excel, а там юзер пусть сам че хочет, то и печатает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2003, 08:36 |
|
||
|
Вопрос по DBGrid-у Помогите пожалуйста.
|
|||
|---|---|---|---|
|
#18+
Если через АДО, то можно LockType:=ltBatchOptimistic, при этом изменения не будут напрямую передаваться на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2003, 10:08 |
|
||
|
Вопрос по DBGrid-у Помогите пожалуйста.
|
|||
|---|---|---|---|
|
#18+
И еще можно попробовать сделать после считывания данных в рекордсет Connection := Nil; (отсоединить рекордсет), LockType:=ltBatchOptimistic добавить к нему поле Fields.Add, задать свойства этому полю и пользоваться... Но я этот подход реально не пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2003, 10:12 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32265821&tid=2116881]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 394ms |

| 0 / 0 |
