В стандартной Browse нет возможности вклинится в execute для подстановки своих Update Form, решение только с помощью OMIT ?

Модератор: Дед Пахом
Код: Выделить всё
ThisWindow.Run PROCEDURE(USHORT Number,BYTE Request)
ReturnValue BYTE,AUTO
CODE
ReturnValue = PARENT.Run(Number,Request)
!-- Это я вставил
IF SELF.Request = ViewRecord
ReturnValue = RequestCancelled ! Always return RequestCancelled if the form was opened in ViewRecord mode
ELSE
GlobalRequest = Request
IF Loc:ScreenType = 'T'
TestEditor(1)
ELSE
ScreenEditor(1)
END
ReturnValue = GlobalResponse
END
RETURN ReturnValue
!--- А это сгенерировано
IF SELF.Request = ViewRecord
ReturnValue = RequestCancelled ! Always return RequestCancelled if the form was opened in ViewRecord mode
ELSE
GlobalRequest = Request
Dummy
ReturnValue = GlobalResponse
END
RETURN ReturnValue
Спасибо Yufil, я так и вставляю с помощью OMIT , думал еще есть решение кроме этогоYufil писал(а): 26 Май 2017, 19:39 Вот, нашёл в работающем коде, нужно было вызвать процедуру testeditor или ScreenEditor в зависимости от типа записи
В зависимости от условий, наличие и скрытие дополнительных таб-ов в форме не выход, одна Update форма на два поля, другая на пол-экрана
Как вариант, два поля можно в EIP редактировать. Это в шаблонах предусмотрено. Как раз, может, для таких случаев. И логика вроде бы в этом есть - зачем открывать тяжёлую форму для редактирования пары-тройки полей.
я два поля для примера привелkreator писал(а): 27 Май 2017, 9:46 Как вариант, два поля можно в EIP редактировать. Это в шаблонах предусмотрено. Как раз, может, для таких случаев. И логика вроде бы в этом есть - зачем открывать тяжёлую форму для редактирования пары-тройки полей.
Код: Выделить всё
UpdateSourceProcedure PROCEDURE(...)
Code
CASE UpdateType
OF 1
UpdateProcedure1()
OF 2
UpdateProcedure2()
....
RETURN
Спасибо Yufil, попробую для сравненияYufil писал(а): 27 Май 2017, 11:17 Тогда самый простой вариант - сделать Update Procedure типа Source и передать ей параметр каким-то образом (если шаблон допускает, то напрямую, если нет - через какую-то глобальную переменную)
И никаких игрищ с OMIT