|
|
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Случайно наткнулся на жестокий баг в своей программе :( На форме кнопка "Отмена" (Me.Undo) не отменяет изменения в подчиненной форме. Пробовал добавить Me!SubForm.Form.Undo результат тот же :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 00:44 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Можно попробовать Forms!Customers!AmountPaid.OldValue ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 00:54 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Тобишь цикл по всем контролам?! Я надеюсь есть более простые пути :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 00:57 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Когда входишь в подчиненную форму - автоматом сохраняется (если она есть) запись главной. Когда выходишь из подчиненной формы в главную - сохраняется (опять же, если есть) запись подчиненной. А унду работает только до сохранения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 01:14 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
То есть заморачиваться с oldvalue? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 01:16 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Еще есть пример у Гетца в 1 томе через транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 08:40 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Попробовал сделать так: Код: plaintext 1. 2. 3. 4. 5. 6. Ошибка: "Операция не поддерживается для объектов этого типа" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 18:03 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Всеволод, на чем кричит-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 18:07 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Ошибка: "Операция не поддерживается для объектов этого типа" На форме было поле, в котором было включено свойство "Блокировка". ====== OldValue тоже не помогает - оно работает также как и Undo :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 23:57 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
В этом случае можно создавать массив старых и новых значений, но что-то это меня сильно пугает :) Должны же быть более простые выходы! Или никто с этим не сталкивался? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 00:18 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Самый простой способ и об нем уже писали - транзакции. Все остальное - от лукавого (особенно массив - попробуй без ошибок отследить удаленные, добавленные записи. Да если даже и отследишь - окажется придумал собственную реализацию тразакций - а нифига, если они уже есть и ими просто пользоваться?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 09:41 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Насколько мне известно способов реализации такой проблемы несколько и они уже обсуждались, только немного с другой стороны.\r Это называется многострочный документ, т.е. есть заголовок документа и по нему строки, сохранять или отменять нужно весь документ целиком.\r \r Решения (в зависимости от постановки задачи и условий у каждого свои "+" и "-"):\r - главная и подчиненная форма открываются в одной транзакции (уже сказали - пример у Гетца)\r - использование временных таблиц для записей подчиненной формы\r - использование флага в документе (ввод закончен или нет) - во всех отчетах и выборках используются только завершенные документы, отдельный журнал по незавершенным.\r \r Обсуждалось здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 10:59 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
пример у Гетца Нету его у меня :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 17:30 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
пример у Гетца Хоть он (Гетц) есть у многих, но я не помню, чтобы на этом форуме кто-нибудь сказал, что сделал эту штуку и сказал, что она у него реально работает. Лучше спросить/попросить не пример из Гетца, а пример (если такой есть) из рабочей программы. У меня такого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 17:45 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
incold ОК :) -------- ДАЙТЕ, ПОЖАЛУЙСТА, ПРИМЕР ИЗ РАБОЧЕЙ ПРОГРАММЫ :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 17:49 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Товарищи гиганты мысли, неужели никто не делает кнопочку "Отмена" на своих формах??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 17:56 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Ну я делаю... Но я предварительно копирую запись в резерв, а если жмется отмена - то достаю из резерва... Вот так вот по рабоче-крестьянски... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 18:03 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
2 zz У тебя что, база однопользовательская? Или как? Пользователь начал править строки документа (в общих данных), а другой пользователь преспокойненько видит все незавершенные изменения, сам что-нибудь может подправить... Причем первый пользователь жмет отмену и все изменения второго идут лесом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 18:07 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
У меня - однопользовательская :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 18:08 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Лох Позорный предложи что-нибудь, пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 18:14 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
так тут же уже предлогалось про транзакции.... поищи, не ленись довольно подробно описывалось.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 21:37 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Попытался разобраться в транзакциях. Вот что получилось :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Что здесь неправильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 01:18 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
А откомпилировалось это? И нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 01:44 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
А откомпилировалось это? И нормально? То есть код составлен правильно? ----- Работает мягко говоря через жопу. :( Например, начинаю редактировать какое-либо из полей главной формы и сразу же это поле отчищается, т.е. мне нужно изменить строку, а в итоге я ввожу новую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:16 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
да ни хрена не правильно ты на открытии формы рекордсеты присваивай. а на Dirty только транзакцию начинай. это раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:20 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Так работает :) --- А что "два"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:27 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Хм... А если я вношу изменения только в подчиненной форме, то как тогда запустить транзакцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:30 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
И на Dirty подчиненной тоже запускай транзакцию. Это два И заведи себе флаг, по которому будешь отслеживать, была ли уже запущена транзакция или нет. Это три И нигде не видно Commit'а. Это четыре И при закрытии формы надо транзакцию или завершать, или откатывать. Это пять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:33 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
И на Dirty подчиненной тоже запускай транзакцию Черт Не понимаю, как начать транзакцию в модуле подчиненной, если рекордсеты присваиваются в модуле главнной формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:38 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
>Не понимаю, как начать транзакцию в модуле подчиненной, если рекордсеты присваиваются в модуле главнной формы? Дык вынеси в модуль. Можно и в модуль класса (если что-то универсально городить), но и обычного модуля в данном случае будет достаточно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:41 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Во-первых какая разница где начинать трнзакцию Во-вторых событие Dirty от подчиненной лови в основной В-третьих купил бы ты себе Гетца. Или нашел в инете исходники. Тут ссылку кто-то давал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:55 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Во-вторых событие Dirty от подчиненной лови в основной Да блин, и тут не понятно. Как это событие отловить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:06 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
см. в-третьих ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:08 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Я знал что ты так ответишь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:11 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
По поводу "см. в-третьих": Купить денег нету, а скачать инету... Уже было дело нащел даже эти исходники, но инет халявный кончился :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:12 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Что непонятно? Как объект описать чтобы от него события ловить? WithEvents Ф1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:16 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Почему, когда запущена транзакция, не работает Me.Requery ? Выдается ошибка: "Не удается найти поле Forms, указанное в выражении..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 17:09 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Через транс Все работает. Если необходимо, скину mdb с примером. ФОРМА Код: 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. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. СУБформа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2003, 11:34 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#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. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. Я как-то пробовал это, несколько усложнив (здесь для одной формы, а я делал для главной и подчиненной, отслеживая изменения и там, и там). В MA2000 все было нормально, но в МА2002 тот же код перестал работать (сделал новый adp 2002 и просто импортировал в него формы из adp 2000) Может как-то и можно было добиться, но я день поковырялся и решил дальше не разбираться в очередных "приветах от Била", а сделал на временных таблицах. Еще и потому, что возможность длинных по времени транзакций с клиента для сетевой работы как-то не очень хорошо Мне, правда,. тогда не нужно было отслеживать остатки по табличной части, поэтому использовал просто #таблицу Для решения подобной задачи с необходимостью подсчета остатков по товарам думаю использовать постоянные таблицы, где будет и идентификатор пользователя для фильтрации его записей. Это будет что-то типа Резервирования, которая должна участвовать в расчете остатков наравне с основными таблицами А при сохранении документа - в одной транзакции переносить все в основые таблицы, и удалять из "временных" PS Ну, если очень нужно - напиши, могу дать переписать CD из Гетца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2003, 19:44 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Jura$$ic В этом примере Me.Undo работать не будет (в некоторых ситуациях) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 16:42 |
|
||
|
Undo в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Vsevolod V Возможно. Но "некоторые случаи" зависят от частных случаев, а точнее от того, что ещё в эти формы понапихано. Хоть я далеко и не Дока, но уверенно могу сказать: в "некоторых случаях" не работает абсолютно всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2003, 16:03 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1678030]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
138ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 462ms |

| 0 / 0 |
