Страница 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 так хитро все запрятано ...