Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Несанкционированные перемещения указателя в гриде
|
|||
|---|---|---|---|
|
#18+
Такой вот неприятный факт: В гриде по событию клик на каждом хидере вставлен код Код: plaintext 1. при этом при клике на заголовке столбца кроме, собственно сортировки по указанному тэгу происходит (не всегда, но чаще 50%) несанкционированное перемещение указателя текущей записи. Попытка запомнить текущий номер записи и вернуться к нему после пересортировки, равно как и установка параметра "NODEFAULT", не помогает :-( Код: plaintext 1. 2. 3. 4. 5. Попытка отследить момент смены указателязаписи - Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. показала, что неприятность происходит где-то во время отработки метода refresh. Помогла повторная принудительная установка номера текущей записи с последующим THISFORM.REFRESH Код: plaintext 1. 2. 3. 4. Не подскажет ли кто, как избежать подобного безобразия - очень не хочется, чтобы отрабатывали коды BeforRowColChange, AfterRowColChange C Уважением, Андрей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 13:52 |
|
||
|
Несанкционированные перемещения указателя в гриде
|
|||
|---|---|---|---|
|
#18+
Попробуй рефрешить только грид. Типа m.CurRec = RECNO() SET ORDER TO din THIS.Parent.Parent.Refresh GO m.CurRec Ну, ессно будет отрабатывать и After... и Befor... ничего тут не поделаешь. Так что главное - что у тебя в этих событиях прописано. Там собака наверное порылась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 22:09 |
|
||
|
Несанкционированные перемещения указателя в гриде
|
|||
|---|---|---|---|
|
#18+
Есть 2 решения: 1. Уводить фокус с грида на время смены индекса XXX.SetFocus() SET ORDE TO TAG MyIndexTag IN (Grid.RecordSource) Grid.Refresh() Grid.SetFocus() 2. Делать текущую строку грида первой на время смены индекса: LOCAL I,lnCnt lnCnt=0 ThisForm.LockScreen=.T. DO WHIL !INLI(Grid.RelativeRow,0,1) Grid.DoScroll(1) lnCnt=lnCnt+1 ENDD SET ORDE TO TAG MyIndexTag IN (Grid.RecordSource) Grid.Refresh() FOR I=1 TO lnCnt Grid.DoScroll(0) ENDFOR ThisForm.LockScreen=.F. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2003, 00:02 |
|
||
|
Несанкционированные перемещения указателя в гриде
|
|||
|---|---|---|---|
|
#18+
>Andrey-750 Подобного безобразия не избежать, можно только или "обмануть" Grid, или устранить последствия безобразия. Некоторые варианты уже предложены. Если интересен еще случай убегания указателей при применении Grid'ов, посмотри на http://gnomes60.valuehost.ru/ph/read.php3?f=5&pnn=1&i=65785&t=65785 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 07:31 |
|
||
|
Несанкционированные перемещения указателя в гриде
|
|||
|---|---|---|---|
|
#18+
Привет всем. Я решил вот так: LPARAMETERS nButton, nShift, nXCoord, nYCoord if nButton = 1 then Local lnRecord lnRecord=RECNO() if gnColums!=1 then SET ORDER TO TAG_DSale Ascending gnColums=1 glOrder=.T. else if glOrder=.T. then glOrder=.F. SET ORDER TO TAG_DSale Descending else glOrder=.T. SET ORDER TO TAG_DSale Ascending endif endif GOTO TOP thisform.refresh() GOTO lnRecord endif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 10:20 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=413&tid=1597887]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
28ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 357ms |

| 0 / 0 |
