Можно ли добавить класс в строку таблицы ‹tr› в отчете SAS Proc Report с помощью оператора вычисления?

У меня есть HTML-таблица ODS, созданная с помощью Proc Report, где мне нужно добавить атрибут класса HTML к строке таблицы <tr>, а не к каждой отдельной ячейке <td> в этой строке. Причина в том, что это требуется в параметре stickyRow в подключаемом модуле jQuery TableSorter, чтобы он не мог быть отсортирован, как остальная часть таблицы.

Строка (строка общей суммы) создается в операторе вычисления.

Следующий оператор устанавливает класс как «статический» для каждой <td> ячейки в строке, но не для <tr>, которая требуется в опции.

ОТЧЕТ О ПРОЦЕССЕ

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;

person Kim B.    schedule 11.08.2017    source источник
comment
Можете ли вы привести воспроизводимый пример? Я пытаюсь точно воспроизвести то, что вы делаете, и мне не сразу понятно, что вы делаете в этом выражении вычисления. Используйте SASHELP.CARS или CLASS или что-то еще и сделайте что-нибудь фиктивное.   -  person Joe    schedule 11.08.2017
comment
@Joe Я добавил пример. Чтобы пример работал должным образом, я должен отредактировать первую строку ‹tr› таблицы на ‹tr class='static'› в HTML-файле. Затем первая строка таблицы обрабатывается как статическая строка сортировщиком таблиц jQuery.   -  person Kim B.    schedule 14.08.2017
comment
Интересно, могли бы вы использовать CSS и установить правило, говорящее, что любой «tr», который является родительским для ячейки с классом, каким бы ни был ваш «td», является статическим?   -  person Joe    schedule 17.08.2017


Ответы (1)


Я сделал что-то подобное при интеграции таблиц данных jQuery с PROC REPORT.

По памяти вам нужно отредактировать наборы тегов htmlcss и/или phtml, изменив события table_foot и row, но я не могу точно вспомнить, что я сделал.

Я постараюсь найти свой код и соответствующим образом обновить ответ.

person Chris J    schedule 11.08.2017