Страница 1 из 1

Почему прыгает курсор в tree

Добавлено: 01 Апрель 2012, 11:45
Stalker
Привет всем! Помогите разобраться с нестандартной ситуацией!
На третьем уровне дерева имеются вопросы к тесту. Ответ на вопрос проверяется в отдельной процедуре с появлением отдельного окна с сообщением типа ответ правильный или ответ неправильный. До вызовы form редактирования вопроса все ок, курсор никуда не убегает держит последнее поле, после редактирования какой либо записи и закрытия окна формы курсор всегда становится на эту запись которую отредактировал.
В чем проблема?

Re: Почему прыгает курсор в tree

Добавлено: 04 Апрель 2012, 23:45
WadimZapara
- четырежды прочёл, но вопроса не понял :shock:

Re: Почему прыгает курсор в tree

Добавлено: 05 Апрель 2012, 9:03
Игорь Столяров
WadimZapara писал(а):- четырежды прочёл, но вопроса не понял :shock:
Хе ! А я подумал, что все кроме меня в теме этого приложения для тестирования ... ;)
Там наверно автор сам запутался в своих мыслях - и вопрос о том, почему после редактирования записи в TREE курсор прыгает на другую ветку ?

У меня есть 2 варианта возникновения проблемы и ее решения:
1. Если используется один и тот же список на разных уровнях TREE (такое возможно) - нужно это обойти через ALIAS, что бы не было потери адресации записи.
2. Иначе добавь уникальный (PRIMARY) ключ для редактируемого списка - что бы была однозначная адресация каждой ветки TREE.

Ну или уточни вопрос. Только прочитай его перед отправкой ... ;)

Re: Почему прыгает курсор в tree

Добавлено: 05 Апрель 2012, 21:01
Stalker
Прошу извинений если не корректно и не полно описал проблемму. А проблемма кроется в том, что при отступлении от стандартных действий вызова процедур, которые предлагают разработчики среды возникла данная непонятка. Дело в том что, процедура form, по определенным соображениям вызывалась не напрямую, а через промежуточную процедуру типа source, вставкой кода:
If Clip(status_pol) = 'Преподаватель'
UpdateZanat() !запуск процедуры редактирования
Else
!GlobalResponse = RequestCancelled
End
При замене данной вставки на :

If Clip(status_pol) = 'Преподаватель'
UpdateZanat()
GlobalResponse = RequestCancelled
Else
!GlobalResponse = RequestCancelled
End
Все встало на свои места.
Спосибо за отклики.

Re: Почему прыгает курсор в tree

Добавлено: 05 Апрель 2012, 22:12
Игорь Столяров
Пожалуйста ... но это не есть правильно.
FORM записывает в GlobalResponse для возврата в BROWSE успешность действий по заданному GlobalRequest.
Соответсвенно данная вставка всегда возвращает отмену операции модификации записи, и как следствие не производится обновление содержимого BROWSE.
Если позицирование указателя сбивалось - то оно и осталось, просто визуализация проблемы отложена до обновления списка ....

Re: Почему прыгает курсор в tree

Добавлено: 06 Апрель 2012, 12:08
kreator
ИМХО, вообще, не корректный код. Надо при событии NewSelection для Browse поставить код типа -
If Clip(status_pol) = 'Преподаватель'
?Change{prop:Enabled} = True
else
?Change{prop:Enabled} = False
end
И не надо думать о request и response. Browse сам разберется вызывать update или нет.

Re: Почему прыгает курсор в tree

Добавлено: 10 Апрель 2012, 7:37
Stalker
Да прав оказался Игорь Столяров. Действительно не обновлялись записи дерева при коде
If Clip(status_pol) = 'Преподаватель'
UpdateZanat()
GlobalResponse = RequestCancelled
Else
!GlobalResponse = RequestCancelled
End
Изменив код на:

If Clip(status_pol) = 'Преподаватель'
UpdateZanat() !запуск процедуры редактирования
Else
GlobalResponse = RequestCancelled
End
все встало на свои места.
Предложение вставить код
If Clip(status_pol) = 'Преподаватель'
?Change{prop:Enabled} = True
else
?Change{prop:Enabled} = False
end
не прошло
Спосибо еще раз всем.

Re: Почему прыгает курсор в tree

Добавлено: 10 Апрель 2012, 7:53
Дед Пахом
"?Change{prop:Enabled} = True" и не могло сработать, Prop:Enabled только на чтение, попробуй наоборот: ?Change{Prop:Disable} = true|false