DYNAMIC RESULT SETS 1
LANGUAGE SQL
 BEGIN

	            BEGIN
					    DECLARE crs CURSOR WITH RETURN FOR
					    SELECT *
						FROM (
						     SELECT
						            dde.Id,
						            ddv.ReferenceName,
						            ddv.ReferenceDdsTypeId,
						            ddv.ElementId AS ParentId,
						            ElementSourceInfo.StartRow AS ElementStartRow,
						            ElementSourceInfo.EndRow AS ElementEndRow,
						            Paths_1.PathStr AS ElementPathStr,
						            CallSourceInfo.StartRow AS CallStartRow,
						            CallSourceInfo.EndRow AS CallEndRow,
						            Paths_2.PathStr AS CallPathStr
						     FROM DDCLElement dde
						          RIGHT OUTER JOIN DDCLValue ddv ON dde.Name = ddv.ReferenceName
						                                      AND dde.DdsTypeId = ddv.ReferenceDdsTypeId
						          INNER JOIN DDCLProperty ddp ON ddv.PropertyId = ddp.Id
						          INNER JOIN DDCLElement AS DDCLElementParent ON ddv.ElementId = DDCLElementParent.Id
						          LEFT OUTER JOIN DDCLSourceInfo AS ElementSourceInfo ON dde.SourceInfo = ElementSourceInfo.Id
						          LEFT OUTER JOIN Programs AS Programs_1 ON ElementSourceInfo.ProgramId = Programs_1.ProgramID
						          LEFT OUTER JOIN Occurrences AS Occurrences_1 ON Programs_1.OccurID = Occurrences_1.OccurID
						          LEFT OUTER JOIN Paths AS Paths_1 ON Occurrences_1.PathID = Paths_1.PathID
						          INNER JOIN DDCLSourceInfo AS CallSourceInfo ON ddv.SourceInfo = CallSourceInfo.Id
						          INNER JOIN Programs AS Programs_2 ON CallSourceInfo.ProgramId = Programs_2.ProgramID
						          INNER JOIN Occurrences AS Occurrences_2 ON Programs_2.OccurID = Occurrences_2.OccurID
						          INNER JOIN Paths AS Paths_2 ON Occurrences_2.PathID = Paths_2.PathID
						     WHERE ddv.ReferenceDdsTypeId = 14
						          AND ddp.Name = 'DISPLAY-STRUCTURE'
						          AND DDCLElementParent.DdsTypeId = 16
						          AND DDCLElementParent.Id IN (SELECT * FROM SESSION.numeric_param_temp)
						
						     UNION
						
						SELECT
						       DDCLElement_SCREEN.Id,
						       DDCLElement_SCREEN.Name AS ReferenceName,
						       DDCLElement_SCREEN.DdsTypeId AS ReferenceDdsTypeId,
						       DDCLElementParent.Id AS ParentId,
						       ElementSourceInfo.StartRow AS ElementStartRow,
						       ElementSourceInfo.EndRow AS ElementEndRow,
						       Paths_1.PathStr AS ElementPathStr,
						       CallSourceInfo.StartRow AS CallStartRow,
						       CallSourceInfo.EndRow AS CallEndRow,
						       Paths_2.PathStr AS CallPathStr
						FROM DDCLElement AS DDCLElement_SCREEN
						     INNER JOIN DDCLValue AS DDCLValue_1 ON DDCLElement_SCREEN.Id = DDCLValue_1.ElementId
						     INNER JOIN DDCLProperty AS DDCLProperty_1 ON DDCLValue_1.PropertyId = DDCLProperty_1.Id
						     INNER JOIN DDCLValue AS DDCLValue_2 ON DDCLValue_1.ReferenceName = DDCLValue_2.ReferenceName
						                                                AND DDCLValue_1.ReferenceDdsTypeId = DDCLValue_2.ReferenceDdsTypeId
						     INNER JOIN DDCLProperty AS DDCLProperty_2 ON DDCLValue_2.PropertyId = DDCLProperty_2.Id
						     INNER JOIN DDCLElement AS DDCLElementParent ON DDCLValue_2.ElementId = DDCLElementParent.Id
						     INNER JOIN DDCLSourceInfo AS ElementSourceInfo ON DDCLElement_SCREEN.SourceInfo = ElementSourceInfo.Id
						     INNER JOIN Programs AS Programs_1 ON ElementSourceInfo.ProgramId = Programs_1.ProgramID
						     INNER JOIN Occurrences AS Occurrences_1 ON Programs_1.OccurID = Occurrences_1.OccurID
						     INNER JOIN Paths AS Paths_1 ON Occurrences_1.PathID = Paths_1.PathID
						     INNER JOIN DDCLSourceInfo AS CallSourceInfo ON DDCLValue_1.SourceInfo = CallSourceInfo.Id
						     INNER JOIN Programs AS Programs_2 ON CallSourceInfo.ProgramId = Programs_2.ProgramID
						     INNER JOIN Occurrences AS Occurrences_2 ON Programs_2.OccurID = Occurrences_2.OccurID
						     INNER JOIN Paths AS Paths_2 ON Occurrences_2.PathID = Paths_2.PathID
						     WHERE DDCLElement_SCREEN.DdsTypeId = 14
						          AND DDCLValue_1.ReferenceDdsTypeId = 15
						          AND DDCLProperty_1.Name = 'DISPLAY-STRUCTURE'
						          AND DDCLValue_2.ReferenceDdsTypeId = 15
						          AND DDCLProperty_2.Name = 'DISPLAY-STRUCTURE'
						          AND DDCLElementParent.DdsTypeId = 16
						          AND DDCLElementParent.Id IN (SELECT * FROM SESSION.numeric_param_temp)
						     )src
						     ORDER BY ReferenceName;
					
				       OPEN crs;
				
                END;
END	
