FUNCTION field_in_table
(field : table_record_field_representation, table : annotation_table_occurrence) : BOOLEAN;
LOCAL table_rep : table_representation; symbol_rep_rel_set : SET OF symbol_representation_relationship; mapped_item_set : SET OF mapped_item; table_record_rep_set : SET OF table_record_representation := []; END_LOCAL; table_rep := table\styled_item.item\mapped_item.mapping_source. mapped_representation; mapped_item_set := QUERY(item <* table_rep.items | ('REPRESENTATION_SCHEMA.MAPPED_ITEM' IN TYPEOF(item)) AND ('PRESENTATION_DEFINITION_SCHEMA.'+ 'TABLE_RECORD_REPRESENTATION' IN TYPEOF(item\mapped_item.mapping_source. mapped_representation )) ); REPEAT i := 1 TO HIINDEX(mapped_item_set); table_record_rep_set := table_record_rep_set + mapped_item_set[i].mapping_source.mapped_representation; END_REPEAT; symbol_rep_rel_set := bag_to_set (USEDIN(table_rep, 'REPRESENTATION_SCHEMA.'+ 'REPRESENTATION_RELATIONSHIP.REP_1')); REPEAT i := 1 TO HIINDEX(symbol_rep_rel_set); table_record_rep_set := table_record_rep_set + symbol_rep_rel_set[i]\representation_relationship.rep_2; END_REPEAT; IF SIZEOF(QUERY( table_record_rep <* table_record_rep_set | (SIZEOF(QUERY( rep_rel <* USEDIN(table_record_rep, 'REPRESENTATION_SCHEMA.'+ 'REPRESENTATION_RELATIONSHIP.REP_1') | ('PRESENTATION_DEFINITION_SCHEMA.' + 'SYMBOL_REPRESENTATION_RELATIONSHIP' IN TYPEOF(rep_rel)) AND (rep_rel.rep_2 :=: field) )) > 0) OR (SIZEOF(QUERY(item <* table_record_rep.items | ('REPRESENTATION_SCHEMA.MAPPED_ITEM' IN TYPEOF(item)) AND (field :=: item\mapped_item.mapping_source. mapped_representation ) )) > 0) )) = 0 THEN RETURN(FALSE); END_IF; RETURN(TRUE); END_FUNCTION; -- field_in_table
|