Тема: Атрибуты родительского объекта

Клиент изъявил желание чтобы некоторые атрибуты из родительского объекта были видны в карточке (форме) объекта(без возможности редактировать).
Стандартной возможности не нашел.
Пока у меня есть одно решение добавить атрибуты в объект и при открытии формы программно копировать значения атрибутов родительского объекта в эти атрибуты.
Это както не эстетично.

Может есть другие способы?

Re: Атрибуты родительского объекта

Дело в том, что объекта может быть несколько родителей, а может не быть вовсе.  :)) Атрибуты какого из них располагать на форме ввода?
На самом деле на форме ввода можно расположить контролы с атрибутами родительского объекта и обработчиком события (на открытие формы) изменять значение контрола. Ну соответственно для контрола прописывать свойство ReadOnly или Enabled=False

Re: Атрибуты родительского объекта

Mishaf пишет:

Дело в том, что объекта может быть несколько родителей, а может не быть вовсе.  :)) Атрибуты какого из них располагать на форме ввода?
На самом деле на форме ввода можно расположить контролы с атрибутами родительского объекта и обработчиком события (на открытие формы) изменять значение контрола. Ну соответственно для контрола прописывать свойство ReadOnly или Enabled=False

Не успел я порадоваться - новая напасть:
Если добавить в форму обработчик "Form_AttributeChange"(даже пустой),  после изменения любого атрибута на форме, все значения которые проставились "Form_BeforeShow" пропадают.
Сделать ничего не получается. Вообще непонятно в чем причина.
Вот код:

Option Explicit
Sub Form_BeforeShow(Form, Obj)
    ThisForm.Controls("ARM_DOGOVOR_ZAKAZCHIK")= ThisObject.Parent.Attributes("ARM_DOGOVOR_ZAKAZCHIK").value
  ThisForm.Controls("ARM_DOGOVOR_PODRIADCHIK")= ThisObject.Parent.Attributes("ARM_DOGOVOR_PODRIADCHIK").value
  ThisForm.Controls("ARM_DOGOVOR_DATE")= ThisObject.Parent.Attributes("ARM_DOGOVOR_DATE").value
  ThisForm.Controls("ARM_DOGOVOR_ID")= ThisObject.Parent.Attributes("ARM_DOGOVOR_ID").value
End Sub   





Sub Form_AttributeChange(Form, Obj, Attribute, Cancel, OldAttribute)
End Sub

Re: Атрибуты родительского объекта

Попробуйте так:

Option Explicit
Sub Form_BeforeShow(Form, Obj)
    ThisForm.Attributes("ARM_DOGOVOR_ZAKAZCHIK").value= ThisObject.Parent.Attributes("ARM_DOGOVOR_ZAKAZCHIK").value
  ThisForm.Attributes("ARM_DOGOVOR_PODRIADCHIK").value= ThisObject.Parent.Attributes("ARM_DOGOVOR_PODRIADCHIK").value
  ThisForm.Attributes("ARM_DOGOVOR_DATE").value= ThisObject.Parent.Attributes("ARM_DOGOVOR_DATE").value
  ThisForm.Attributes("ARM_DOGOVOR_ID").value= ThisObject.Parent.Attributes("ARM_DOGOVOR_ID").value
End Sub   
Sub Form_AttributeChange(Form, Obj, Attribute, Cancel, OldAttribute)
End Sub

Re: Атрибуты родительского объекта

Нет не получается. Атрибутов таких на форме нет.   :(

---------------------------
Ошибка скрипта
---------------------------
Строка:    10
Символ:    4
Ошибка:    Объект не найден!

Код:    0
Строка:   

Запустить отладку?
---------------------------
Да   Нет   
---------------------------

Re: Атрибуты родительского объекта

opal пишет:

Нет не получается. Атрибутов таких на форме нет.   :(

Может и не нужны атрибуты? Вам же менять значение не нужно...
Используйте обычные надписи и переопределяйте их при загрузке формы.

Как идея?

Re: Атрибуты родительского объекта

McZag пишет:

Может и не нужны атрибуты? Вам же менять значение не нужно...
Используйте обычные надписи и переопределяйте их при загрузке формы.

Как идея?

Была такая мысль, но надпись не имеет границу как поле. Разве что комбинировать с рамкой. Возможно так и придется сделатью
Непонятно почему обработчик события так влияет на форму. Так не должно быть.

Re: Атрибуты родительского объекта

В итоге остановился на надписи.

Нормально.