2017-08-11 49 views
1

我有一个使用Proc Report制作的ODS HTML表格,我需要将HTML类属性添加到表格行<tr>,而不是每个单独的<td>单元格。原因是这是TableSorter jQuery插件中的stickyRow选项所必需的,以防止它不能作为表的其余部分排序。是否可以使用计算语句向SAS Proc Report中的<tr>表格行添加类?

行(总和行)在计算语句中创建。

以下语句将行中的每个<td>单元格设置为“静态”,但不会在该选项中需要的<tr>中进行设置。

PROC REPORT

compute BEFORE; 
&variabel. = 'Totalt'; 
call define (_ROW_,"style","style={flyover='Totalt' FONT_WEIGHT=bold 
background=lightgrey class='static'}"); 
ENDCOMP; 

的HTML解析到此:

<tr> 
<td title="Totalt" class="l static" style=" background-color: #d3d3d3; font-weight: bold;”>T</a></td> 
<td title="Totalt" class="r static" style=" background-color: #d3d3d3; font-weight: bold;"> 44,737,223</td> 
<td title="Totalt" class="r static" style=" background-color: #d3d3d3; font-weight: bold;"> 43,321,900</td> 

有没有一种方法来设置类为 '静态' 整个<tr> - 行,和不是每个细胞?

以下是我需要的是这样的:

<tr class="static"> 
<td title="Totalt" class="l" style=" background-color: #d3d3d3; font-weight: bold;”>T</a></td> 
<td title="Totalt" class="r" style=" background-color: #d3d3d3; font-weight: bold;"> 44,737,223</td> 
<td title="Totalt" class="r" style=" background-color: #d3d3d3; font-weight: bold;"> 43,321,900</td> 

更新:这是一个可重复的例子:

ODS HTML FILE='H:\Temp\demo.html'; 
ODS HTML TEXT=" 
<script src='https://code.jquery.com/jquery-3.2.1.min.js'></script> 
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.28.15/js/jquery.tablesorter.min.js'></script> 
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.28.15/js/jquery.tablesorter.widgets.js'></script> 
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.28.15/js/widgets/widget-staticRow.min.js'></script>"; 

ODS HTML TEXT=" 
<script>  
$(function(){ 
$(document).ready(function() { 
$('.table').tablesorter({theme: 'blue', widgets: ['stickyHeaders','zebra','staticRow']}); 
}); 
}); 
</script>"; 

PROC REPORT DATA=SASHELP.CLASS; 
COLUMN SEX AGE N WEIGHT; 
DEFINE sex /DISPLAY; 
DEFINE age /DISPLAY; 
DEFINE weight/ANALYSIS; 
RBREAK BEFORE/SUMMARIZE; 
COMPUTE before; 
CALL DEFINE (_ROW_,"style","style={flyover='Total number and weight' FONT_WEIGHT=bold background=lightgrey class='static'}"); 
ENDCOMP; 
RUN; 

ODS HTML CLOSE; 
+1

你能给一个可重复的例子吗?我试图重现你正在做的事情,它并不是立即显示出你在计算语句中做什么。使用'SASHELP.CARS'或'CLASS'或其他什么东西来制作一些东西。 – Joe

+0

@Joe我已经添加了一个例子。为了让示例按预期工作,我必须将表格的第一行编辑为HTML文件中的。表的第一行然后被jQuery tablesorter视为一个静态行。 –

+0

我不知道你是否可以使用CSS,并设置一个规则,说任何'tr'是父类的一个单元格,不管你的'td'最终是静态的吗? – Joe

回答

0

我做过类似的东西整合jQuery的数据表与当PROC报告。

从内存中,您需要编辑htmlcss和/或phtml标记集,修改table_foot和row事件,但我无法完全记得我做了什么。

我会尽力找到我的代码,并相应地更新答案。

相关问题