質問編集履歴
12
調整
test
CHANGED
File without changes
|
test
CHANGED
@@ -162,7 +162,7 @@
|
|
162
162
|
|
163
163
|
{
|
164
164
|
|
165
|
-
generator.acodes.Add(new AOutputCode(item));
|
165
|
+
generator.abccodes.Add(new AbcOutputCode(item));
|
166
166
|
|
167
167
|
}//チェックボックス以外にpostdataの内容です
|
168
168
|
|
11
誤字を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -176,7 +176,7 @@
|
|
176
176
|
|
177
177
|
//帳票を出力しレスポンスとして返す
|
178
178
|
|
179
|
-
return r
|
179
|
+
return generator.Response(); //生成したEXCELをWebのレスポンスとして返す
|
180
180
|
|
181
181
|
}
|
182
182
|
|
@@ -256,7 +256,7 @@
|
|
256
256
|
|
257
257
|
//帳票出力
|
258
258
|
|
259
|
-
public ov
|
259
|
+
public override void Generate()
|
260
260
|
|
261
261
|
{
|
262
262
|
|
10
CSSを削除し、コードを微調整
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
~
|
34
34
|
|
35
|
-
<div
|
35
|
+
<div>
|
36
36
|
|
37
37
|
<select id="select_ABC" name="select_ABC" size="5" multiple="multiple"></select>
|
38
38
|
|
@@ -242,9 +242,11 @@
|
|
242
242
|
|
243
243
|
///</summary>
|
244
244
|
|
245
|
+
public Report(DefultContext dbcontext)
|
246
|
+
|
245
|
-
|
247
|
+
///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
|
246
|
-
|
248
|
+
|
247
|
-
: base(dbcontext)
|
249
|
+
: base(dbcontext)
|
248
250
|
|
249
251
|
{
|
250
252
|
|
9
一部文章がおかしかったため修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
チェックボックスの値を取得し、trueフラグによってExcel帳票に出力する判定を行う処理を作成しています。
|
6
6
|
|
7
|
-
ところが、cshtml(view)からチェックボックスの判定を取得しよとしたところ、index(Model)取得できてますが、出力用のプログラムで必ずfalseになってしまいます。
|
7
|
+
ところが、cshtml(view)からチェックボックスの判定を取得しよとしたところ、index(Model)では取得できてますが、出力用のプログラム(Generator)で必ずfalseになってしまいます。
|
8
8
|
|
9
9
|
おそらくプロパティの取得の仕方に問題があるのではないかと思うのですが、いろんな方法を試してみましたが、勉強不足のためかうまくいきませんでした。
|
10
10
|
|
8
不足を追加2
test
CHANGED
File without changes
|
test
CHANGED
@@ -268,6 +268,14 @@
|
|
268
268
|
|
269
269
|
excelHelper.BeginDataLine();
|
270
270
|
|
271
|
+
foreach(var item in id.abc) //選択されたABCのデータ行
|
272
|
+
|
273
|
+
{
|
274
|
+
|
275
|
+
excelHelper.Output(item.PrintData());
|
276
|
+
|
277
|
+
}
|
278
|
+
|
271
279
|
if(checkbox)
|
272
280
|
|
273
281
|
{
|
@@ -286,6 +294,14 @@
|
|
286
294
|
|
287
295
|
excellHelper.HeaderOut("ID")
|
288
296
|
|
297
|
+
foreach (var item in abc)
|
298
|
+
|
299
|
+
{
|
300
|
+
|
301
|
+
OutputHeader(excelHelper, item, "ABC");
|
302
|
+
|
303
|
+
}
|
304
|
+
|
289
305
|
If(checkbox)
|
290
306
|
|
291
307
|
{
|
@@ -300,6 +316,8 @@
|
|
300
316
|
|
301
317
|
}
|
302
318
|
|
319
|
+
|
320
|
+
|
303
321
|
```
|
304
322
|
|
305
323
|
|
7
select_ABCについてフォームとアウトプットの作成
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,16 +32,44 @@
|
|
32
32
|
|
33
33
|
~
|
34
34
|
|
35
|
+
<div class="col-md-8">
|
36
|
+
|
37
|
+
<select id="select_ABC" name="select_ABC" size="5" multiple="multiple"></select>
|
38
|
+
|
39
|
+
</div>
|
40
|
+
|
41
|
+
|
42
|
+
|
35
43
|
<div>
|
36
44
|
|
37
45
|
@Html.EditorFor(model => model.checkbox)
|
38
46
|
|
39
|
-
|
47
|
+
@Html.LabelFor(model => model.checkbox)
|
40
48
|
|
41
49
|
</div>
|
42
50
|
|
43
51
|
~
|
44
52
|
|
53
|
+
@section scripts //ABC選択フォームを選択するときに?
|
54
|
+
|
55
|
+
<script type="text/javascript">
|
56
|
+
|
57
|
+
$(function () {
|
58
|
+
|
59
|
+
//サブミット時(ダウンロード)
|
60
|
+
|
61
|
+
$("#form1").submit(function (e) {
|
62
|
+
|
63
|
+
util.selectboxAllSelect("#select_ABC");
|
64
|
+
|
65
|
+
return true;
|
66
|
+
|
67
|
+
});
|
68
|
+
|
69
|
+
})
|
70
|
+
|
71
|
+
</script>
|
72
|
+
|
45
73
|
|
46
74
|
|
47
75
|
(index.cs)
|
@@ -64,210 +92,214 @@
|
|
64
92
|
|
65
93
|
public class index
|
66
94
|
|
95
|
+
{
|
96
|
+
|
97
|
+
[DisplayName("選択フォーム")]
|
98
|
+
|
99
|
+
public string[] select_ABC { get; set; }
|
100
|
+
|
101
|
+
[DisplayName("チェックボックス")]
|
102
|
+
|
103
|
+
public bool checkbox { get; set; }
|
104
|
+
|
105
|
+
}
|
106
|
+
|
107
|
+
}
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
(Control.cs)
|
112
|
+
|
113
|
+
using System;
|
114
|
+
|
115
|
+
using OfficeOpenXml;
|
116
|
+
|
117
|
+
using Collections.Generic;
|
118
|
+
|
119
|
+
using System.Data.Linq.SqlClient;
|
120
|
+
|
121
|
+
using System.IO;
|
122
|
+
|
123
|
+
using System.Text;
|
124
|
+
|
125
|
+
using System.Web;
|
126
|
+
|
127
|
+
using A.Generator.Report;
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
namespace A.Controllers
|
132
|
+
|
133
|
+
{
|
134
|
+
|
135
|
+
public class Control : Controller
|
136
|
+
|
67
137
|
{
|
68
138
|
|
139
|
+
///<param name="postdata"></param>
|
140
|
+
|
141
|
+
///<returns></returns>
|
142
|
+
|
69
|
-
|
143
|
+
///<remarks>
|
144
|
+
|
70
|
-
|
145
|
+
///Excel出力の実行
|
146
|
+
|
147
|
+
///</remarks>
|
148
|
+
|
71
|
-
|
149
|
+
public AcctionResult Report(index postdata)
|
150
|
+
|
151
|
+
{
|
152
|
+
|
153
|
+
var generator.Generate();
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
//コレクションの生成(checkboxとは関係ないコレクションです)
|
158
|
+
|
159
|
+
postdata.select_ABC = postdata.select_ABC ?? (new string[] { }); //ABCを選択したコレクション
|
160
|
+
|
161
|
+
foreach (var item in postdata.select_ABC)
|
162
|
+
|
163
|
+
{
|
164
|
+
|
165
|
+
generator.acodes.Add(new AOutputCode(item));
|
166
|
+
|
167
|
+
}//チェックボックス以外にpostdataの内容です
|
168
|
+
|
169
|
+
//印字用条件のセット
|
170
|
+
|
171
|
+
generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)
|
172
|
+
|
173
|
+
//帳票の生成
|
174
|
+
|
175
|
+
generator.Generate();
|
176
|
+
|
177
|
+
//帳票を出力しレスポンスとして返す
|
178
|
+
|
179
|
+
return reportGen.Response(); //生成したEXCELをWebのレスポンスとして返す
|
180
|
+
|
181
|
+
}
|
72
182
|
|
73
183
|
}
|
74
184
|
|
75
185
|
}
|
76
186
|
|
77
|
-
|
78
|
-
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
79
|
-
(
|
193
|
+
(Report.cs)
|
80
194
|
|
81
195
|
using System;
|
82
196
|
|
83
|
-
using OfficeOpenXml;
|
84
|
-
|
85
|
-
using Collections.Generic;
|
197
|
+
using System.Collections.Generic;
|
86
198
|
|
87
199
|
using System.Data.Linq.SqlClient;
|
88
200
|
|
89
201
|
using System.IO;
|
90
202
|
|
203
|
+
using System.Linq;
|
204
|
+
|
91
205
|
using System.Text;
|
92
206
|
|
207
|
+
using System.Text.RegularExpressions;
|
208
|
+
|
209
|
+
using System.Threading.Tasks;
|
210
|
+
|
93
211
|
using System.Web;
|
94
212
|
|
213
|
+
using System.Web.Mvc;
|
214
|
+
|
215
|
+
using A.Models;
|
216
|
+
|
217
|
+
|
218
|
+
|
95
|
-
|
219
|
+
namespace A.Generator.Report
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
namespace A.Controllers
|
100
220
|
|
101
221
|
{
|
102
222
|
|
223
|
+
///<summary>
|
224
|
+
|
225
|
+
///帳票(Excel)出力
|
226
|
+
|
227
|
+
///</summary>
|
228
|
+
|
103
|
-
public class
|
229
|
+
public class ReportGenerator
|
104
230
|
|
105
231
|
{
|
106
232
|
|
107
|
-
|
233
|
+
public List<Info> Infs = new List<Info(); //出力用のIDを選択するリストを呼出
|
108
|
-
|
234
|
+
|
109
|
-
|
235
|
+
public bool checkbox { get; set; }
|
110
|
-
|
236
|
+
|
237
|
+
|
238
|
+
|
111
|
-
///<
|
239
|
+
///<summary>
|
112
|
-
|
240
|
+
|
113
|
-
///
|
241
|
+
///コンストラクタ
|
114
|
-
|
242
|
+
|
115
|
-
///</
|
243
|
+
///</summary>
|
244
|
+
|
116
|
-
|
245
|
+
public Report(DefultContext dbcontext) ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
|
246
|
+
|
117
|
-
|
247
|
+
: base(dbcontext) //
|
118
|
-
|
248
|
+
|
119
|
-
|
249
|
+
{
|
250
|
+
|
120
|
-
|
251
|
+
}
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
//帳票出力
|
256
|
+
|
121
|
-
|
257
|
+
public ovverride void Generate()
|
258
|
+
|
122
|
-
|
259
|
+
{
|
123
|
-
|
124
|
-
|
260
|
+
|
125
|
-
//
|
261
|
+
//データ行の出力
|
126
|
-
|
127
|
-
|
262
|
+
|
128
|
-
|
129
|
-
foreach
|
263
|
+
foreach(var sellist in Infs)
|
264
|
+
|
265
|
+
{
|
266
|
+
|
267
|
+
excelHelper.CellOutput(sellist.id)
|
268
|
+
|
269
|
+
excelHelper.BeginDataLine();
|
270
|
+
|
271
|
+
if(checkbox)
|
272
|
+
|
273
|
+
{
|
274
|
+
|
275
|
+
excelHelper.CellOutPut(sellist.check)
|
276
|
+
|
277
|
+
}
|
278
|
+
|
279
|
+
excelHelper.NewRow();
|
280
|
+
|
281
|
+
}
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
//見出し行の出力
|
286
|
+
|
287
|
+
excellHelper.HeaderOut("ID")
|
288
|
+
|
289
|
+
If(checkbox)
|
130
290
|
|
131
291
|
{
|
132
292
|
|
133
|
-
|
293
|
+
excelHelper.HeaderOut("チェック");
|
134
|
-
|
135
|
-
|
294
|
+
|
136
|
-
|
137
|
-
//印字用条件のセット
|
138
|
-
|
139
|
-
generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)
|
140
|
-
|
141
|
-
//帳票の生成
|
142
|
-
|
143
|
-
generator.Generate();
|
144
|
-
|
145
|
-
//帳票を出力しレスポンスとして返す
|
146
|
-
|
147
|
-
return reportGen.Response(); //生成したEXCELをWebのレスポンスとして返す
|
148
|
-
|
149
|
-
|
295
|
+
}
|
150
|
-
|
296
|
+
|
151
|
-
|
297
|
+
}
|
298
|
+
|
299
|
+
}
|
152
300
|
|
153
301
|
}
|
154
302
|
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
(Report.cs)
|
162
|
-
|
163
|
-
using System;
|
164
|
-
|
165
|
-
using System.Collections.Generic;
|
166
|
-
|
167
|
-
using System.Data.Linq.SqlClient;
|
168
|
-
|
169
|
-
using System.IO;
|
170
|
-
|
171
|
-
using System.Linq;
|
172
|
-
|
173
|
-
using System.Text;
|
174
|
-
|
175
|
-
using System.Text.RegularExpressions;
|
176
|
-
|
177
|
-
using System.Threading.Tasks;
|
178
|
-
|
179
|
-
using System.Web;
|
180
|
-
|
181
|
-
using System.Web.Mvc;
|
182
|
-
|
183
|
-
using A.Models;
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
namespace A.Generator.Report
|
188
|
-
|
189
|
-
{
|
190
|
-
|
191
|
-
///<summary>
|
192
|
-
|
193
|
-
///帳票(Excel)出力
|
194
|
-
|
195
|
-
///</summary>
|
196
|
-
|
197
|
-
public class ReportGenerator
|
198
|
-
|
199
|
-
{
|
200
|
-
|
201
|
-
public List<Info> Infs = new List<Info(); //出力用のIDを選択するリストを呼出
|
202
|
-
|
203
|
-
public bool checkbox { get; set; }
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
///<summary>
|
208
|
-
|
209
|
-
///コンストラクタ
|
210
|
-
|
211
|
-
///</summary>
|
212
|
-
|
213
|
-
public Report(DefultContext dbcontext) ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
|
214
|
-
|
215
|
-
: base(dbcontext) //
|
216
|
-
|
217
|
-
{
|
218
|
-
|
219
|
-
}
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
//帳票出力
|
224
|
-
|
225
|
-
public ovverride void Generate()
|
226
|
-
|
227
|
-
{
|
228
|
-
|
229
|
-
//データ行の出力
|
230
|
-
|
231
|
-
foreach(var sellist in Infs)
|
232
|
-
|
233
|
-
{
|
234
|
-
|
235
|
-
excelHelper.CellOutput(sellist.id)
|
236
|
-
|
237
|
-
excelHelper.BeginDataLine();
|
238
|
-
|
239
|
-
if(checkbox)
|
240
|
-
|
241
|
-
{
|
242
|
-
|
243
|
-
excelHelper.CellOutPut(sellist.check)
|
244
|
-
|
245
|
-
}
|
246
|
-
|
247
|
-
excelHelper.NewRow();
|
248
|
-
|
249
|
-
}
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
//見出し行の出力
|
254
|
-
|
255
|
-
excellHelper.HeaderOut("ID")
|
256
|
-
|
257
|
-
If(checkbox)
|
258
|
-
|
259
|
-
{
|
260
|
-
|
261
|
-
excelHelper.HeaderOut("チェック");
|
262
|
-
|
263
|
-
}
|
264
|
-
|
265
|
-
}
|
266
|
-
|
267
|
-
}
|
268
|
-
|
269
|
-
}
|
270
|
-
|
271
303
|
```
|
272
304
|
|
273
305
|
|
6
プロジェクト名と選択フォーム名がかぶっていたため、選択フォーム名をA→ABCに
test
CHANGED
File without changes
|
test
CHANGED
@@ -124,9 +124,9 @@
|
|
124
124
|
|
125
125
|
//コレクションの生成(checkboxとは関係ないコレクションです)
|
126
126
|
|
127
|
-
postdata.select_A = postdata.select_A ?? (new string[] { }); //Aを選択したコレクション
|
127
|
+
postdata.select_ABC = postdata.select_ABC ?? (new string[] { }); //ABCを選択したコレクション
|
128
|
-
|
128
|
+
|
129
|
-
foreach (var item in postdata.select_A)
|
129
|
+
foreach (var item in postdata.select_ABC)
|
130
130
|
|
131
131
|
{
|
132
132
|
|
5
段落がずれていたのを修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,6 +24,8 @@
|
|
24
24
|
|
25
25
|
```ここに言語を入力
|
26
26
|
|
27
|
+
|
28
|
+
|
27
29
|
(index.cshtml)
|
28
30
|
|
29
31
|
@model A.Models.index
|
@@ -32,7 +34,7 @@
|
|
32
34
|
|
33
35
|
<div>
|
34
36
|
|
35
|
-
|
37
|
+
@Html.EditorFor(model => model.checkbox)
|
36
38
|
|
37
39
|
@Html.LabelFor(model => model.checkbox)
|
38
40
|
|
@@ -60,13 +62,13 @@
|
|
60
62
|
|
61
63
|
{
|
62
64
|
|
63
|
-
|
65
|
+
public class index
|
64
66
|
|
65
67
|
{
|
66
68
|
|
67
|
-
[DisplayName("チェックボックス")]
|
69
|
+
[DisplayName("チェックボックス")]
|
68
|
-
|
70
|
+
|
69
|
-
public bool checkbox { get; set; }
|
71
|
+
public bool checkbox { get; set; }
|
70
72
|
|
71
73
|
}
|
72
74
|
|
@@ -102,180 +104,170 @@
|
|
102
104
|
|
103
105
|
{
|
104
106
|
|
105
|
-
|
107
|
+
///<param name="postdata"></param>
|
106
|
-
|
108
|
+
|
107
|
-
|
109
|
+
///<returns></returns>
|
108
|
-
|
110
|
+
|
109
|
-
|
111
|
+
///<remarks>
|
110
|
-
|
112
|
+
|
111
|
-
|
113
|
+
///Excel出力の実行
|
112
|
-
|
114
|
+
|
113
|
-
|
115
|
+
///</remarks>
|
114
116
|
|
115
117
|
public AcctionResult Report(index postdata)
|
116
118
|
|
117
119
|
{
|
118
120
|
|
119
|
-
|
121
|
+
var generator.Generate();
|
120
|
-
|
121
|
-
|
122
|
-
|
122
|
+
|
123
|
+
|
124
|
+
|
123
|
-
|
125
|
+
//コレクションの生成(checkboxとは関係ないコレクションです)
|
124
|
-
|
126
|
+
|
125
|
-
|
127
|
+
postdata.select_A = postdata.select_A ?? (new string[] { }); //Aを選択したコレクション
|
126
|
-
|
128
|
+
|
127
|
-
|
129
|
+
foreach (var item in postdata.select_A)
|
130
|
+
|
131
|
+
{
|
132
|
+
|
133
|
+
generator.acodes.Add(new AOutputCode(item));
|
134
|
+
|
135
|
+
}//チェックボックス以外にpostdataの内容です
|
136
|
+
|
137
|
+
//印字用条件のセット
|
138
|
+
|
139
|
+
generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)
|
140
|
+
|
141
|
+
//帳票の生成
|
142
|
+
|
143
|
+
generator.Generate();
|
144
|
+
|
145
|
+
//帳票を出力しレスポンスとして返す
|
146
|
+
|
147
|
+
return reportGen.Response(); //生成したEXCELをWebのレスポンスとして返す
|
148
|
+
|
149
|
+
}
|
150
|
+
|
151
|
+
}
|
152
|
+
|
153
|
+
}
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
(Report.cs)
|
162
|
+
|
163
|
+
using System;
|
164
|
+
|
165
|
+
using System.Collections.Generic;
|
166
|
+
|
167
|
+
using System.Data.Linq.SqlClient;
|
168
|
+
|
169
|
+
using System.IO;
|
170
|
+
|
171
|
+
using System.Linq;
|
172
|
+
|
173
|
+
using System.Text;
|
174
|
+
|
175
|
+
using System.Text.RegularExpressions;
|
176
|
+
|
177
|
+
using System.Threading.Tasks;
|
178
|
+
|
179
|
+
using System.Web;
|
180
|
+
|
181
|
+
using System.Web.Mvc;
|
182
|
+
|
183
|
+
using A.Models;
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
namespace A.Generator.Report
|
188
|
+
|
189
|
+
{
|
190
|
+
|
191
|
+
///<summary>
|
192
|
+
|
193
|
+
///帳票(Excel)出力
|
194
|
+
|
195
|
+
///</summary>
|
196
|
+
|
197
|
+
public class ReportGenerator
|
198
|
+
|
199
|
+
{
|
200
|
+
|
201
|
+
public List<Info> Infs = new List<Info(); //出力用のIDを選択するリストを呼出
|
202
|
+
|
203
|
+
public bool checkbox { get; set; }
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
///<summary>
|
208
|
+
|
209
|
+
///コンストラクタ
|
210
|
+
|
211
|
+
///</summary>
|
212
|
+
|
213
|
+
public Report(DefultContext dbcontext) ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
|
214
|
+
|
215
|
+
: base(dbcontext) //
|
216
|
+
|
217
|
+
{
|
218
|
+
|
219
|
+
}
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
//帳票出力
|
224
|
+
|
225
|
+
public ovverride void Generate()
|
226
|
+
|
227
|
+
{
|
228
|
+
|
229
|
+
//データ行の出力
|
230
|
+
|
231
|
+
foreach(var sellist in Infs)
|
232
|
+
|
233
|
+
{
|
234
|
+
|
235
|
+
excelHelper.CellOutput(sellist.id)
|
236
|
+
|
237
|
+
excelHelper.BeginDataLine();
|
238
|
+
|
239
|
+
if(checkbox)
|
128
240
|
|
129
241
|
{
|
130
242
|
|
131
|
-
|
243
|
+
excelHelper.CellOutPut(sellist.check)
|
132
|
-
|
133
|
-
|
244
|
+
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
//印字用条件のセット
|
138
|
-
|
139
|
-
generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)
|
140
|
-
|
141
|
-
|
245
|
+
}
|
142
|
-
|
246
|
+
|
143
|
-
|
247
|
+
excelHelper.NewRow();
|
248
|
+
|
249
|
+
}
|
144
250
|
|
145
251
|
|
146
252
|
|
147
|
-
//
|
253
|
+
//見出し行の出力
|
254
|
+
|
148
|
-
|
255
|
+
excellHelper.HeaderOut("ID")
|
256
|
+
|
257
|
+
If(checkbox)
|
258
|
+
|
259
|
+
{
|
260
|
+
|
149
|
-
|
261
|
+
excelHelper.HeaderOut("チェック");
|
150
|
-
|
151
|
-
|
152
|
-
|
262
|
+
|
153
|
-
|
263
|
+
}
|
154
|
-
|
264
|
+
|
155
|
-
|
265
|
+
}
|
266
|
+
|
267
|
+
}
|
156
268
|
|
157
269
|
}
|
158
270
|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
(Report.cs)
|
166
|
-
|
167
|
-
using System;
|
168
|
-
|
169
|
-
using System.Collections.Generic;
|
170
|
-
|
171
|
-
using System.Data.Linq.SqlClient;
|
172
|
-
|
173
|
-
using System.IO;
|
174
|
-
|
175
|
-
using System.Linq;
|
176
|
-
|
177
|
-
using System.Text;
|
178
|
-
|
179
|
-
using System.Text.RegularExpressions;
|
180
|
-
|
181
|
-
using System.Threading.Tasks;
|
182
|
-
|
183
|
-
using System.Web;
|
184
|
-
|
185
|
-
using System.Web.Mvc;
|
186
|
-
|
187
|
-
using A.Models;
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
namespace A.Generator.Report
|
192
|
-
|
193
|
-
{
|
194
|
-
|
195
|
-
///<summary>
|
196
|
-
|
197
|
-
///帳票(Excel)出力
|
198
|
-
|
199
|
-
///</summary>
|
200
|
-
|
201
|
-
public class ReportGenerator
|
202
|
-
|
203
|
-
{
|
204
|
-
|
205
|
-
public List<Info> Infs = new List<Info(); //出力用のIDを選択するリストを呼出
|
206
|
-
|
207
|
-
public bool checkbox { get; set; }
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
///<summary>
|
212
|
-
|
213
|
-
///コンストラクタ
|
214
|
-
|
215
|
-
///</summary>
|
216
|
-
|
217
|
-
public Report(DefultContext dbcontext) ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
|
218
|
-
|
219
|
-
: base(dbcontext) //
|
220
|
-
|
221
|
-
{
|
222
|
-
|
223
|
-
}
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
//帳票出力
|
228
|
-
|
229
|
-
public ovverride void Generate()
|
230
|
-
|
231
|
-
{
|
232
|
-
|
233
|
-
//データ行の出力
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
foreach(var sellist in Infs)
|
238
|
-
|
239
|
-
{
|
240
|
-
|
241
|
-
excelHelper.CellOutput(sellist.id)
|
242
|
-
|
243
|
-
excelHelper.BeginDataLine();
|
244
|
-
|
245
|
-
if(checkbox)
|
246
|
-
|
247
|
-
{
|
248
|
-
|
249
|
-
excelHelper.CellOutPut(sellist.check);
|
250
|
-
|
251
|
-
}
|
252
|
-
|
253
|
-
excelHelper.NewRow();
|
254
|
-
|
255
|
-
}
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
//見出し行の出力
|
260
|
-
|
261
|
-
excellHelper.HeaderOut("ID")
|
262
|
-
|
263
|
-
If(checkbox)
|
264
|
-
|
265
|
-
{
|
266
|
-
|
267
|
-
excelHelper.HeaderOut("チェック");
|
268
|
-
|
269
|
-
}
|
270
|
-
|
271
|
-
}
|
272
|
-
|
273
|
-
}
|
274
|
-
|
275
|
-
}
|
276
|
-
|
277
|
-
|
278
|
-
|
279
271
|
```
|
280
272
|
|
281
273
|
|
4
postdataはAとcheckboxのコレクションを持っている配列とします
test
CHANGED
File without changes
|
test
CHANGED
@@ -22,6 +22,8 @@
|
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
+
```ここに言語を入力
|
26
|
+
|
25
27
|
(index.cshtml)
|
26
28
|
|
27
29
|
@model A.Models.index
|
@@ -96,21 +98,45 @@
|
|
96
98
|
|
97
99
|
{
|
98
100
|
|
99
|
-
public class Control : Controle
|
101
|
+
public class Control : Controller
|
100
102
|
|
101
103
|
{
|
102
104
|
|
105
|
+
///<param name="postdata"></param>
|
106
|
+
|
107
|
+
///<returns></returns>
|
108
|
+
|
109
|
+
///<remarks>
|
110
|
+
|
111
|
+
///Excel出力の実行
|
112
|
+
|
113
|
+
///</remarks>
|
114
|
+
|
103
115
|
public AcctionResult Report(index postdata)
|
104
116
|
|
105
117
|
{
|
106
118
|
|
107
119
|
var generator.Generate();
|
108
120
|
|
121
|
+
|
122
|
+
|
109
|
-
|
123
|
+
//コレクションの生成(checkboxとは関係ないコレクションです)
|
124
|
+
|
110
|
-
|
125
|
+
postdata.select_A = postdata.select_A ?? (new string[] { }); //Aを選択したコレクション
|
126
|
+
|
127
|
+
foreach (var item in postdata.select_A)
|
128
|
+
|
129
|
+
{
|
130
|
+
|
131
|
+
generator.acodes.Add(new AOutputCode(item));
|
132
|
+
|
133
|
+
}//チェックボックス以外にpostdataの内容です
|
134
|
+
|
135
|
+
|
136
|
+
|
111
|
-
//
|
137
|
+
//印字用条件のセット
|
138
|
+
|
112
|
-
|
139
|
+
generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)
|
113
|
-
|
114
140
|
|
115
141
|
//帳票の生成
|
116
142
|
|
@@ -118,7 +144,11 @@
|
|
118
144
|
|
119
145
|
|
120
146
|
|
121
|
-
//
|
147
|
+
//帳票を出力しレスポンスとして返す
|
148
|
+
|
149
|
+
return reportGen.Response(); //生成したEXCELをWebのレスポンスとして返す
|
150
|
+
|
151
|
+
|
122
152
|
|
123
153
|
}
|
124
154
|
|
@@ -162,6 +192,12 @@
|
|
162
192
|
|
163
193
|
{
|
164
194
|
|
195
|
+
///<summary>
|
196
|
+
|
197
|
+
///帳票(Excel)出力
|
198
|
+
|
199
|
+
///</summary>
|
200
|
+
|
165
201
|
public class ReportGenerator
|
166
202
|
|
167
203
|
{
|
@@ -172,61 +208,81 @@
|
|
172
208
|
|
173
209
|
|
174
210
|
|
211
|
+
///<summary>
|
212
|
+
|
213
|
+
///コンストラクタ
|
214
|
+
|
215
|
+
///</summary>
|
216
|
+
|
217
|
+
public Report(DefultContext dbcontext) ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
|
218
|
+
|
219
|
+
: base(dbcontext) //
|
220
|
+
|
221
|
+
{
|
222
|
+
|
223
|
+
}
|
224
|
+
|
225
|
+
|
226
|
+
|
175
|
-
//帳票出力
|
227
|
+
//帳票出力
|
176
|
-
|
228
|
+
|
177
|
-
public ovverride void Generate()
|
229
|
+
public ovverride void Generate()
|
178
|
-
|
230
|
+
|
179
|
-
{
|
231
|
+
{
|
180
232
|
|
181
233
|
//データ行の出力
|
182
234
|
|
183
235
|
|
184
236
|
|
185
|
-
foreach(var sellist in Infs)
|
237
|
+
foreach(var sellist in Infs)
|
186
238
|
|
187
239
|
{
|
188
240
|
|
189
|
-
excelHelper.CellOutput(sellist.id)
|
241
|
+
excelHelper.CellOutput(sellist.id)
|
190
|
-
|
242
|
+
|
191
|
-
excelHelper.BeginDataLine();
|
243
|
+
excelHelper.BeginDataLine();
|
192
|
-
|
244
|
+
|
193
|
-
if(checkbox)
|
245
|
+
if(checkbox)
|
194
|
-
|
246
|
+
|
195
|
-
{
|
247
|
+
{
|
196
|
-
|
248
|
+
|
197
|
-
excelHelper.CellOutPut(sellist.check);
|
249
|
+
excelHelper.CellOutPut(sellist.check);
|
198
|
-
|
250
|
+
|
199
|
-
}
|
251
|
+
}
|
200
|
-
|
252
|
+
|
201
|
-
excelHelper.NewRow();
|
253
|
+
excelHelper.NewRow();
|
202
|
-
|
254
|
+
|
203
|
-
}
|
255
|
+
}
|
204
|
-
|
205
|
-
|
206
|
-
|
256
|
+
|
257
|
+
|
258
|
+
|
207
|
-
//見出し行の出力
|
259
|
+
//見出し行の出力
|
208
|
-
|
260
|
+
|
209
|
-
excellHelper.HeaderOut("ID")
|
261
|
+
excellHelper.HeaderOut("ID")
|
210
|
-
|
262
|
+
|
211
|
-
If(checkbox)
|
263
|
+
If(checkbox)
|
212
|
-
|
264
|
+
|
213
|
-
{
|
265
|
+
{
|
214
|
-
|
266
|
+
|
215
|
-
excelHelper.HeaderOut("チェック");
|
267
|
+
excelHelper.HeaderOut("チェック");
|
216
|
-
|
268
|
+
|
217
|
-
}
|
269
|
+
}
|
218
|
-
|
270
|
+
|
219
|
-
}
|
271
|
+
}
|
272
|
+
|
273
|
+
}
|
220
274
|
|
221
275
|
}
|
222
276
|
|
277
|
+
|
278
|
+
|
223
|
-
|
279
|
+
```
|
224
280
|
|
225
281
|
|
226
282
|
|
227
283
|
試した方法
|
228
284
|
|
229
|
-
・(Control.cs)postdataをウォッチリストに追加して、checkboxの値がtrueになっているか監視しています
|
285
|
+
・(Control.cs)のpostdata(内容はAとcheckbox)をウォッチリストに追加して、checkboxの値がtrueになっているか監視しています
|
230
286
|
|
231
287
|
→プログラムを修正していたら、勝手にfalseになる場合とならない場合がありました、どちらにしても結果は出力されないになりましたが
|
232
288
|
|
3
ModelとViewを間違えていた箇所を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,9 +4,7 @@
|
|
4
4
|
|
5
5
|
チェックボックスの値を取得し、trueフラグによってExcel帳票に出力する判定を行う処理を作成しています。
|
6
6
|
|
7
|
-
ところが、cshtmlからチェックボックスの判定を取得しよとしたところ、
|
7
|
+
ところが、cshtml(view)からチェックボックスの判定を取得しよとしたところ、index(Model)取得できてますが、出力用のプログラムで必ずfalseになってしまいます。
|
8
|
-
|
9
|
-
出力用のプログラムで必ずfalseになってしまいます。
|
10
8
|
|
11
9
|
おそらくプロパティの取得の仕方に問題があるのではないかと思うのですが、いろんな方法を試してみましたが、勉強不足のためかうまくいきませんでした。
|
12
10
|
|
2
{の不足があった個所を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -186,6 +186,8 @@
|
|
186
186
|
|
187
187
|
foreach(var sellist in Infs)
|
188
188
|
|
189
|
+
{
|
190
|
+
|
189
191
|
excelHelper.CellOutput(sellist.id)
|
190
192
|
|
191
193
|
excelHelper.BeginDataLine();
|
1
タグの追加
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|