33 %MACRO _reportTreeHTML (i_repdata = 
 
   38 %LOCAL d_tree d_tree1 d_tree2 d_la i; 
 
   40 %LET l_title = &g_project | SASUnit;
 
   42 %_tempFilename(d_tree)
 
   43 %_tempFilename(d_tree1)
 
   44 %_tempFilename(d_tree2)
 
   48 DATA &d_tree1 (KEEP=label popup target lvl term lst1-lst5);
 
   49    LENGTH label popup target $255 lvl term lst1-lst5 8;
 
   52    BY scn_id cas_id tst_id;
 
   54     tst_type=tranwrd(tst_type,"^_","");
 
   55     tst_desc=tranwrd(tst_desc,"^_","");
 
   58       label  = "&g_nls_reportTree_001";
 
   59       popup  = "&g_nls_reportTree_002";
 
   60       target = "scn_overview.html";
 
   70    IF first.scn_id THEN DO;
 
   72       popup  = "&g_nls_reportTree_003 " !! put(scn_id,z3.) !! ': &
#x0D;' !! scn_desc; 
   73       target = 
"cas_overview.html#SCN" !! put(scn_id,z3.) !! 
"_";
 
   82    IF first.cas_id THEN DO;
 
   83       label  = put(cas_id,z3.);
 
   84       popup  = 
"&g_nls_reportTree_004 " !! put (cas_id,z3.) !! 
': 
' !! cas_desc;
 
   85       target = 
'cas_' !! put(scn_id,z3.) !! 
"_" !! put (cas_id,z3.) !! 
".html";
 
   93    label  = put (tst_id, z3.) !! 
' (' !! trim(tst_type) !! 
')';
 
   94    popup  = 
"&g_nls_reportTree_005 " !! put (tst_id,z3.) !! 
': 
' !! tst_desc;
 
   95    target = 
'cas_' !! put(scn_id,z3.) !! 
"_" !! put (cas_id,z3.) !! 
".html#TST" !! put (tst_id,z3.);
 
  104 DATA &d_tree2 (KEEP=label popup target lvl term lst1-lst5);
 
  105    LENGTH label popup target $255 lvl term lst1-lst5 8;
 
  108    BY cas_auton pgm_id scn_id cas_id tst_id;
 
  110     tst_type=tranwrd(tst_type,
"^_",
"");
 
  111     tst_desc=tranwrd(tst_desc,
"^_",
"");
 
  112     cas_pgm =tranwrd(cas_pgm,
"^_",
"");
 
  115       label  = 
"&g_nls_reportTree_006";
 
  116       popup  = 
"&g_nls_reportTree_007";
 
  117       target = 
"auton_overview.html";
 
  128    IF first.cas_auton THEN DO;
 
  130          WHEN (0) label = tsu_sasunit;
 
  131          WHEN (1) label = tsu_sasunit_os;
 
  132          WHEN (2) label = tsu_sasautos;
 
  134          WHEN (&i+2) label = tsu_sasautos&i;
 
  136          OTHERWISE label="&g_nls_reportAuton_015";
 
  139          popup  = "&g_nls_reportTree_009 sasunit:" !! '&
#x0D;' !! label; 
  140       ELSE IF cas_auton=1 THEN 
 
  141          popup  = 
"&g_nls_reportTree_009 os_specific sasunit:" !! 
'
' !! label;
 
  142       ELSE IF cas_auton=2 THEN 
 
  143          popup  = 
"&g_nls_reportTree_009 sasautos:" !! 
'
' !! label;
 
  144       ELSE IF cas_auton>2 THEN 
 
  145          popup  = 
"&g_nls_reportTree_009 sasautos" !! left(put(cas_auton-2,1.)) !! 
':
' !! label;
 
  147          popup = 
"&g_nls_reportTree_010";
 
  148       target = 
"auton_overview.html#AUTON";
 
  149       IF cas_auton NE . THEN target = trim(target) !! put(cas_auton,z3.);
 
  150       target = trim(target) !! 
'_';
 
  160    IF first.pgm_id THEN DO;
 
  163          WHEN (0) popup = trim(tsu_sasunit) !! '/' !! cas_pgm;
 
  164          WHEN (1) popup = trim(tsu_sasunit_os) !! '/' !! cas_pgm;
 
  165          WHEN (2) popup = trim(tsu_sasautos) !! '/' !! cas_pgm;
 
  167          WHEN (&i+2) popup = trim(tsu_sasautos&i) !! '/' !! cas_pgm;
 
  169          OTHERWISE popup=cas_pgm;
 
  171       popup = "&g_nls_reportTree_011: " !! '&
#x0D;' !! popup; 
  172       target = 
"auton_overview.html#AUTON";
 
  173       IF cas_auton NE . THEN target = trim(target) !! put(cas_auton,z3.);
 
  174       target = trim(target) !! 
'_' !! put(pgm_id,z3.) !! 
"_";
 
  183    IF first.cas_id THEN DO;
 
  184       label  = put(scn_id,z3.) !! 
"_" !! put(cas_id,z3.);
 
  185       popup  = 
"&g_nls_reportTree_012 " !! put(scn_id,z3.) !! 
", &g_nls_reportTree_013 " !! put (cas_id,z3.) !! 
': 
' !! cas_desc;
 
  186       target = 
'cas_' !! put(scn_id,z3.) !! 
"_" !! put (cas_id,z3.) !! 
".html";
 
  194    label  = put (tst_id, z3.) !! 
' (' !! trim(tst_type) !! 
')';
 
  195    popup  = 
"&g_nls_reportTree_014 " !! put (tst_id,z3.) !! 
'
' !! tst_desc;
 
  196    target = 
'cas_' !! put(scn_id,z3.) !! 
"_" !! put (cas_id,z3.) !! 
".html#TST" !! put (tst_id,z3.);
 
  205 DATA &d_tree &d_la(KEEP=lvl RENAME=(lvl=nextlvl));
 
  206    SET &d_tree1 &d_tree2 END=eof;
 
  208    IF _n_>1 THEN OUTPUT &d_la;
 
  223    FILE 
"&o_html" LRECL=1024;
 
  226       %_reportHeaderHTML(&l_title)
 
  227       PUT "    <script type=""text/javascript"">";
 
  230       PUT "    function toggleFolder(
id, imageNode) ";
 
  232       PUT "      var folder = document.getElementById(
