38 %MACRO _sasunit_reportTreeHTML (
 
   44 %LET l_title = &g_project | SASUnit;
 
   46 %LOCAL d_tree d_tree1 d_tree2 d_la i; 
 
   47 %_sasunit_tempFilename(d_tree)
 
   48 %_sasunit_tempFilename(d_tree1)
 
   49 %_sasunit_tempFilename(d_tree2)
 
   50 %_sasunit_tempFilename(d_la)
 
   53 DATA &d_tree1 (KEEP=label popup target lvl term lst1-lst5);
 
   54    LENGTH label popup target $255 lvl term lst1-lst5 8;
 
   57    BY scn_id cas_id tst_id;
 
   60       label  = "&g_nls_reportTree_001";
 
   61       popup  = "&g_nls_reportTree_002";
 
   62       target = "scn_overview.html";
 
   72    IF first.scn_id THEN DO;
 
   74       popup  = "&g_nls_reportTree_003 " !! put(scn_id,z3.) !! ': &
#x0D;' !! scn_desc; 
   75       target = 
"cas_overview.html#scn" !! put(scn_id,z3.);
 
   84    IF first.cas_id THEN DO;
 
   85       label  = put(cas_id,z3.);
 
   86       popup  = 
"&g_nls_reportTree_004 " !! put (cas_id,z3.) !! 
': 
' !! cas_desc;
 
   87       target = 
'cas_' !! put(scn_id,z3.) !! 
"_" !! put (cas_id,z3.) !! 
".html";
 
   95    label  = put (tst_id, z3.) !! 
' (' !! trim(tst_type) !! 
')';
 
   96    popup  = 
"&g_nls_reportTree_005 " !! put (tst_id,z3.) !! 
': 
' !! tst_desc;
 
   97    target = 
'cas_' !! put(scn_id,z3.) !! 
"_" !! put (cas_id,z3.) !! 
".html#tst" !! put (tst_id,z3.);
 
  106 DATA &d_tree2 (KEEP=label popup target lvl term lst1-lst5);
 
  107    LENGTH label popup target $255 lvl term lst1-lst5 8;
 
  110    BY cas_auton pgm_id scn_id cas_id tst_id;
 
  113       label  = 
"&g_nls_reportTree_006";
 
  114       popup  = 
"&g_nls_reportTree_007";
 
  115       target = 
"auton_overview.html";
 
  126    IF first.cas_auton THEN DO;
 
  128          WHEN (0) label = tsu_sasautos;
 
  130          WHEN (&i) label = tsu_sasautos&i;
 
  132          OTHERWISE label="(&g_nls_reportTree_008)";
 
  135          popup  = "&g_nls_reportTree_009 sasautos:" !! '&
#x0D;' !! label; 
  136       ELSE IF cas_auton>0 THEN 
 
  137          popup  = 
"&g_nls_reportTree_009 sasautos" !! left(put(cas_auton,1.)) !! 
':
' !! label;
 
  139          popup = 
"&g_nls_reportTree_010";
 
  140       target = 
"auton_overview.html#auton";
 
  141       IF cas_auton NE . THEN target = trim(target) !! put(cas_auton,z3.);
 
  151    IF first.pgm_id THEN DO;
 
  154          WHEN (0) popup = trim(tsu_sasautos) !! '/' !! cas_pgm;
 
  156          WHEN (&i) popup = trim(tsu_sasautos&i) !! '/' !! cas_pgm;
 
  158          OTHERWISE popup=cas_pgm;
 
  160       popup = "&g_nls_reportTree_011: " !! '&
#x0D;' !! popup; 
  161       target = 
"auton_overview.html#auton";
 
  162       IF cas_auton NE . THEN target = trim(target) !! put(cas_auton,z3.);
 
  163       target = trim(target) !! 
'_' !! put(pgm_id,z3.);
 
  172    IF first.cas_id THEN DO;
 
  173       label  = put(scn_id,z3.) !! 
"_" !! put(cas_id,z3.);
 
  174       popup  = 
"&g_nls_reportTree_012 " !! put(scn_id,z3.) !! 
", &g_nls_reportTree_013 " !! put (cas_id,z3.) !! 
': 
' !! cas_desc;
 
  175       target = 
'cas_' !! put(scn_id,z3.) !! 
"_" !! put (cas_id,z3.) !! 
".html";
 
  183    label  = put (tst_id, z3.) !! 
' (' !! trim(tst_type) !! 
')';
 
  184    popup  = 
"&g_nls_reportTree_014 " !! put (tst_id,z3.) !! 
'
' !! tst_desc;
 
  185    target = 
'cas_' !! put(scn_id,z3.) !! 
"_" !! put (cas_id,z3.) !! 
".html#tst" !! put (tst_id,z3.);
 
  194 DATA &d_tree &d_la(KEEP=lvl RENAME=(lvl=nextlvl));
 
  195    SET &d_tree1 &d_tree2 END=eof;
 
  197    IF _n_>1 THEN OUTPUT &d_la;
 
  212    FILE 
"&o_html" LRECL=1024;
 
  215       %_sasunit_reportHeaderHTML(&l_title)
 
  216       PUT "    <script type=""text/javascript"">";
 
  219       PUT "    function toggleFolder(
id, imageNode) ";
 
  221       PUT "      var folder = document.getElementById(
