|
|
|
Переход подчиненной на первую запись после апдейта рекодсетклона главной
|
|||
|---|---|---|---|
|
#18+
Делаю в подчиненной (просто веду краткий лог): Код: plaintext 1. 2. 3. upUNames Me.PARENT, "_T" курсор в подчиненной перескакивает на первую запись где Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. (не хотелось бы ветвить процедуры в зависимости от - открывать рекордсеты(не клоны) и прочая) можно конечно оставить upUNames Me.PARENT, "_T" только на удаление (зачем и затевалось), но перескок на первую и там не радует. ЗЫ: наткнулся при обратном порядке обновлений: upUNames Me.PARENT, "_T" upUNames Me - вообще обновлялась не та запись подчиненки (а именно первая) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 13:35 |
|
||
|
Переход подчиненной на первую запись после апдейта рекодсетклона главной
|
|||
|---|---|---|---|
|
#18+
автор 2Victosha :0) lf b yt njrvj Cfysx pyftn rfrб z \' ujdjh.б abuy. hfpdjlbnm ghbltncz - j,hf,fnsdfnm dct ckexfb 1ю - gjkmpjdfntkm elfkbk pfgbcm - yflj gjgfcnm d , Cktle.oe..ghtlsleoe.б yj ghjbpdjkmysq ;ktvtynж 2ю Gjkmpjdfntkm ghjcnj nryek vsirjq d lheue. pfgbcmб d rjyrhtnysq rjynhjk - lheubt gbhjub - yflj (;nj dct lttncz d ФаеукГзвфеу.ФаеукВудСщташкь) cktlbnm pf vsirjqб xnj kb, (ответить ввечеру, как всегда, не удалось, поэтому отвечаю в другом вечеру) видимо, это сюда, хотя всплыло в чужой теме. 1. К сожалению, про 97й содержательно - сейчас - уже наверно не смогу. И нет желания "иметь под рукой". Прокрутка рекордсета в описанной ситуации при пользовании RecordsetClone, скорее всего, в любом случае будет происходить. Кажется, разумнее всего, на время проводимых изменений заморозить обновления экрана. в 2K типа Me.Painting=false в 97 что-то DOCMD.///()не помню) 2. К сожалению2 - соединив все, что есть в этом потоке и в "чужом" - не понял вполне, что же хочется получить - как будто о "логе проводимых в таблице изменений" идет речь - но не уверен окончательно. Содержательно здесь может идти речь о выборе наиболее удачного события формы для выбора подобного перехвата. По этому поводу совета дать не возьмусь, поскольку слаб мозгою. Что касается кликов мышой, то как будто достаточно в OnCurrent кэшировать в локальную переменную .AbsolutePosition . Тема про удаление, конечно, имеет тонкости, когда удаляется последняя в наборе запись - бегом не скажу как разрулить "правильно" - експиримента треба. PS когда писал, что "Саныч знает как", подразумевал вот это: /topic/91397&hl=#666046 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2004, 02:07 |
|
||
|
Переход подчиненной на первую запись после апдейта рекодсетклона главной
|
|||
|---|---|---|---|
|
#18+
авторто как будто достаточно в OnCurrent не-а! :0) - в AfterUpdate и т.п., которые запускаются при попытке выхода, в т.ч. при тыканьи мышой в _другую_ запись подчиненки (и должны обрабатывать вставку лога в мастер-таблицу) Current еще не произошло :0). (Или я чего-то не понимаю в последовательности событий, что вообще-то наверняка имеет место, но касательно данной ситуации - вряд ли). И не произойдет, поскольку происходит отдача фокуса мастер форме (происходит кажется рекваери текущей записи мастер-формы). И стал быть мы уже не получим координаты записи подчиненки (и тем паче контрола) в которую только только пытались ткнуть. Т.ч. фигово-с. Т.е. текущее положение мыша надо ловить не в Current? Избежать этого я могу явно задавая таблицы и ключи (в каждой форме вызова - свои - что уже минус). И редактируя не клон Парента, а другой рекордсет /или табличку - запросом/. Но боюсь - появятся неустранимые сообщения о злонамеренных пользователях, которые изменили ту же запись. /счас проверю. А заодно подумаю, наскоко оно мне надо (когда бы без гемора - то - "запас карман не трет". А так - все одно еще и архив сбоку присобачивать буду./. ЗЫ. благодарю за участие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 13:58 |
|
||
|
Переход подчиненной на первую запись после апдейта рекодсетклона главной
|
|||
|---|---|---|---|
|
#18+
2 assa Прошу прощения, а зачем тебе вообще RecordsetClone дергать? Почему бы не присваивать значения непосредственно полям формы? (причем лучше наверное на BeforeUpdate, а не на After) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 14:04 |
|
||
|
Переход подчиненной на первую запись после апдейта рекодсетклона главной
|
|||
|---|---|---|---|
|
#18+
поля (парента) пробовал. плехо. - юзер жмет эскейп нескоко раз (после перехода в подчиненке на новую запись), и "лог" в паренте слетает на доисторический (а запись то в табличную часть документа вставлялась/удалялась/редактировалась). А это "полицейская ф-я (мне правда на фих не нужна :0) РОжаем-с триггеро-заменители. BeforeUpdate? Интересная мысль. т.е. я могу собачить прямо в клон парента, но поскольку события в подчиненке не завершены, фокус она отдать не должна? Попробую, хотя не все нравится. (Одна проблема - если событие не завершилось удачей? проверки по таблицам не прошли и т.п.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 14:25 |
|
||
|
Переход подчиненной на первую запись после апдейта рекодсетклона главной
|
|||
|---|---|---|---|
|
#18+
Если на AfterUpdate поля меняешь - то сразу же и запись сохраняй (Me.Dirty = False). И пусть юзер хоть заснет на эскейпе. Если на BeforeUpdate - то вообще такой проблемы нет. Клон вообще не трогай Теперь насчет того, что событие не завершилось удачей. В подчиненной это не проблема, т.к. не завершилось - и х с ним, лог тоже не запишется (если на BeforeUpdate его пишешь). В главной - да, беда. Ну так твой вариант тоже не без греха: проапдейтил подчиненную, на AfterUpdate попытался лог записать - нарвался на блокировку. Надо использовать транзакции по форме, но в 97-м их сделать невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 14:33 |
|
||
|
Переход подчиненной на первую запись после апдейта рекодсетклона главной
|
|||
|---|---|---|---|
|
#18+
Спасибо, но: Me.Dirty = False (и т.п. бубны, вплоть до простого DoCmd.... acSaveЧтоТоТам) в главной приводит к передаче ей фокуса (- т.е. тот же резалт что и при .Update ее клона. проверял в тяпницу). Проблема токмо в том, что юзер тыкает в некоторый контрол подчиненной, а оказывается в 1-м контроле главной, или (если я потрахался и вернул выделение на запись подчиненки) - в 1-м (или активном на момент _выхода_/_перехода_ - это от реализации) контроле подчиненки, а не в том, куда тыкал. Вот с этим и борюсь. ______ ЗЫ клон удобен тем, что единообразно правятся все процедуры (и работы с формой, и выписки документа через рекордсеты (в т.ч. массовые)) т.е. вместо куска кода .Edit '...по кучке полей .Update вызывается (одна на все случаи): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. _________ Проверил с BeforeUpdate (мастер) + AfterUpdate (сама) - все действительно работает тип-топ. Только запись в подчиненке, в которую "ткнули" перескакивает "под обрез" (как если бы я сам это все реализовал, но контрол правда нужной, и надуваться самому не надо). А если я пробовал открыть список в новой записи, то язычок списка "облизывается" (список чуть приоткрывается и тут же втягивается). с удалениями получается полный абзац (хотя фокус тоже вертается, за счет разделения событий) - а именно - целых 3 процедуры: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. автортоже не без греха: - ну дак, не триггер, есс-но. Т.ч. буду смотреть через запросы (мога там визуальных неожиданностей поменьше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 16:14 |
|
||
|
Переход подчиненной на первую запись после апдейта рекодсетклона главной
|
|||
|---|---|---|---|
|
#18+
Обход тоже не удался :o[ при редактировании отдельного рекордсета (НЕ клона) главной таблицы в AfterUpdate перескок фокуса на главную форму происходит все равно. Остался промежуточный вариант: в BeforeUpdate редактировать: контролы подчиненной и клон главной (в удаление - только клон) работает, но минусы: - в главной регистрируются незавершенные транзакции подчиненки _ или принять волевое решение: - выбросить ТАКОЙ лог на фих, и за инфой лазать в архив. Так будет непротиворечивее, хоть и грузнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 18:36 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32520460&tid=1674571]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
156ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 421ms |

| 0 / 0 |
