|
|
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
Кто- нибудь пробывал организовывать выделение нескольких записей в Grid'e я использовал механизм предложенный Дмитриtv Баянов'ым Для каждой предметной таблицы БД необходимо открывать вспомогательную таблицу с набором записей (списком маркировки), имеющих два поля – первичный ключ GUID и признак маркировки lMarked. При операции выделения строки в список маркировки добавляется новая запись, в которую заносится значение первичного ключа предметной маркируемой записи и логическое значение признака выделения. Обе таблицы связываются реляцией по первичным ключам. В визуальную компоненту, отвечающую за показ цвета записи на экране (к примеру, DinamicBackColor), вставляется выражение динамической проверки признака маркирования в виде: IIF(Seek(GUID) .and. MarkTable.lMarked, Color1, Color2). Для полной функциональности необходимо создать набор функций, реализующих полный набор операций с маркированными строками: выделение, отмена выделения для текущей строки, для всех строк, для строк по логическому WHERE условию, проверка на выделение. Но такой алгоритм вызывает явные тормоза при наличии большого количества видимых на экране строк и столбцов Grid'a В предлогаемом моем примере используйте пробел для выделения/снятия маркировки записей и при resiz'e формы можно ощутить ити тормоза на более слабых машинах точно в виде запаздывания resiz'a grida за формой Эти тормоза связвны с постоянным seekom ключа в вспомогательной таблице в свойствах dynamicbackcolor и dynamicforecolor Версия VFOXPRO 7 Предлогайте свой вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 18:54 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
изв, но пример для 9-ки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 19:50 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
Что-то я не нашел в коде выделения груп. Повнимательней прочитайте вoпрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 20:23 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
да, странно в чекбокс потычте а табличку линковать не вижу особого смысла никто не мешает при выборке добавить в курсор дополнительное поле и тормозов не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 21:18 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
Как раз в рекомендуемом примере и было сказано выше что необходимость создавать дополнительное поле не нужна Без него нада ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 22:07 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
Используй вместо курсора одномерный массив и ascan если ascan( тра та та ) > 0 помечаешь если нет не помечаешь все будет летать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2006, 09:30 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
я попробую если будет время выложить без поля пример только по-позже там идея понятна просто создается избыточное количество записей в дополнительном курсоре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2006, 10:10 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
Массив ито хорошо но из за теоретического барьера 65000 как то не по себе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2006, 19:51 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
продолженеи темы с классами выделение - держать шифт и стрелками вверх и вниз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2006, 21:41 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
Sea.StarryМассив ито хорошо но из за теоретического барьера 65000 как то не по себе сколько времени нужно что бы отметить 65000 элементов в гриде? по секунде на элемент.... 18 часов :-) это раз... да и вообще зачем человеку одновременно выводить в грид 65 000 записей? что он с ними делать будет? должны быть условия отбора.... это два.. юзай массив не боись ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2006, 14:43 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
скан в массиве будет дольше работать чем сик по курсору ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2006, 14:49 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
alex11100скан в массиве будет дольше работать чем сик по курсору Это ложь... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2006, 15:36 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
что ложь то ну твой же тест дает на сике 0,031 на скане 0,203 и где ложь скан работает медленнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2006, 16:24 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
Strong alex11100скан в массиве будет дольше работать чем сик по курсору Это ложь... Сорри стормозил scan действительно быстрее, но имхо не критично для данного случая 0,1 секунда на 10 000 итераций мне кажется не очень критично что 0,03 что 0,1 в общем каждый выбирает то что ему удобнее, лично мне решение с массивом кажется более изящным. ( никаких накладных расходов на индех и курсор, а массив можно в свойства класса запихнуть и все) Еще раз приношу извинения за некоторую скоропалительность выводов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2006, 16:29 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
ну так и не опредилился быстрее или медленнее а мне сик милее и следить за массивом не нужно курсор висит себе и висит и сам буферится и сам убъется с курсором удобней, вот и все я сам на 5-й лисе в массивы справочники загонял из сети, чтобы ФС разгрузить а сейчас лучше курсоры использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2006, 16:49 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
да, SEEK быстрее... опять ошибся когда писал :-( полезный топик, я не знаю почему но считал что ascan быстрее. :-) учтем ... написал как то классик и поехало... но тормозов никаких не было никогда... привычка знаете ли иногда вредная штука... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2006, 17:19 |
|
||
|
Логическое цвето выделение нескольких записей
|
|||
|---|---|---|---|
|
#18+
Ну во первых fox 7 пример я не смог запустить но на сколько я понил из кода там тоже идет поиск в курсоре т.е от моего примера ничем не отличается значит в dynamicbackcolor кроме функции на seek в курсоре ничего хорошо не придумешь TT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2006, 19:08 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=243&tid=1591119]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 364ms |

| 0 / 0 |
