Сгруппировать данные на основе кода сервиса и отобразить данные с помощью Jquery Datatable - PullRequest
1 голос
/ 14 марта 2019

То, что я хочу, я хочу сгруппировать по данным, основанным на Service code из данных. Я хочу сгруппировать по выбранному значению из datatable.

Вот мой скриншот с датой

Datatable

На картинке выше я установил четыре флажка. Поэтому я хочу groupBy эти 4 столбца данных на основе Service Code.

Предположим, что код службы для первых двух проверенных строк - 3297392, а для двух других проверенных - 3293490 Так что он должен отображать мои данные, как показано ниже

Display Data

При группировании также добавляются столбец SAP ID и СЧЕТ АКТИВОВ.

Я не могу получить точную логику для этого, но кое-что, что я попробовал, похоже на ниже

function ViewGroupBySummaryData() {

var tableToViewSummary = $('#confirmToFECertify');
tableToViewSummary.empty();

var table = $(dtCertifyEFO).DataTable();
var data = table.rows('.selected').data();   
}

В data я получаю значения выбранной строки, но без столбцов.

Данные как в консоли ниже

0:(14)[<br> "", "<a class=" actionIcon" id="discripancy"><i class="fa fa-flag"></i></a>", "I-AP-APRR-ENB-B002", "INAPAPRRIDETTW6001", "GANESH NAGAR_AT2001", "", "3297392", "MAINTENANCE OF IP COLO ENODEB SITE / IP Colo", "ACTIVE", "12/11/2014", "", "Mahindra &amp; Mahindra Limited - 168888", "", "" ]1:(14)[<br> "", "<a class=" actionIcon" id="discripancy"><i class="fa fa-flag"></i></a>", "I-AP-APRR-ENB-G001", "INAPAPRRYRNLNB6001", "VENUGOPAL NAGAR", "", "3297392", "MAINTENANCE OF IP COLO ENODEB SITE / IP Colo", "ACTIVE", "12/11/2014", "", "Mahindra &amp; Mahindra Limited - 168888", "", "" ]2:(14)[<br> "", "<a class=" actionIcon" id="discripancy"><i class="fa fa-flag"></i></a>", "I-AP-BRYS-ENB-6000", "INAPBRYSBRYSTW6001", "Bukkarayasamudram", "", "3293490", "MAINTENANCE OF RCOM COLO ENODEB SITE / R-Colo", "ACTIVE", "12/11/2014", "", "Mahindra &amp; Mahindra Limited - 168888", "", "" ]3:(14)[<br> "", "<a class=" actionIcon" id="discripancy"><i class="fa fa-flag"></i></a>", "I-AP-BRYS-ENB-6001", "INAPBRYSXXXXTW6003", "CHENNAMPALLE", "", "3293490", "MAINTENANCE OF RCOM COLO ENODEB SITE / R-Colo", "ACTIVE", "12/11/2014", "", "Mahindra &amp; Mahindra Limited - 168888", "", "" ]

Пожалуйста, помогите мне построить логику, используя jquery datatable.

Ниже мой HTML

<table id="confirmToFECertify" class="myTable table table-striped table-bordered nowrap" cellspacing="0"></table>

1 Ответ

1 голос
/ 14 марта 2019

Вот подход:

Показать новый объект данных и заполнить его строки кодом и суммой выбранных элементов.Код не тестировался, так как фрагмент на самом деле не имитирует событие click.r[5] (соответственно r[6]) соответствует строке SAP ID и assets count.Я не могу видеть значения этих полей в предоставленной вами информации console.log.Вы можете изменить 5 и 6, чтобы соответствовать положению поля таблицы.

function ViewGroupBySummaryData() {

    var tableToViewSummary = $('#confirmToFECertify');
    tableToViewSummary.empty();

    console.log($(dtCertifyEFO));

    var table = $(dtCertifyEFO).DataTable();
    var data = table.rows('.selected').data().toArray();

    var newData = {};
    data.forEach(r => {
        var code = newData[r[6]]
        if (code) {
            // if the code is already present sum the value of each row
            newData[code] = [newData[code][0] + parsefloat(r[5]), newData[code][1] + parsefloat(r[7])]
        } else {
            // add new row corresponding to the code
            newData[code] = [parsefloat(r[5]), parsefloat(r[7])]
        }
    })
    // create new DataTable
    var t = $('#example').DataTable();

    // add rows to the new datatable
    Object.keys(newData).forEach(function(k) {
        var values = [];
        values.push(k);
        for ( var i = 0; i < newData(k).length; i++) {
          values.push(i)
        }
        t.row.add(values)
    })

    // display the new datatable

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...