| Quintiq file version 2.0 | 
| #parent: #root | 
| Method ExtractAttribute ( | 
|   NamedValue nv, | 
|   output String type_o, | 
|   output String value_o | 
| ) id:Method_LibOpt_FormSnapshotColumns_ExtractAttribute | 
| { | 
|   #keys: '[139164.4.760817179]' | 
|   Body: | 
|   [* | 
|     value_o := '<?>'; | 
|     type_o := '<?>'; | 
|     if( not isnull( nv ) ) | 
|     { | 
|       val := nv.GetValue(); | 
|       if( val.istype( BinaryValue ) ) | 
|       { | 
|         type_o := 'BinaryValue'; | 
|         value_o := [String] nv.GetValueAsBinaryValue(); | 
|       } | 
|       else if( val.istype( Boolean ) ) | 
|       { | 
|         type_o := 'Boolean'; | 
|         value_o := [String] nv.GetValueAsBoolean(); | 
|       } | 
|       else if( val.istype( Char ) ) | 
|       { | 
|         type_o := 'Char'; | 
|         value_o := [String] nv.GetValueAsChar(); | 
|       } | 
|       else if( val.istype( Date ) ) | 
|       { | 
|         type_o := 'Date'; | 
|         value_o := [String] nv.GetValueAsDate(); | 
|       } | 
|       else if( val.istype( DateTime ) ) | 
|       { | 
|         type_o := 'DateTime'; | 
|         value_o := [String] nv.GetValueAsDateTime(); | 
|       } | 
|       else if( val.istype( Duration ) ) | 
|       { | 
|         type_o := 'Duration'; | 
|         value_o := [String] nv.GetValueAsDuration(); | 
|       } | 
|       else if( val.istype( Key ) ) | 
|       { | 
|         type_o := 'Key'; | 
|         value_o := [String] nv.GetValueAsKey(); | 
|       } | 
|       else if( val.istype( Number ) ) | 
|       { | 
|         type_o := 'Number'; | 
|         value_o := [String] nv.GetValueAsNumber(); | 
|       } | 
|       else if( val.istype( Real ) ) | 
|       { | 
|         type_o := 'Real'; | 
|         value_o := [String] nv.GetValueAsReal(); | 
|       } | 
|       else if( val.istype( String ) ) | 
|       { | 
|         type_o := 'String'; | 
|         value_o := [String] nv.GetValueAsString(); | 
|       } | 
|     } | 
|   *] | 
| } |