id);
"; 
  233       PUT "      var l = imageNode.src.length;
"; 
  234       PUT "      if (imageNode.src.substring(l-20,l)==
""ftv2folderclosed.png
"" || 
"; 
  235       PUT "          imageNode.src.substring(l-18,l)==
""ftv2folderopen.png
"")
"; 
  237       PUT "        imageNode = imageNode.previousSibling;
"; 
  238       PUT "        l = imageNode.src.length;
"; 
  240       PUT "      if (folder == null) 
"; 
  243       PUT "      else if (folder.style.display == 
""block
"") 
"; 
  245       PUT "        if (imageNode != null) 
"; 
  247       PUT "          imageNode.nextSibling.src = 
""ftv2folderclosed.png
"";
"; 
  248       PUT "          if (imageNode.src.substring(l-13,l) == 
""ftv2mnode.png
"")
"; 
  250       PUT "            imageNode.src = 
""ftv2pnode.png
"";
"; 
  252       PUT "          else if (imageNode.src.substring(l-17,l) == 
""ftv2mlastnode.png
"")
"; 
  254       PUT "            imageNode.src = 
""ftv2plastnode.png
"";
"; 
  257       PUT "        folder.style.display = 
""none
"";
"; 
  261       PUT "        if (imageNode != null) 
"; 
  263       PUT "          imageNode.nextSibling.src = 
""ftv2folderopen.png
"";
"; 
  264       PUT "          if (imageNode.src.substring(l-13,l) == 
""ftv2pnode.png
"")
"; 
  266       PUT "            imageNode.src = 
""ftv2mnode.png
"";
"; 
  268       PUT "          else if (imageNode.src.substring(l-17,l) == 
""ftv2plastnode.png
"")
"; 
  270       PUT "            imageNode.src = 
""ftv2mlastnode.png
"";
"; 
  273       PUT "        folder.style.display = 
""block
"";
"; 
  281       PUT 
"  <body class=""ftvtree"">";
 
  282       PUT 
"    <div class=""directory"">";
 
  283       PUT 
'      <h3><a class="el" href="overview.html" title="' "&g_nls_reportTree_015 &g_project" '" target="basefrm">' "&g_project" '</a></h3>';
 
  284       PUT 
"      <div style=""display: block;"">";
 
  287    ARRAY lst{5} lst1-lst5;
 
  291       IF lst{i} THEN PUT 
'<img src="ftv2blank.png"        width=16 height=22 />' @;
 
  292       ELSE           PUT 
'<img src="ftv2vertline.png"     width=16 height=22 />' @;
 
  295       IF lst{i} THEN PUT 
'<img src="ftv2lastnode.png"     width=16 height=22 />' @;
 
  296       ELSE           PUT 
'<img src="ftv2node.png"         width=16 height=22 />' @;
 
  297                      PUT 
'<img src="ftv2doc.png"          width=24 height=22 />' @;
 
  301       IF lst{i} THEN PUT 
'<img src="ftv2plastnode.png"    width=16 height=22 ' 
  302                          'onclick="toggleFolder(''folder' folder +(-1) 
''', 
this)
"/>' @; 
  303       ELSE           PUT '<img src="ftv2pnode.png
"        width=16 height=22 ' 
  304                          'onclick="toggleFolder(
''folder
' folder +(-1) ''', 
this)
"/>' @; 
  305                      PUT '<img src="ftv2folderclosed.png
" width=24 height=22 ' 
  306                          'onclick="toggleFolder(
''folder
' folder +(-1) ''', 
this)
"/>' @; 
  308    PUT '<a class="el
" href="' target +(-1) '" title="' popup +(-1) '" target="basefrm
">' label +(-1) '</a></p>'; 
  309    IF NOT term AND lvl<nextlvl THEN PUT '<div id="folder
' folder +(-1) '">'; 
  310    DO i=nextlvl+1 TO lvl; 
  315       PUT '</div></div></body></html>'; 
  320 PROC DATASETS NOLIST NOWARN LIB=work; 
  321    DELETE %scan(&d_tree,1,.) %scan(&d_tree1,1,.) %scan(&d_tree2,1,.) %scan(&d_la,1,.); 
  324 %MEND _reportTreeHTML;