Перемещение списка - PullRequest
0 голосов
/ 03 мая 2018

То, что я пытаюсь сделать, это транспонирование списка, который у меня есть. Точнее из списка в таблицу.

problem description

В то время как я получаю значение, которое сохраняется в массиве {13} (этот массив инициализируется с 0. Один в месяц, первый 0 не используется)

month           =  rsSol.getInt("month");      // To save number of month
mon_amounth     =  rsSol.getDouble("amounth"); // Save amount in a value
values[month]   =  mon_amounth;                // Save amount in the array
monthTotal     +=  giro_montoMes;              // Sum of each mon_amounth

Тогда это часть моего кода, где я застрял.

Я немного запутался с тем, какое условие мне нужно добавить в описание группы и вывести все суммы в одной строке.

while ( rsSol.next() ) {
    //where i (re)write description
    if ( desc.equals(empty_string) ){
        desc        =  rsSol.getString("description");
    }

    if ( !desc.equals(rsSol.getString("giro")) && count > 1 ){
        desc        = rsSol.getString("giro");
    } 

    // Where i print the description
    <tr class>
        <td border='0' ALIGN='left'>    desc.toLowerCase()  </td>

        // Where i print the array
        for(int i=1; i<=12; i++){
            <td border='0' ALIGN='right'>   values[i])  </td>
        }

        // Where i print the sum of all months
        <td border='0' ALIGN='right'>   monthTotal  </td>
    </tr>

    // Setting values to 0 and cleaning the array
    mon_amounth =   0;

    for ( int i=1 ; i<=12 ; i++ ) {
        values[i] = 0;
    }
}

Любая помощь будет действительно полезна. Заранее спасибо.

1 Ответ

0 голосов
/ 03 мая 2018

Вам нужно перебрать свой набор результатов, а затем распечатать итоговые суммы. Я предполагаю, что у вас есть разные описания, которые должны быть рассчитаны в общей сложности. Вы можете использовать HashMap, который не допускает дублирования ключей в качестве описания, а значения - в качестве общей суммы.

// collect sums
    Map<String, Integer[]> totals = new HashMap<>();
    while ( rsSol.next() ) {
        if ( desc.equals("") ){
            desc =  rsSol.getString("description");
        }
        if ( !desc.equals(rsSol.getString("giro")) && count > 1 ){
            desc = rsSol.getString("giro");
        }
        totals.putIfAbsent(desc, new Integer[12]);
        Integer[] totalSums = totals.get(desc);
        for(int i = 0; i < 12; i++){
            totalSums += values[i];
        }
    }

// print your results
    for (String desc : totals.keySet()) {
       <tr class>
            <td border='0' ALIGN='left'>    desc.toLowerCase()  </td>

                // Where i print the array
                for(int i=1; i<=12; i++){
                <td border='0' ALIGN='right'>   totals.get(desc)  </td>
                }

                // Where i print the sum of all months
            <td border='0' ALIGN='right'>   monthTotal  </td>
        </tr> 
    }
...