|
|
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Нуф-Нуф: супер идея в том и состоит, что с первого раза я не даю человека удалять - за ним есть в связанных табличках переписка. Задумка в том, что во время первой попытки удаления я делаю Cancel=True и подсвечиваю строку (коряво это в табличной форме получается, но уж как есть). А затем при подсвеченной строке кандидата на исключение предлагаю пользователю тыркнуться в другую строчку и ловлю событие Current, чтобы переписать письма на другого сотрудника фирмы. И именно эту операцию сопровождает моргалка. Без нее все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2003, 23:39 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Нет, конечно кординально решит проблему собственная моргалка на форме, но я -то хотел универсальную моргалку иметь для разных форм: мало ли где какие тонкие операции придется пользователю доверять. Шпаргалка моргающая была бы очень кстати ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2003, 23:50 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
>что с первого раза я не даю человека удалять Лифчик... Пошел ка я спать... Нифига не могу понять, что же ты хочешь. Вернее могу (кажется), но не пойму зачем тогда вообще удалять запись (в контексте глюка, при котором у тебя ее удалить не получается, а у меня получается), если ты ее фактически удалять не хочешь (отменяешь удаление по кнопке Del, что я и тестировал)? Т.е. давай по полочкам: 1. Пользователь выбирает запись и жмет Дел; 2. Ты отлавливаешь событие Delete и отменяешь удаление (Кэнсел=Тру). Но у меня то при тестировании оно совсем не тру, а очень даже фальш...; 3. Запускаешь моргалку с подсказкой и ждешь клика пользователя на другой записи; 4. ??? Я не понял, зачем я тестировал удаление записи? Удаление записи мы отменили, а затем когда оно стало возможным ты должен сам организовать удаление (на программном уровне)! Пользователь не должен опять возвращаться к удаляемой записи и удалять ее повторно, кажется... мне... вроде... При чём тогда тут не удаляющиеся записи при удалении? Кстати, а если пользователь боится мышей и захочет выбрать "другого" пользователя через клавиатуру? Ну вот я грохаю Лисицыну в пользу Горовой, которая на пару позиций выше. Грохаю я лисицыну КЛАВИШЕЙ Дел, и коль скоро ручки у меня на клавиатуре, то я попытаюсь (даже не задумываясь, автоматом) передвинуть курсор с помощью клавиатуры, но не мыши, а ты отловив первое Куррент привесишь письма лисицыной тому, кто сразу перед ней, а не моей желанной Горовой... Понимаешь? Я тебя покритикую дальше немного, ладно? А? Ну ладненько :) Лисицына она хоть и стерва порядошная, но удалять ее ну никак нельзя. Онаж зарплату получала, че-та где-то еще там делала и если ты ее грохнишь, то у тебяж вся база накроется - зарплату получал неизвестно кто, че-та где-то там еще тоже делал кто неизвестно... Подход, имхо, не правильный... Как бы я решал данную задачу. Можно? А? 1. Завел бы логическое поле "УстаревшиеДанные"; 2. По событию Delete отменял бы онное, но устанавливал бы логическое поле в Тру; 3. В твоей мигалке вывел бы что мол надо закончить операцию, а во втором окошке мигалки (которое для этого и предназначено, думаю) написал бы что-нибудь типа: "Перед удалением сотрудника Лисицына выберите другого сотрудника, на которго будет свалено все то, что обещал свалить Лох Позорный. Текущий выбранный сотрудник: (Фамилия сотрудника, на котором стоит курсор в данный момент)." Ну кроме того в мигалке надо кнопку ОК, Отмена, да и еще саму мигалку сделать немодальной, но всегда "на поверхности", а здесь без винапи не обойтись... Т.е. я имею сказать, что проще просто напросто помечать лисицыну как устаревшую, а юзеру вываливать (в отдельном окне даже) список сотрудников уже без лисицыной. Ну и ОК и Отмена конечно... А вообще-то, я пошел спать. сорри, если был "длинен, скучен, непонятен и не в тему" :) Ночи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 00:52 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Полностью поддерживаю Нуфа по поводу логических ошибок в проектировании. Кроме одного момента: > саму мигалку сделать немодальной, но всегда "на поверхности", а здесь без винапи не обойтись... Не нужен винапи, а просто Modal = False PopUp = True Все остальное за мной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 11:15 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Грустно, но у меня все работает, как в аптеке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 11:26 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Володь, на счет "Не нужен винапи"... Понимаешь, если описанными тобой средствами Акса сделать такое окошко, то оно перекрываться будет активным всплывающим окном. Т.е. если основные формы в которых мы будем выбирать сотрудников тоже всплывающие (а Лифчик ведь делает универсальную всплывалку, так что надо предусмотреть и такой вариант), то при получении ей фокуса она перекроет нашу мигалку. А мигалка она на то и мигалка, чтобы пользователя раздражать постоянно! Ну чтобы не забыл чёнить прально сделать :) Нашей мигалке нельзя быть модальной, но в тоже время нельзя и с экрана уходить, а здесь (на сколько я знаю) только винапи... Тоже работает? Ну всё Лифчик, попал ты! Щаз еще лох придет с этим же, да еще и с тем чего наобещал... Бедный ты будешь :) Кстати, Лифчик... В мне идея мигалки понравилась... Если ее еще и реализовать с непрямоугольной формой, да с прозрачными областями, да мигания ласковые (плавно появляющиеся и уходящие), то вообще бомба будет! Ты не против, если я (попозже) тоже эту весчь (идею) буду у себя прикручивать (там где просится)? //вообще-то, если сделать второе окно с наглым (модальным) требованием выбрать нового сотрудника занимающегося письмами удаляемого (как в принципе сейчас и делаю), то мигалка не нужна вовсе, но мне понравилось в целом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 11:53 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Понял. Эскюзе муа. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 11:58 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
2 Нуф-Нуф: Опишу подробнее свои соображения, может оправдаюсь:-) Дело в том, что весь этот наворот придуман для решения следующей задачи - обнаружены двойники людей и они подлежат удалению. Ну, обычное дело: из разных мест дважды был заведен один и тот же человек. И теперь две Лисицины существуют в базе, каждая со своей карточкой человека, телефонами, факсами, мэйлами, должностями и проч. лабуденью. Одного надо удалять. Но на них на обоих - подчиненные записи. И я знаю, что в моем случае - только ссылки в таблице электронной переписки, никаких более зарплат и проч. нет. Тогда, я предлагаю пользователю: 1. Стандартным аксессовским способом правой кнопкой пометить одну из Лисициных на удаление. Во время события Form_Delete я ставлю против удаляемого человека метку в невидимом поле, а само удаление отменяю (на нем же еще подчиненные записи), запускаю моргалку с предупреждением и предлагаю мышью указать на другую Лисицину (или вообще на другого человека) 2. После того, как пользователь тыркает мышью на другого чела, я спрашиваю подтверждение (действительно ли тот человек), если тот - перевожу переписку, если нет - ожидаю второй попытки. 3. Если пользователь подтверждает, что выбрал правильного человека - уже в событии Current удаляю первую запись (откуда пришел), т.к. письма уже перекинуты. Так что повторно возвращаться к удаляемому человеку не приходится. А переход по стрелке на другую запись я заблокирую для пользы пользователя - только мышью пусть выбирает. Все это у меня работало, пока с моргающей формой не связался. Теперь вот ее не моргающей сделал, упростил до невозможности - не помогает. После Form_Delete НЕ генерится событие запрос подтверждения удаления, запись из формы удаляется, а из таблицы - нет. Причем на второй записи запрос подтверждения уже идет. Нет, пожалуй застрелюсь. Хотя сначала надо теще на дачу хавчик отвезти, а то с голоду помре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 12:10 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Мужик, тебе жизнь тещи дороже, чем собственная??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 12:12 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Нуф-нуф>Конечно делай как считаешь нужным! Потом расскажешь, чего получилось. Буду рад, что хоть идею сырую смог подкинуть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 12:13 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Саныч: поздравляю с МИЛЛЕНИУМОМ!(2000 сообщений)! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 12:14 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Есть такое дело Ж-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 12:16 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
:^) Спасибо за поздравление, только поклянись, что останешься в живых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 12:16 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Все в руках Лоха теперь:-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 12:18 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Лифчик, понял зачем сие... Всё ОК... На счет идеи спасибо, но я сейчас на другом этапе, поэтому вплотную данной идеей буду заниматься позже и, соответственно, позже дам знать о том, что получится. А пока идея ложится в папочку "Задачи 2-ой итерации" :) А на счет реализации режима отображения формы таким образом, чтобы была постоянно "над всеми" другими, то только через ВинАПИ, что совсем не страшно :) Ниже приведенный код просто копируешь в мигальную формочку (которую обязательно надо сделать "всплывающей") и наслаждаешься :) Если оно тебе конечно надо... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Кстати, формочку можно сделать "всегда верхней" как в пределах приложения, так и в пределах системы в целом. Разберешся сам... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 13:58 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Ой... Забыл выкинуть два флага из вызова процедурки... Исправляюсь... И навожу красоту в расцветках кода :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 14:04 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Дополняю ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. а в форме просто инициализируем Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 16:08 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Alexanderik, извини, но дополняешь чего? Че та я не пойму зачем с регионами заморочки прикручены... На строке... Rgn = CreateRectRgn(.WindowLeft, .WindowHeight, .WindowWidth, .WindowHeight) ...вываливается. Да и... Const HWND_TOP = -1 Const HWND_TOPMOST = -1 ...как-то нелогично выглядит Я не критикую! Я пытаюсь посмотреть что этот код делает, а ничего толком добиться от него не могу :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 17:02 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Да и CaptionHeight нигде не используется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 17:13 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
просто код с рабочего проекта = поэтому не все успел подчистить. Дополнение к этому выглядит как прозрачное окно которое висит поверх всех - вроде и модальное - но без BlockControl. Код: plaintext 1. - не прав я тут - корректирую Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. >Да и CaptionHeight нигде не используется... Первоначально = прозрачным был только топик ! остатки кода ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 17:35 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Приехал. Обменял у тещи колбасу на ягоды, теперь неделю можно свободой наслаждаться и Аксессом :-) Ба, да тут куча полезного кода высветилась! Спасибо, все скопировал и использую по мере возможностей. Но меня сейчас больше волнует не реализация мигалки или удаления, а вообще факт НЕглючности моего софта. В связи с этим еще раз даю ссылку http://sashalev.narod.ru/NewTest.zip и спрашиваю - может ли кто-то запустить в ХР-шном офисе и сказать - УДАЛЯЕТ ЛИ аксесс из подчиненной формы человека с первой попытки (как положено, т.е. с подтверждением об удалении) . У меня нормально удаляется только ВТОРОЙ человек, а запись с первым блокируется в таблице, а в форме удаляется БЕЗ подтверждения. Буду глубоко признателен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 22:50 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Я не читал, но я не согласен! Мой опыт подсказывает, что в ситуациях, когда требуется подтверждение удаления (с удалением в связанных таблицах) и возможным откатом, наиболее простой схемой является байтовое поле УДЛ в таблице (вроде бита удаления в DBF табличках) По событию формы Form_delete SQL запросом UPDATE выставляешь в выбранных записях УДЛ=1 (или другое, если режимов удаления несколько), и с Cansel=true выходишь из Form_delete. А в запросах на просмотр добавляешь where УДЛ=0. Фактическое же удаление выполняешь в конце работы перед закрытием приложения или в начале при открытии базы. При этом можно использовать нудные Rollback и Commit для пущей корректности в плане целостности данных. И всегда можно вызвать формочку отката и убрать УДЛ=1 с драгоценной записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2003, 09:07 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
2 Лифчик Скачал. Поглядел. Сижу чешу репу.. Access XP sp2, Win2000 sp2 Не удаляются записи вапсче. Т.е. из формы они удаляются (без предупреждения), в таблице блокируются и остаются. Как 1-я, так и все последующие. Связь главной с подчиненной теряется. Бред какой-то. Попробовал избавиться от DoCmd.OpenForm в Form_Delete. Заменил на Set frm = New_Форма1. Форма1 любая, моргающая, не моргающая - пофигу мороз. Все работает. Как только делаешь frm.Visible - все перестает работать. Буду думать... Бред какой-то... З.Ы. Лучше отходи от такого "интуитивно понятного" интерфейса. Пусть лучше человек выберет нормальным способом одну запись, вторую запись, нажмет кнопку. По нажатию на кнопку делаешь всю работу (перекидываешь связи) и удаляешь одну из записей. Всем будет проще и понятнее. Имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2003, 09:57 |
|
||
|
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
|
|||
|---|---|---|---|
|
#18+
Лох - ты спас мне жизнь! На своем борту нарисуй красную звезду - как символ спасенного! В догонку - если DoCmd ОДИН раз сработало (причем, как ты правильно сказал - запись заблокировалась но из базы не удалилась и в этот момент потерялась синхронизация форм), ТО СО ВТОРОГО УДАЛЕНИЯ ВСЕ НАЧИНАЕТ РАБОТАТЬ ПРАВИЛЬНО И ФОРМЫ ОПЯТЬ СЦЕПЛЯЮТСЯ!!! Нуф-Нуф> Спасибо за код - наслаждаюсь поверх расположенной формочкой. Вот если бы еще аксесс всегда работал как надо :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2003, 10:05 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32218997&tid=1680271]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 393ms |

| 0 / 0 |
