23 %MACRO _reportCasHTML (i_repdata = 
 
   30       l_nls_reportcas_errors
 
   37    %LET l_nls_reportcas_errors   = %STR(error(s));
 
   39    data work._case_report;
 
   40       SET &i_repdata. end=eof;
 
   44          scn_abs_path abs_path    $  256 
 
   57          scnIdColumn idColumn $80
 
   58          scnDescriptionColumn descriptionColumn $1000
 
   59          scnProgramColumn programColumn $1000
 
   60          scnLast_runColumn last_runColumn $1000
 
   61          scnDurationColumn durationColumn $1000
 
   64       label idColumn=
"&g_nls_reportCas_011." 
   65          scnIdColumn=
"&g_nls_reportCas_011." 
   66          scnDescriptionColumn=
"&g_nls_reportCas_003." 
   67          descriptionColumn=
"&g_nls_reportCas_012." 
   68          scnProgramColumn=
"&g_nls_reportCas_004." 
   69          programColumn=
"&g_nls_reportCas_013." 
   70          scnLast_runColumn=
"&g_nls_reportCas_022." 
   71          last_runColumn=
"&g_nls_reportCas_014." 
   72          scnDurationColumn=
"&g_nls_reportCas_008." 
   73          durationColumn=
"&g_nls_reportCas_015." 
   74          resultColumn=
"&g_nls_reportCas_016." 
   77       *** initalizing variables that MAY be used in a specific assert   ***;
 
   82       if (first.cas_id) then 
do;
 
   83          *** Columns 
for scenario overview ***;
 
   84          IF scn_errorcount GT 0 THEN DO;
 
   85             errcountmsg = 
'(' !! compress(put(scn_errorcount, 3.)) !! 
' ' !! 
"&l_nls_reportcas_errors." !! 
')';
 
   91          scn_abs_path = resolve (
'%_abspath(&g_root,' !! trim(scn_path) !! 
')');
 
   92          scn_pgm      = resolve (
'%_stdpath(&g_root./saspgm/test,' !! trim(scn_abs_path) !! 
')');
 
   93          scn_duration = put (scn_end - scn_start, ??&g_nls_reportScn_013.) !! 
" s";
 
   94          c_scnid      = put (scn_id, z3.);
 
   97          %_render_idColumn   (i_sourceColumn=scn_id
 
   99                              ,o_targetColumn=ScnIdColumn
 
  101          %_render_dataColumn (i_sourceColumn=scn_desc
 
  102                              ,o_targetColumn=scnDescriptionColumn
 
  104          %_render_dataColumn (i_sourceColumn=scn_duration
 
  105                              ,o_targetColumn=scnDurationColumn
 
  108          *** Any destination that renders links shares 
this if ***;
 
  109          %
if (&o_html.) %then %
do;
 
  110             LinkTitle1   = 
"&g_nls_reportScn_010" !! byte(13) !! scn_abs_path;
 
  111             LinkTitle2   = 
"&g_nls_reportScn_011";
 
  112             *** HTML-links are destinations specific ***;
 
  113             %
if (&o_html.) %then %
do;
 
  114                LinkColumn1  = 
"file:///" !! scn_abs_path;
 
  115                LinkColumn2  = c_scnid !! 
"_log.html";
 
  117             %_render_dataColumn (i_sourceColumn=scn_path
 
  118                                 ,i_linkColumn=LinkColumn1
 
  119                                 ,i_linkTitle=LinkTitle1
 
  120                                 ,o_targetColumn=scnProgramColumn
 
  122             scnLast_runColumn = catt (
'^{style [flyover="',LinkTitle2,
'" url="',LinkColumn2,
'"]', put (scn_start, ??&g_nls_reportScn_012.),
'}' 
  123                                      ,
"^{style logerrcountmsg ", errcountmsg, 
'}');
 
  126          *** Columns 
for test cases ***;
 
  127          if (cas_pgm=
"^_") then cas_pgm=
"";
 
  128          IF cas_auton = . THEN DO;
 
  129             abs_path = resolve (
'%_abspath(&g_root,' !! trim(cas_pgm) !! 
')');   
 
  132             abs_path = resolve (
'%_abspath(&g_sasautos' !! put (cas_auton,1.) !! 
',' !! trim(cas_pgm) !! 
')');
 
  135          duration = put (cas_end - cas_start, ??&g_nls_reportScn_013.) !! 
" s";
 
  136          c_casid  = put (cas_id, z3.);
 
  138          %_render_idColumn   (i_sourceColumn=cas_id
 
  140                              ,o_targetColumn=idColumn
 
  142          %_render_dataColumn (i_sourceColumn=duration
 
  143                              ,o_targetColumn=durationColumn
 
  145          %_render_iconColumn (i_sourceColumn=cas_res
 
  147                              ,o_targetColumn=resultColumn
 
  149          *** Any destination that renders links shares 
this if ***;
 
  150          %
if (&o_html.) %then %
do;
 
  151             LinkTitle3  = 
"&g_nls_reportCas_017 " !! c_casid;
 
  152             LinkTitle4  = 
"&g_nls_reportCas_018" !! byte(13) !! abs_path;
 
  153             LinkTitle5  = 
"&g_nls_reportCas_006";
 
  154             *** HTML-links are destinations specific ***;
 
  155             %
if (&o_html.) %then %
do;
 
  156                LinkColumn3 = 
"cas_" !! c_scnid !! 
"_" !! c_casid !! 
".html";
 
  157                LinkColumn4 = 
"file:///" !! abs_path;
 
  158                LinkColumn5 = c_scnid !! 
"_" !! c_casid !! 
"_log.html";
 
  161             %_render_dataColumn (i_sourceColumn=cas_desc
 
  162                                 ,i_linkColumn=LinkColumn3
 
  163                                 ,i_linkTitle=LinkTitle3
 
  164                                 ,o_targetColumn=descriptionColumn
 
  166             %_render_dataColumn (i_sourceColumn=cas_pgm
 
  167                                 ,i_linkColumn=LinkColumn4
 
  168                                 ,i_linkTitle=LinkTitle4
 
  169                                 ,o_targetColumn=programColumn
 
  171             %_render_dataColumn (i_sourceColumn=cas_start
 
  172                                 ,i_format=&g_nls_reportCas_007.
 
  173                                 ,i_linkColumn=LinkColumn5
 
  174                                 ,i_linkTitle=LinkTitle5
 
  175                                 ,o_targetColumn=last_runColumn
 
  183       select max (scn_id) into :l_anzScenarios from work._case_report;
 
  188    %let l_title=%str(&g_nls_reportCas_001 | &g_project - &g_nls_reportCas_002);
 
  189    title j=c "&l_title.";
 
  191    %if (&o_html.) %then %do;
 
  192       ods html4 file="&o_path./&o_file..html" 
 
  194                     headtext='<link href="tabs.css" rel="stylesheet" type="text/css"/><link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />'
 
  195                     metatext="http-equiv=""Content-Style-Type"" content=""text/css"" /><meta http-equiv=""Content-Language"" content=""&i_language."" /"
 
  196                     style=styles.SASUnit stylesheet=(URL="SAS_SASUnit.css");
 
  197       %_reportPageTopHTML(i_title   = &l_title.
 
  201    %do l_scnid=1 %to &l_anzScenarios.;
 
  202       data work._current_scn;
 
  203          set work._case_report (where=(scn_id=&l_scnid.));
 
  206       data work._current_scn_overview;
 
  207          set work._current_scn (where=(cas_id=1));
 
  208          length Name $20 Value $1000;
 
  209          Name="&g_nls_reportCas_011."; Value=c_scnid;output;
 
  210          Name="&g_nls_reportCas_003."; Value=scnDescriptionColumn;output;
 
  211          Name="&g_nls_reportCas_004."; Value=scnProgramColumn;output;
 
  212          Name="&g_nls_reportCas_022."; Value=scnLast_runColumn;output;
 
  213          Name="&g_nls_reportCas_008."; Value=scnDurationColumn;output;
 
  216       *** Create specific HTML-Anchors ***;
 
  217       %if (&o_html.) %then %do;
 
  218          ods html4 anchor="SCN%sysfunc(putn(&l_scnid.,z3.))_";
 
  220       proc print data=work._current_scn_overview noobs label 
 
  221             style(report)=blindTable [borderwidth=0]
 
  222             style(column)=blindData
 
  223             style(header)=blindHeader;
 
  226       *** Supress title between testcases ***;
 
  227       %if (&l_scnid. = 1) %then %do;
 
  231       *** Show footnote only once ***;
 
  232       %if (&l_scnid. = &l_anzScenarios.) %then %do;
 
  233          %_reportFooter(o_html=&o_html.);
 
  236       proc report data=work._current_scn nowd missing
 
  237             style(lines)=blindData
 
  240          columns idColumn descriptionColumn programColumn last_runColumn durationColumn resultColumn;
 
  242          define idColumn         / display style(Column)=rowheader;
 
  243              define durationColumn  / display style(Column)=[just=right];
 
  244          define resultColumn     / display style(Column)=[background=white];
 
  246          compute before _page_;
 
  247             line @1 "&g_nls_reportCas_010."; 
 
  251       *** Render separation line between scenarios ***;
 
  252       %if (&o_html. AND &l_scnid. ne &l_anzScenarios.) %then %do;
 
  253          ods html4 text="^{RAW <hr size=
""1
"">}
"; 
  256       proc delete data=work._current_scn_overview; 
  258       proc delete data=work._current_scn; 
  262    %if (&o_html.) %then %do; 
  266    proc delete data=work._case_report; 
  269    %*** Reset title and footnotes ***; 
  274 %MEND _reportCasHTML;