2017-08-11 50 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事件,但我無法完全記得我做了什麼。

我會盡力找到我的代碼,並相應地更新答案。

相關問題