Adding CrossTrack Links to drill-through reports
Follow this procedure to add a CrossTrack link to a drill-through report.
Procedure
- Create a new list report.
-
From the Insertable Objects pane, drag the following data items into the
list (what is loaded in your system will be different from what you see here):
-
DEFAULT|[DEFAULT_REL]|GRC_OBJECTS|SOXBUSENTITY_FOLDER| [SOXBUSENTITY_GPC]|[PEN_NAME00]
-
DEFAULT|[DEFAULT_REL]|GRC_OBJECTS|[SOXCONTROL]|[CN_NAME00]
-
DEFAULT|[DEFAULT_REL]|GRC_OBJECTS|[SOXCONTROL]|[CN_DESCRIPTION]
-
DEFAULT|[DEFAULT_REL][DEFAULT_REL]|GRC_OBJECTS|[SOXCONTROL] ENUMERATION_FIELDS|OPERATING_EFFECTIVENES(ENUMERATION)| [CN_OPERATING_EFFECTIVENES]
-
DEFAULT|[DEFAULT_REL]|GRC_OBJECTS|[SOXCONTROL] ENUMERATION_FIELDS| OPERATING_EFFECTIVENES(ENUMERATION)| [CN_OPERATING_EFFECTIVENES_ID]
-
-
Cut the
CN_OPERATING_EFFECTIVENES_ID
field from the list. -
Add the following JavaScript to the report:
Drag an HTML Item to the beginning of the report.
Double-click the HTML Item and enter the following code:
<script language="javascript"> function _fixUpLinkTarget() { var crossTrackLinks = document.querySelectorAll('a[href^="javascript:crosstrack("]'); for (var i = 0; i < crossTrackLinks.length; i++) { crossTrackLinks[i].target = ""; } } _fixUpLinkTarget(); var _crosstrackTargetWindow; function _discoverCrosstrackTargetWindow() { if(!_crosstrackTargetWindow || typeof(_crosstrackTargetWindow)=='undefined') { var win; if(!window.opener || typeof(window.opener)=='undefined') { win = window.parent; } else if(!window.opener.opener || typeof(window.opener.opener)=='undefined') { if(!window.opener.parent || typeof(window.opener.parent)=='undefined') { win = window.opener; } else { win = window.opener.parent; } } else { win = window.opener.opener; } _crosstrackTargetWindow = win; } } _discoverCrosstrackTargetWindow(); function _crosstrack(url, targetWin) { if(!targetWin || typeof(targetWin)=='undefined') { if(!window.opener || typeof(window.opener)=='undefined') { targetWin = window.parent; } else if(!window.opener.opener || typeof(window.opener.opener)=='undefined') { if(!window.opener.parent || typeof(window.opener.parent)=='undefined') { targetWin = window.opener; } else { targetWin = window.opener.parent; } } else { targetWin = window.opener.opener; } } try { targetWin.location.href=url; targetWin.focus(); } catch(err) { window.open(url); } } function openResourceInNewUI(url) { var resourceName; var resourceId = url.substring(url.indexOf("fileId=") + 7, url.length); var targetOrigin = url.substring(0, url.indexOf("view.resource.do") - 1); var resourceNameSpans = document.querySelectorAll('a[href^="javascript:crosstrack(\'' + url + '"] span'); if (resourceNameSpans && resourceNameSpans.length > 0) { resourceName = resourceNameSpans[0].innerText.trim(); } _crosstrackTargetWindow.top.postMessage( { "resourceId": resourceId, "resourceName": resourceName }, targetOrigin ); } function crosstrack(url) { if (document.cookie.indexOf("op-last-accessed-ui=task-focused") > 0 && url.indexOf("view.resource.do") > 0) { openResourceInNewUI(url); } else { _crosstrack(url, _crosstrackTargetWindow); } } </script>
-
Go to the Query Explorer and add the following filters to the query:
[DEFAULT_REL].[SOXBUSENTITY_GPC].[GEN_ENTITY_ID] = ?Entity ID?
[CN_OPERATING_EFFECTIVENES_ID] = ?Operating Effectiveness ID?
[DEFAULT_REL].[SOXBUSENTITY_GPC].[GEN_REPORTING_PERIOD_ID] = -1
- Validate the report.
- Save the report with the name Drill Through Child.
Results
- In Microsoft browsers, the detail page opens in the application window from which the report was launched.
-
In Chrome, the detail page opens in a new application window or tab.