Страница 2 из 3

Добавлено: 25 май 2010, 14:49
BlazeBio
Да ничего не вышло. Всё продолжает также работать. Мой код не отменяется. Что делать ? (буду через час)

Добавлено: 25 май 2010, 15:15
galover
сорри, прогнал про cmValue20. Дошло что нужно. Никак, не сделать. Только продублировать в своем коде весь код из родительского cmMakeOrder

Добавлено: 25 май 2010, 15:17
Vik
Да, тоже кроме дублежа кода ничего на ум не приходит. Можно было бы как-то справиться еще, если б был описан vih c нужным методом.

Добавлено: 25 май 2010, 15:31
BlazeBio
В каком смысле продублировать ? Это как ?

Добавлено: 25 май 2010, 15:44
Den
Это фактически перекрыть весь стандартный обработчик CmMakeOrder
Не самый лучший вариант ( Но другого видимо нет

Добавлено: 25 май 2010, 16:23
Den
Еще пришла мысля может как то косвенно отлавливать чем закончилось событие CmMakeOrder - изменением katsopr-записи до и после выполнения данного события. Ведь если нажали "сформировать ордер" и потом отказались от удаления их в диалоге, сказав "нет", то запись katsopr измениться ведь не должна ?

Добавлено: 25 май 2010, 16:49
BlazeBio
Вроде как не меняется. И как отлавливать ?

Добавлено: 25 май 2010, 16:52
Den
связку katsopr.atl_lastdate+katsopr.atl_lasttime по текущему katsopr.nrec до и после вызова ....

Добавлено: 25 май 2010, 16:56
edward_K
или наличие ордеров или смену katsopr.dopr. Там вызывается диалог, никаких переменных вроде не пишется.

Добавлено: 25 май 2010, 16:59
Den
edward_K писал(а):или наличие ордеров или смену katsopr.dopr. Там вызывается диалог, никаких переменных вроде не пишется.
А katsopr.dopr может и не смениться - нажмут да(удалить ордера) и переприходуют той же датой.

Добавлено: 25 май 2010, 17:02
Vik
А если кто-то, пока вы раздумывали нажать да или нет, с другой машины внес изменение в KatSopr, тогда и отслеживание Katsopr.atl_lastdate+katsopr.atl_lasttime навряд ли поможет)

Добавлено: 25 май 2010, 17:09
Den
А в Гале не получаем при нахождении одновременно двух юзверей в одном документе и если из него один вылезает системный "запись модицицируется другим пользователем|конфиликт с другим пользователем" с невозможностью update ?
Или это на прикладном уровне реализовано в некоторых документах только ?
Хотя да. Тут возможны варианты тоже. Соглашусь.

Добавлено: 25 май 2010, 17:17
Vik
По-моему, если брать конкретно накладные, без проблем можно изменить, например, номер накладной, пока кто-то где-то размышляет, нужны ему ордера или нет.

Добавлено: 25 май 2010, 17:27
BlazeBio
Это всё хорошо. Но дата ордера может быть одна и та же, изменения ммогут производить один или несколько человек. Но тогда по какому параметру можно отследить изменения?

Добавлено: 25 май 2010, 17:44
Vik
А попробуйте так:

Код: Выделить всё

........
HandleEvent
  cmMAKEORDER :
   {
     Inherited :: HandleEvent(cmMAKEORDER );

     if (IsModified )
       {
          <ваш код>
       }
    
   }

end;
......