質問編集履歴

1

ご指摘されたこちらで試したコードを更新しました。

2018/11/08 00:41

投稿

susumu_0414
susumu_0414

スコア37

test CHANGED
File without changes
test CHANGED
@@ -13,3 +13,237 @@
13
13
  初心者ですので具体的なソースコードを載せてもらえると助かります。
14
14
 
15
15
  よろしくお願いします。
16
+
17
+
18
+
19
+
20
+
21
+ ご指摘がありましたので、こちらで試したサンプルソースを載せてみます。
22
+
23
+ 下記のコードでは一度HTMLファイルにsmartyの配列をもとに
24
+
25
+ テーブル(表)を作成し、その表をjavascriptでもう一度読み込んで配列を作成し、
26
+
27
+ chart.jsのデータに設定しています。
28
+
29
+ しかし、コードが非常に長くなることと表からもう一度読み込むという部分が
30
+
31
+ 回りくどく感じるため、直接配列をchart.jsのデータに設定したいのです。
32
+
33
+
34
+
35
+ ```JavaScript
36
+
37
+ window.onload = function() {
38
+
39
+ //項目用の配列を定義
40
+
41
+ var array01 = []; //売上年
42
+
43
+ var array02 = []; //売上数量
44
+
45
+ var array03 = []; //売上合計
46
+
47
+ var array04 = []; //粗利合計
48
+
49
+ var array05 = []; //粗利率
50
+
51
+ //テーブルから値取得(売上年)
52
+
53
+ $('#tbl_result td.s_year').each(function(){
54
+
55
+ var amount01 = $(this).find('span').text();
56
+
57
+ array01.push(amount01);
58
+
59
+ });
60
+
61
+ //テーブルから値取得(売上数量)
62
+
63
+ $('#tbl_result td.sum_suryo').each(function(){
64
+
65
+ var amount02 = $(this).find('span').text();
66
+
67
+ array02.push(amount02);
68
+
69
+ });
70
+
71
+ //テーブルから値取得(売上合計)
72
+
73
+ $('#tbl_result td.sum_kingaku').each(function(){
74
+
75
+ var amount03 = $(this).find('span').text();
76
+
77
+ array03.push(amount03);
78
+
79
+ });
80
+
81
+ //テーブルから値取得(粗利合計)
82
+
83
+ $('#tbl_result td.sum_arari').each(function(){
84
+
85
+ var amount04 = $(this).find('span').text();
86
+
87
+ array04.push(amount04);
88
+
89
+ });
90
+
91
+ //テーブルから値取得(粗利率)
92
+
93
+ $('#tbl_result td.araritu').each(function(){
94
+
95
+ var amount05 = $(this).find('span').text();
96
+
97
+ array05.push(amount05);
98
+
99
+ });
100
+
101
+
102
+
103
+ var complexChartOption = {
104
+
105
+ responsive: false,
106
+
107
+ scales: {
108
+
109
+ yAxes: [
110
+
111
+ {
112
+
113
+ id: "y-axis-1", // Y軸のID
114
+
115
+ type: "linear", // linear固定
116
+
117
+ position: "left", // どちら側に表示される軸か?
118
+
119
+ scaleLabel : {
120
+
121
+ display: true,
122
+
123
+ labelString: '売上金額(円)',
124
+
125
+ },
126
+
127
+ gridLines:{
128
+
129
+ display : true,
130
+
131
+ },
132
+
133
+ ticks: {
134
+
135
+ callback: function(label, index, labels) {
136
+
137
+ return label.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') +' 円';
138
+
139
+ },
140
+
141
+ },
142
+
143
+ },
144
+
145
+ {
146
+
147
+ id: "y-axis-2",
148
+
149
+ type: "linear",
150
+
151
+ position: "right",
152
+
153
+ scaleLabel : {
154
+
155
+ display: true,
156
+
157
+ labelString: '粗利率(%)',
158
+
159
+ fontColor :"#e61f4b",
160
+
161
+ },
162
+
163
+ gridLines:{
164
+
165
+ display : false,
166
+
167
+ },
168
+
169
+ ticks: {
170
+
171
+ callback: function(label, index, labels) {
172
+
173
+ return label +' %';
174
+
175
+ },
176
+
177
+ },
178
+
179
+ },
180
+
181
+ ],
182
+
183
+ }
184
+
185
+ };
186
+
187
+
188
+
189
+ var ctx = document.getElementById('graph').getContext('2d');
190
+
191
+
192
+
193
+ var myChart = new Chart(ctx, {
194
+
195
+ type: 'bar',
196
+
197
+ data: {
198
+
199
+ labels: array01,
200
+
201
+ datasets: [
202
+
203
+ {
204
+
205
+ label: '売上合計金額',
206
+
207
+ data: array03,
208
+
209
+ backgroundColor: "rgba(153,255,51,0.4)",
210
+
211
+ yAxisID: "y-axis-1",
212
+
213
+ },
214
+
215
+ {
216
+
217
+ type: 'line',
218
+
219
+ label: '粗利率',
220
+
221
+ data: array05,
222
+
223
+ backgroundColor: "rgba(255, 0, 0, 0.51)",
224
+
225
+ borderColor : "#ff0000",
226
+
227
+ borderWidth : "1",
228
+
229
+ pointBackgroundColor : "#ff0000",
230
+
231
+ yAxisID: "y-axis-2",
232
+
233
+ lineTension: 0,
234
+
235
+ fill: false,
236
+
237
+ },
238
+
239
+ ]
240
+
241
+ },
242
+
243
+ options: complexChartOption,
244
+
245
+ });
246
+
247
+ };
248
+
249
+ ```