Страница 1 из 1
Удаление записи в Browse c EIP
Добавлено: 08 Февраль 2015, 21:52
Игорь Столяров
Привет всем !
C63 ABC, Browse c EIP. Подскажите, в какой точке (Embed) можно поймать удаление записи,
что бы проверить была удалена запись или пользователь отказался от удаления ?
Удаление записи в Browse c EIP
Добавлено: 08 Февраль 2015, 23:10
Yufil
При удалении удаление записи в Browse срабатывает Relate.File.Delete() .
Поставь какой-нить флажок в этот метод после вызова родителя и проверяй, как там оно...
Удаление записи в Browse c EIP
Добавлено: 09 Февраль 2015, 10:04
kreator
Есть метод BRW1::EIPManager.Run. Есть свойство менеджера self.Req (то бишь Request). И родительский метод что-то там возвращает, правда, не уверен, что Response.
Удаление записи в Browse c EIP
Добавлено: 09 Февраль 2015, 10:15
Игорь Столяров
kreator писал(а): Есть метод BRW1::EIPManager.Run
Это было первое, что я проверил. К сожалению, в этот метод при удалении записи мы не попадаем ....

Удаление записи в Browse c EIP
Добавлено: 09 Февраль 2015, 10:57
Yufil
Тогда проверь TakeAction и TakeCompleted.
В TakeCompleted имеет смысл проверить, не завершилась ли операция нажатием ?Close или Esc
Например,
IF ACCEPTED() = ?Close
Force = EditAction:Cancel
END
PARENT.TakeCompleted(Force)
Не это надо?
Удаление записи в Browse c EIP
Добавлено: 09 Февраль 2015, 12:45
kreator
Игорь Столяров писал(а):Это было первое, что я проверил. К сожалению, в этот метод при удалении записи мы не попадаем ....

Быть того не может, у меня работает. Посмотри - метод Run в EIPManager, и тот, который без входных параметров (Number, Request). на всякий случай вот работающий кусок (ничего не правил, беру как есть):
Код: Выделить всё
BRW1::EIPManager.Run PROCEDURE
ReturnValue BYTE,AUTO
! Start of "Browse EIP Manager Method Data Section"
! [Priority 5000]
! End of "Browse EIP Manager Method Data Section"
CODE
! Start of "Browse EIP Manager Method Executable Code Section"
! [Priority 4500]
if self.Req=DeleteRecord
get(BRW1.Q, choice(?List))
LOC:Queue.LOC:ID_SPR = BRW1.Q.SPR:ID_SPR
get(LOC:Queue, LOC:Queue.LOC:ID_SPR)
if ~error()
LOC:Queue.LOC:Time = 0
put(LOC:Queue)
if error()
stop(error())
end
else
stop(error())
end
BRW1.ResetQueue(Reset:Queue)
ReturnValue = 2
return ReturnValue
end
! Parent Call
ReturnValue = PARENT.Run()
! [Priority 7500]
! End of "Browse EIP Manager Method Executable Code Section"
RETURN ReturnValue
Удаление записи в Browse c EIP
Добавлено: 09 Февраль 2015, 15:01
Игорь Столяров
Супер ! Да ! Спасибо !

Я как раз и копал Run с (Number, Request) - по аналогии с удалением через форму.
Кто же знал, что в EIP так хитро все запрятано ...