id);
"; 
  222       PUT "      var l = imageNode.src.length;
"; 
  223       PUT "      if (imageNode.src.substring(l-20,l)==
""ftv2folderclosed.png
"" || 
"; 
  224       PUT "          imageNode.src.substring(l-18,l)==
""ftv2folderopen.png
"")
"; 
  226       PUT "        imageNode = imageNode.previousSibling;
"; 
  227       PUT "        l = imageNode.src.length;
"; 
  229       PUT "      if (folder == null) 
"; 
  232       PUT "      else if (folder.style.display == 
""block
"") 
"; 
  234       PUT "        if (imageNode != null) 
"; 
  236       PUT "          imageNode.nextSibling.src = 
""ftv2folderclosed.png
"";
"; 
  237       PUT "          if (imageNode.src.substring(l-13,l) == 
""ftv2mnode.png
"")
"; 
  239       PUT "            imageNode.src = 
""ftv2pnode.png
"";
"; 
  241       PUT "          else if (imageNode.src.substring(l-17,l) == 
""ftv2mlastnode.png
"")
"; 
  243       PUT "            imageNode.src = 
""ftv2plastnode.png
"";
"; 
  246       PUT "        folder.style.display = 
""none
"";
"; 
  250       PUT "        if (imageNode != null) 
"; 
  252       PUT "          imageNode.nextSibling.src = 
""ftv2folderopen.png
"";
"; 
  253       PUT "          if (imageNode.src.substring(l-13,l) == 
""ftv2pnode.png
"")
"; 
  255       PUT "            imageNode.src = 
""ftv2mnode.png
"";
"; 
  257       PUT "          else if (imageNode.src.substring(l-17,l) == 
""ftv2plastnode.png
"")
"; 
  259       PUT "            imageNode.src = 
""ftv2mlastnode.png
"";
"; 
  262       PUT "        folder.style.display = 
""block
"";
"; 
  270       PUT 
"  <body class=""ftvtree"">";
 
  271       PUT 
"    <div class=""directory"">";
 
  272       PUT 
'      <h3><a class="el" href="overview.html" title="' "&g_nls_reportTree_015 &g_project" '" target="basefrm">' "&g_project" '</a></h3>';
 
  273       PUT 
"      <div style=""display: block;"">";
 
  276    ARRAY lst{5} lst1-lst5;
 
  280       IF lst{i} THEN PUT 
'<img src="ftv2blank.png"        width=16 height=22 />' @;
 
  281       ELSE           PUT 
'<img src="ftv2vertline.png"     width=16 height=22 />' @;
 
  284       IF lst{i} THEN PUT 
'<img src="ftv2lastnode.png"     width=16 height=22 />' @;
 
  285       ELSE           PUT 
'<img src="ftv2node.png"         width=16 height=22 />' @;
 
  286                      PUT 
'<img src="ftv2doc.png"          width=24 height=22 />' @;
 
  290       IF lst{i} THEN PUT 
'<img src="ftv2plastnode.png"    width=16 height=22 ' 
  291                          'onclick="toggleFolder(''folder' folder +(-1) 
''', 
this)
"/>' @; 
  292       ELSE           PUT '<img src="ftv2pnode.png
"        width=16 height=22 ' 
  293                          'onclick="toggleFolder(
''folder
' folder +(-1) ''', 
this)
"/>' @; 
  294                      PUT '<img src="ftv2folderclosed.png
" width=24 height=22 ' 
  295                          'onclick="toggleFolder(
''folder
' folder +(-1) ''', 
this)
"/>' @; 
  297    PUT '<a class="el
" href="' target +(-1) '" title="' popup +(-1) '" target="basefrm
">' label +(-1) '</a></p>'; 
  298    IF NOT term AND lvl<nextlvl THEN PUT '<div id="folder
' folder +(-1) '">'; 
  299    DO i=nextlvl+1 TO lvl; 
  304       PUT '</div></div></body></html>'; 
  309 PROC DATASETS NOLIST NOWARN LIB=work; 
  310    DELETE %scan(&d_tree,1,.) %scan(&d_tree1,1,.) %scan(&d_tree2,1,.) %scan(&d_la,1,.); 
  313 %MEND _sasunit_reportTreeHTML;