У меня есть таблица, которая вычисляет сумму всех строк в нижнем колонтитуле. У меня вопрос, могу ли я опустить определенные строки на основе критериев.
Например, у меня есть статистика сезона для бейсболиста с общей суммой его карьеры, рассчитанной в нижнем колонтитуле.
Этот конкретный игрок играл за две разные команды в сезоне 2018 года. На это указывает TOTAL
в поле лиги LEAGUE
, в котором я добавил его объединенную статистику для каждой команды в этом сезоне.
Итак, глядя на стол, вот что вы должны заметить:
У него было 1 HITS
на сезон 2017 года для STL
У него было 15 HITS
для сезона 2018 года (5 для LAD
и 10 для BAL
)
Учитывая это, вы должны видеть, что его общее количество в карьере не было правильно подсчитано. У него должно быть 16 карьер, а не 31.
Таким образом, чтобы уточнить это, я хотел бы опустить все строки, которые имеют TOTAL
в столбце LEAGUE
от подсчета в сумме нижнего колонтитула. Как бы я это сделал? Любая помощь здесь будет принята с благодарностью. Благодаря.
YEAR Name AGE TEAM LEAGUE HITS
2017 John Smith 25 STL NL 1
2018 John Smith 26 TOTAL 15
2018 John Smith 26 LAD NL 5
2018 John Smith 26 BAL AL 10
Career Total 31
Вот мой код
<div align="center">
<table id = 'battingtbl' class="display compact nowrap">
<thead>
<tr>
<th>YEAR</th>
<th>NAME</th>
<th>AGE</th>
<th>TEAM</th>
<th>LEAGUE</th>
<th>HITS</th>
</tr>
</thead>
<tbody>
{% for stat in playerdata.bbhittingstatsmstr_set.all %}
<tr>
<td>{{ stat.year }}</td>
<td>{{ stat.name }}</td>
<td>{{ stat.age }}</td>
<td>{{ stat.team }}</td>
<td>{{ stat.league }}</td>
<td>{{ stat.hits }}</td>
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</tfoot>
</table>
<script>
$(document).ready(function () {
$('#battingtbl').DataTable({
"searching": true,
"pageLength": 40,
"scrollX": true,
"paging": false,
"info": false,
drawCallback: () => {
const table = $('#battingtbl').DataTable();
const tableData = table.rows({
search: 'applied'
}).data().toArray();
const totals = tableData.reduce((total, rowData) => {
total[0] += parseFloat(rowData[5]); <!--HITS -->
return total;
}, [0,0,0,0,0,0]);
$(table.column(5).footer()).text(totals[0]); <!--HITS -->
}
})
});
</script>