宜しくお願いします。
現在webからHTMLのフォームに入力されたデータをDB替わりのスプレッドシートに溜めていき、分析したい場合はHTML上で年度を選択してボタンを押すとDBから条件をもとにデータが集計され表示されるというプログラムを組んでいます。
そこで質問なのですが、現在はDBのデータをすべて取得して、その中から年度と月と選択区分を条件でフィルタリングし、配列のlengthで件数を取得するやり方をとっているのですが、無駄にソースが長くなっていってわかりづらいので、なにかほかに年度を指定した際の配列の要素数を取得するシンプルな方法があればご教授頂きたいのです。
gas
1//2次格納用配列 2 var ary_list = []; 3 4 /*相談件数データ************************************************************************************************************************************************************************************************/ 5 var inv04 = mst.filter(function(e){return e[44] === e_year && e[45] === "04" && e[10] === "相談"}); 6 var inv05 = mst.filter(function(e){return e[44] === e_year && e[45] === "05" && e[10] === "相談"}); 7 var inv06 = mst.filter(function(e){return e[44] === e_year && e[45] === "06" && e[10] === "相談"}); 8 var inv07 = mst.filter(function(e){return e[44] === e_year && e[45] === "07" && e[10] === "相談"}); 9 var inv08 = mst.filter(function(e){return e[44] === e_year && e[45] === "08" && e[10] === "相談"}); 10 var inv09 = mst.filter(function(e){return e[44] === e_year && e[45] === "09" && e[10] === "相談"}); 11 var inv10 = mst.filter(function(e){return e[44] === e_year && e[45] === "10" && e[10] === "相談"}); 12 var inv11 = mst.filter(function(e){return e[44] === e_year && e[45] === "11" && e[10] === "相談"}); 13 var inv12 = mst.filter(function(e){return e[44] === e_year && e[45] === "12" && e[10] === "相談"}); 14 //年度繰り越し 15 var inv01 = mst.filter(function(e){return e[44] === strYear && e[45] === "01" && e[10] === "相談"}); 16 var inv02 = mst.filter(function(e){return e[44] === strYear && e[45] === "02" && e[10] === "相談"}); 17 var inv03 = mst.filter(function(e){return e[44] === strYear && e[45] === "03" && e[10] === "相談"}); 18 19 //件数 20 var sou04 = inv04.length; 21 var sou05 = inv05.length; 22 var sou06 = inv06.length; 23 var sou07 = inv07.length; 24 var sou08 = inv08.length; 25 var sou09 = inv09.length; 26 var sou10 = inv10.length; 27 var sou11 = inv11.length; 28 var sou12 = inv12.length; 29 var sou01 = inv01.length; 30 var sou02 = inv02.length; 31 var sou03 = inv03.length; 32 //年度合計数 33 var sou_sum = sou04+sou05+sou06+sou07+sou08+sou09+sou10+sou11+sou12+sou01+sou02+sou03; 34 //年度平均 35 var sou_ave = sou_sum/12; 36 var sou_fix = sou_ave.toFixed(1); 37 //1次配列格納用 38 var ary_sou = []; 39 //格納 40 ary_sou.push(sou04); 41 ary_sou.push(sou05); 42 ary_sou.push(sou06); 43 ary_sou.push(sou07); 44 ary_sou.push(sou08); 45 ary_sou.push(sou09); 46 ary_sou.push(sou10); 47 ary_sou.push(sou11); 48 ary_sou.push(sou12); 49 ary_sou.push(sou01); 50 ary_sou.push(sou02); 51 ary_sou.push(sou03); 52 ary_sou.push(sou_sum); 53 ary_sou.push(sou_fix);
js
1//ラベルを入れる 2 var html = "<table class='table table-bordered' id='table3'>" 3 4 html += "<thead>" 5 html += "<tr>" 6 html += "<th scope='col'> </th>" 7 html += "<th scope='col'>4月</th>" 8 html += "<th scope='col'>5月</th>" 9 html += "<th scope='col'>6月</th>" 10 html += "<th scope='col'>7月</th>" 11 html += "<th scope='col'>8月</th>" 12 html += "<th scope='col'>9月</th>" 13 html += "<th scope='col'>10月</th>" 14 html += "<th scope='col'>11月</th>" 15 html += "<th scope='col'>12月</th>" 16 html += "<th scope='col'>1月</th>" 17 html += "<th scope='col'>2月</th>" 18 html += "<th scope='col'>3月</th>" 19 html += "<th scope='col' class='border_b'>年度合計</th>" 20 html += "<th scope='col' >年度平均</th>" 21 html += "</tr>" 22 html += "</thead>" 23 24 html += "<tbody>" 25 26 html += "<tr>" 27 html += "<td>相談件数</td>" 28 //4月 29 html += "<td align='right'>" + json[0][0] + "</td>" 30 //5月 31 html += "<td align='right'>" + json[0][1] + "</td>" 32 //6月 33 html += "<td align='right'>" + json[0][2] + "</td>" 34 //7月 35 html += "<td align='right'>" + json[0][3] + "</td>" 36 //8月 37 html += "<td align='right'>" + json[0][4] + "</td>" 38 //9月 39 html += "<td align='right'>" + json[0][5] + "</td>" 40 //10月 41 html += "<td align='right'>" + json[0][6] + "</td>" 42 //11月 43 html += "<td align='right'>" + json[0][7] + "</td>" 44 //12月 45 html += "<td align='right'>" + json[0][8] + "</td>" 46 //1月 47 html += "<td align='right'>" + json[0][9] + "</td>" 48 //2月 49 html += "<td align='right'>" + json[0][10] + "</td>" 50 //3月 51 html += "<td align='right'>" + json[0][11] + "</td>" 52 //年度合計 53 html += "<td align='right' class='border_c'>" + json[0][12] + "</td>" 54 //年度平均 55 html += "<td align='right'>" + json[0][13] + "</td>" 56 html += "</tr>" 57
上記のような組み方だと1項目集計するだけでこんな書き方になっちゃいます。
HTML上で帳票みたいな集計表示をしていくとなるとやむなしなのかなと思っていたのですがちょっとでも簡略化できればと思いましてご質問させて頂きました。
よろしければアドバイス頂けますと幸いです。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/13 05:37
2021/05/13 05:53