Quintiq file version 2.0 #parent: #root Method CreateForSnapshot ( LibOpt_Snapshot snapshot, String path, shadow[LibOpt_UIOwner] owner ) id:Method_LibOpt_FormSnapshotColumns_CreateForSnapshot { #keys: '[139164.4.767485964]' Body: [* type_name := typeofexpression( snapshot ).Name() nvt := NamedValueTreeIO::Export( snapshot ); root := nvt.Root().Child( nvt.GetHandle( type_name ) ); tv := typeofexpression( snapshot ).TypeView(); traverse( ApplicationScope.TypeInterface( typeofexpression( snapshot ) ), Attributes, att, not att.IsSystem() ) { child := guard( root.Child( nvt.GetHandle( att.Name() ) ), null( NamedValue ) ); value := ''; type := ''; if( att.IsImage() ) { type := 'Image'; value := Char::Construct( 128247 ); } else { Form.ExtractAttribute( child, type, value ); } owner.UISnapshotAttribute( relnew, Path := path, AttributeName := att.Name(), Value := value, Description := guard( select( tv, Attributes, tv_att, tv_att.Name() = att.Name() ).Description(), '' ), Type := type, Snapshot := snapshot ); } traverse( snapshot, Children, subsnapshot, not subsnapshot.istype( LibOpt_SnapshotComponent ) ) { this.CreateForSnapshot( subsnapshot, path + '.' + subsnapshot.Type(), owner ); } *] }