Страница 1 из 1

Редактирование из Browse

Добавлено: 28 Апрель 2014, 10:20
Андрей
Прошу подсказать, что не так....
Надо в таблице проставить недостающее значение Peo:IdUch (из списка), если это делать стандартом через Form: открываю форму, выбираю из ComboDrop значение, то все Ок.
То же самое хочу для быстроты сделать прямо из броуза через AlertKey

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

CASE KEYCODE()
    OF F2Key              
        BRW1.UpdateBuffer()
        Peo:IdUch=l:IdUch
        Access:People.Update()
то получаю ошибку дублирования уник. ключа
а в чем разница, то ? Ведь из формы Update работает...

Re: Редактирование из Browse

Добавлено: 28 Апрель 2014, 10:43
gopstop2007
а вот так?

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

        Peo:IdUch=l:IdUch
        BRW1.UpdateBuffer()
       ! x Access:People.Update()
2 раза пытаешься обновить запись

Re: Редактирование из Browse

Добавлено: 28 Апрель 2014, 11:18
Андрей
Не.. так не идет... не ругается конечно, ведь запись физически не перезаписывается
BRW1.UpdateBuffer() - так понимаю заново считывает запись и подтягивает с нее все поля в буфер

Re: Редактирование из Browse

Добавлено: 28 Апрель 2014, 12:04
kreator
Сделай явное позиционирование на запись таблицы:
get(BRW1.Q, choice(?List))
PEO:ID = BRW1.Q.PEO:ID
Access:People.Fetch(PEO:IDKEY)

Re: Редактирование из Browse

Добавлено: 28 Апрель 2014, 12:18
gopstop2007
я делаю так

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

  MyField=FindField
  GET(MyFile,MyKey)
  Peo:IdUch=l:IdUch
  PUT(MyFile); IF ERRORCODE() THEN STOP(ERROR()) END
  BRW1.ResetFromBuffer()
  BRW1.ResetQueue(Reset:Queue)

Re: Редактирование из Browse

Добавлено: 28 Апрель 2014, 14:06
Yufil
Обновление Browse надо начинать с команды ThisWindow.Update().
Тогда будет подмотана правильная запись