|
|
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Подскажите пжл, как правильно перечитывать сетки от ДевЭкспресс ? Например, есть сетка связанная с набором данных. Рядом, кнопка - "Удалить", которая удаляет в БД запись(или несколько), и перечитывает набор данных. Как сделать так, что бы курсор(выделенная строка в сетке) перемещалась на ближайшую нижестоящую запись, а не прыгала в начало набора данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 10:35 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Под "ближайшей нижестоящей строкой" имеется ввиду та строка, в зависимости от выбранной пользователем сортировки. Например - по дате или по имени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 10:39 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Valery_BКак сделать так, что бы курсор(выделенная строка в сетке) перемещалась на ближайшую нижестоящую запись, а не прыгала в начало набора данных? После удаления, видимо, датасет закрывается и открывается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 10:40 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Запоминать и вручную восстанавливать после изменения данных -- FocusedNode, VisibleIndex, Next/Prev Node и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 10:40 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
wadmanПосле удаления, видимо, датасет закрывается и открывается? Да. Не надо этого делать ? JaDiЗапоминать и вручную восстанавливать после изменения данных -- FocusedNode, VisibleIndex, Next/Prev Node и т.п. Да, я думал об этом. Но что делать дальше ? Нижняя какая именно нижняя строка зависит от режима сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 10:57 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Valery_BДа. Иногда в этом необходимость бывает, но... Потому встречный вопрос - зачем закрывать/открывать? Датасет именно так и ведет себя, когда удаляется запись - скрывает "удаленную" и не скачет курсором в начало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 10:59 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
wadmanПотому встречный вопрос - зачем закрывать/открывать? В случае перечитывания, набор данных может заполнятся запросом с любым из JOINов. Как изменятся колонки может сказать только сервер. Например - Кнопка "Добавить 1000р". Она сделает 2 операции - снятие и начисление. Вообщем, где то уменьшится на 1000, а где то увеличится. При удалении строки такое тоже может быть, например если есть сумма нарастающим итогом, или просто сумма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:06 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Вообще, в Microsoft Outlook аналогичная механика. В нём курсор не прыгает туда-сюда и ведёт себя по человечески. При этом, письма можно упорядочить по любой из колонок, и курсор всегда переходит на нижнюю строку в зависимости от сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:10 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Valery_BНижняя какая именно нижняя строка зависит от режима сортировки. У cxgrid есть records (записи из датасета) и rows (сами строки в гриде -- именно они и зависят от сортировки, и их и надо искать/запоминать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:18 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:20 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
DimaBr Код: pascal 1. 2. После удаления датасет уже на другой строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:27 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
DimaBr, Не верно. DS.Next переходит на следующую запись набора данных. И не совпадает с сортировкой на экране у пользователя. А в случае дерева, она может переместиться вообще не понятно куда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:30 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
wadmanПосле удаления датасет уже на другой строке. Чего датасет на другой строке, если Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:30 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
DimaBrwadmanПосле удаления датасет уже на другой строке. Чего датасет на другой строке, если Код: pascal 1. Не заметил, согласен. Всё равно скачёк будет, потому что locate не учитывает положение грида в целом (верхняя видимая запись). Плюс там может быть не десяток строк, а тысячи и более, как иногда многим нравится делать. Тут нужен огород из кастомного датасета, который на все действия дергает свои запросы. В т.ч. и/или процедуры. Или датасает в памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:41 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. Плюс проверки, что текущая не последняя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:42 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
DimaBr, Это для CxGrid. Ок, попробую. Наверное FocusedRowIndex+1 неправильно. т.к. при перечитывании может удалится и он, т.е. 2 и более записей. А для CxTreeGrid ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:55 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Valery_BА для CxTreeGrid ? Не знаю такого компонента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 13:40 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Valery_BПодскажите пжл, как правильно перечитывать сетки от ДевЭкспресс ? Это большой вопрос. Детальный ответ зависит от режима грида, специфики данных и кучи деталей. Valery_BКак сделать так, что бы курсор(выделенная строка в сетке) перемещалась на ближайшую нижестоящую запись, а не прыгала в начало набора данных? 1. Открыть холодильник. 2. Достать жирафа. 3. Положить слона. Ээ... пардон... очевидно, 1. Переместиться на нижестоящую запись 2. Обновить данные, оставаясь на текущей записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 14:42 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Valery_BВообще, в Microsoft Outlook аналогичная механика. В нём курсор не прыгает туда-сюда и ведёт себя по человечески. В Microsoft Outlook нет непредсказуемых join-ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 14:44 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
DimaBrValery_BА для CxTreeGrid ? Не знаю такого компонента Точнее, TcxDBTreeList В нём и обычном гриде есть ещё одна не понятность. Если даже при перечитывании Focused Node - сохраняется, то теряется скролл. Например, в гриде - 100 строк, на экране помещается только 50(видны строки 1-50). Я выделяю строку с id=25, которая сейчас посередине экрана Перечитываю, количество строк не изменилось. Фокус остаётся на строке 25, но она перемещается наверх экрана(видны строки 25-75). т.е. скролл уходит вниз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 15:20 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Valery_BВ нём и обычном гриде Только в TcxDBTreeList ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 15:36 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
В дереве, после удаления, позиционируйтесь на узле-Родителе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 15:55 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Не хотите перечитывать дерево, загружайте в TcxTreeList и удаляйте узлы вручную ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 15:59 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
DimaBrВ дереве, после удаления, позиционируйтесь на узле-Родителе. Да я так и делаю... и узел перескакивает из середины наверх экрана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 16:02 |
|
||
|
Как перечитать TCxGrid и TcxTreeGrid ?
|
|||
|---|---|---|---|
|
#18+
Valery_B, дык, в трилисте вообще проще простого -- достаточно запомниться TopVisibleNode/Index (или какое там название) и его же восстанавливать после выделения следующей записи и ее визуального фокусирования через MakeVisibleNode (или какое там название команды для перехода к текущему FocusedNode). Т.е. процедура удаления: - запомнили ID для удаления; - запомнили ID следующей записи, на которую надо сделать фокус после удаления; - запомнили TopVisibleIndex (по сути - текущий скролл трилиста); - удалили; - нашли следующее ID, сделали фокус и выделили запись; - сделали автопрокрутку к ней по MakeVisibleNode; - восстановили TopVisibleIndex (с некоторой проверкой, чтобы не переборщить). - уряяя, всё работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 17:22 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39879203&tid=2038931]: |
0ms |
get settings: |
8ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 413ms |

| 0 / 0 |
