質問編集履歴
12
調整
title
CHANGED
File without changes
|
body
CHANGED
@@ -80,7 +80,7 @@
|
|
80
80
|
postdata.select_ABC = postdata.select_ABC ?? (new string[] { }); //ABCを選択したコレクション
|
81
81
|
foreach (var item in postdata.select_ABC)
|
82
82
|
{
|
83
|
-
generator.
|
83
|
+
generator.abccodes.Add(new AbcOutputCode(item));
|
84
84
|
}//チェックボックス以外にpostdataの内容です
|
85
85
|
//印字用条件のセット
|
86
86
|
generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)
|
11
誤字を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -87,7 +87,7 @@
|
|
87
87
|
//帳票の生成
|
88
88
|
generator.Generate();
|
89
89
|
//帳票を出力しレスポンスとして返す
|
90
|
-
return
|
90
|
+
return generator.Response(); //生成したEXCELをWebのレスポンスとして返す
|
91
91
|
}
|
92
92
|
}
|
93
93
|
}
|
@@ -127,7 +127,7 @@
|
|
127
127
|
}
|
128
128
|
|
129
129
|
//帳票出力
|
130
|
-
public
|
130
|
+
public override void Generate()
|
131
131
|
{
|
132
132
|
//データ行の出力
|
133
133
|
foreach(var sellist in Infs)
|
10
CSSを削除し、コードを微調整
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
(index.cshtml)
|
16
16
|
@model A.Models.index
|
17
17
|
~
|
18
|
-
<div
|
18
|
+
<div>
|
19
19
|
<select id="select_ABC" name="select_ABC" size="5" multiple="multiple"></select>
|
20
20
|
</div>
|
21
21
|
|
@@ -120,8 +120,9 @@
|
|
120
120
|
///<summary>
|
121
121
|
///コンストラクタ
|
122
122
|
///</summary>
|
123
|
+
public Report(DefultContext dbcontext)
|
123
|
-
|
124
|
+
///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
|
124
|
-
: base(dbcontext)
|
125
|
+
: base(dbcontext)
|
125
126
|
{
|
126
127
|
}
|
127
128
|
|
9
一部文章がおかしかったため修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
初めて質問させていただきます。
|
2
2
|
|
3
3
|
チェックボックスの値を取得し、trueフラグによってExcel帳票に出力する判定を行う処理を作成しています。
|
4
|
-
ところが、cshtml(view)からチェックボックスの判定を取得しよとしたところ、index(Model)取得できてますが、出力用のプログラムで必ずfalseになってしまいます。
|
4
|
+
ところが、cshtml(view)からチェックボックスの判定を取得しよとしたところ、index(Model)では取得できてますが、出力用のプログラム(Generator)で必ずfalseになってしまいます。
|
5
5
|
おそらくプロパティの取得の仕方に問題があるのではないかと思うのですが、いろんな方法を試してみましたが、勉強不足のためかうまくいきませんでした。
|
6
6
|
|
7
7
|
言語:C#(ASP.NET Framework4.5 MVC)
|
8
不足を追加2
title
CHANGED
File without changes
|
body
CHANGED
@@ -133,6 +133,10 @@
|
|
133
133
|
{
|
134
134
|
excelHelper.CellOutput(sellist.id)
|
135
135
|
excelHelper.BeginDataLine();
|
136
|
+
foreach(var item in id.abc) //選択されたABCのデータ行
|
137
|
+
{
|
138
|
+
excelHelper.Output(item.PrintData());
|
139
|
+
}
|
136
140
|
if(checkbox)
|
137
141
|
{
|
138
142
|
excelHelper.CellOutPut(sellist.check)
|
@@ -142,6 +146,10 @@
|
|
142
146
|
|
143
147
|
//見出し行の出力
|
144
148
|
excellHelper.HeaderOut("ID")
|
149
|
+
foreach (var item in abc)
|
150
|
+
{
|
151
|
+
OutputHeader(excelHelper, item, "ABC");
|
152
|
+
}
|
145
153
|
If(checkbox)
|
146
154
|
{
|
147
155
|
excelHelper.HeaderOut("チェック");
|
@@ -149,6 +157,7 @@
|
|
149
157
|
}
|
150
158
|
}
|
151
159
|
}
|
160
|
+
|
152
161
|
```
|
153
162
|
|
154
163
|
試した方法
|
7
select_ABCについてフォームとアウトプットの作成
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,11 +15,25 @@
|
|
15
15
|
(index.cshtml)
|
16
16
|
@model A.Models.index
|
17
17
|
~
|
18
|
+
<div class="col-md-8">
|
19
|
+
<select id="select_ABC" name="select_ABC" size="5" multiple="multiple"></select>
|
20
|
+
</div>
|
21
|
+
|
18
22
|
<div>
|
19
23
|
@Html.EditorFor(model => model.checkbox)
|
20
|
-
|
24
|
+
@Html.LabelFor(model => model.checkbox)
|
21
25
|
</div>
|
22
26
|
~
|
27
|
+
@section scripts //ABC選択フォームを選択するときに?
|
28
|
+
<script type="text/javascript">
|
29
|
+
$(function () {
|
30
|
+
//サブミット時(ダウンロード)
|
31
|
+
$("#form1").submit(function (e) {
|
32
|
+
util.selectboxAllSelect("#select_ABC");
|
33
|
+
return true;
|
34
|
+
});
|
35
|
+
})
|
36
|
+
</script>
|
23
37
|
|
24
38
|
(index.cs)
|
25
39
|
using System;
|
@@ -31,10 +45,12 @@
|
|
31
45
|
namespace A.Models
|
32
46
|
{
|
33
47
|
public class index
|
34
|
-
|
48
|
+
{
|
49
|
+
[DisplayName("選択フォーム")]
|
50
|
+
public string[] select_ABC { get; set; }
|
35
|
-
|
51
|
+
[DisplayName("チェックボックス")]
|
36
|
-
|
52
|
+
public bool checkbox { get; set; }
|
37
|
-
|
53
|
+
}
|
38
54
|
}
|
39
55
|
|
40
56
|
(Control.cs)
|
6
プロジェクト名と選択フォーム名がかぶっていたため、選択フォーム名をA→ABCに
title
CHANGED
File without changes
|
body
CHANGED
@@ -61,8 +61,8 @@
|
|
61
61
|
var generator.Generate();
|
62
62
|
|
63
63
|
//コレクションの生成(checkboxとは関係ないコレクションです)
|
64
|
-
postdata.
|
64
|
+
postdata.select_ABC = postdata.select_ABC ?? (new string[] { }); //ABCを選択したコレクション
|
65
|
-
foreach (var item in postdata.
|
65
|
+
foreach (var item in postdata.select_ABC)
|
66
66
|
{
|
67
67
|
generator.acodes.Add(new AOutputCode(item));
|
68
68
|
}//チェックボックス以外にpostdataの内容です
|
5
段落がずれていたのを修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,11 +11,12 @@
|
|
11
11
|
関係がある部分を抜き出して記述してみます(usingの整理が上手くできていなくてすみません)。
|
12
12
|
|
13
13
|
```ここに言語を入力
|
14
|
+
|
14
15
|
(index.cshtml)
|
15
16
|
@model A.Models.index
|
16
17
|
~
|
17
18
|
<div>
|
18
|
-
|
19
|
+
@Html.EditorFor(model => model.checkbox)
|
19
20
|
@Html.LabelFor(model => model.checkbox)
|
20
21
|
</div>
|
21
22
|
~
|
@@ -29,10 +30,10 @@
|
|
29
30
|
|
30
31
|
namespace A.Models
|
31
32
|
{
|
32
|
-
|
33
|
+
public class index
|
33
34
|
{
|
34
|
-
|
35
|
+
[DisplayName("チェックボックス")]
|
35
|
-
|
36
|
+
public bool checkbox { get; set; }
|
36
37
|
}
|
37
38
|
}
|
38
39
|
|
@@ -50,30 +51,27 @@
|
|
50
51
|
{
|
51
52
|
public class Control : Controller
|
52
53
|
{
|
53
|
-
|
54
|
+
///<param name="postdata"></param>
|
54
|
-
|
55
|
+
///<returns></returns>
|
55
|
-
|
56
|
+
///<remarks>
|
56
|
-
|
57
|
+
///Excel出力の実行
|
57
|
-
|
58
|
+
///</remarks>
|
58
59
|
public AcctionResult Report(index postdata)
|
59
60
|
{
|
60
|
-
|
61
|
+
var generator.Generate();
|
61
|
-
|
62
|
+
|
62
|
-
|
63
|
+
//コレクションの生成(checkboxとは関係ないコレクションです)
|
63
|
-
|
64
|
+
postdata.select_A = postdata.select_A ?? (new string[] { }); //Aを選択したコレクション
|
64
|
-
|
65
|
+
foreach (var item in postdata.select_A)
|
65
|
-
|
66
|
+
{
|
66
|
-
|
67
|
+
generator.acodes.Add(new AOutputCode(item));
|
67
|
-
|
68
|
+
}//チェックボックス以外にpostdataの内容です
|
68
|
-
|
69
|
-
|
69
|
+
//印字用条件のセット
|
70
|
-
|
70
|
+
generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)
|
71
|
-
|
71
|
+
//帳票の生成
|
72
|
-
|
72
|
+
generator.Generate();
|
73
|
-
|
74
|
-
|
73
|
+
//帳票を出力しレスポンスとして返す
|
75
|
-
|
74
|
+
return reportGen.Response(); //生成したEXCELをWebのレスポンスとして返す
|
76
|
-
|
77
75
|
}
|
78
76
|
}
|
79
77
|
}
|
@@ -95,48 +93,46 @@
|
|
95
93
|
|
96
94
|
namespace A.Generator.Report
|
97
95
|
{
|
98
|
-
|
96
|
+
///<summary>
|
99
|
-
|
97
|
+
///帳票(Excel)出力
|
100
|
-
|
98
|
+
///</summary>
|
101
99
|
public class ReportGenerator
|
102
100
|
{
|
103
|
-
|
101
|
+
public List<Info> Infs = new List<Info(); //出力用のIDを選択するリストを呼出
|
104
|
-
|
102
|
+
public bool checkbox { get; set; }
|
105
103
|
|
106
|
-
|
104
|
+
///<summary>
|
107
|
-
|
105
|
+
///コンストラクタ
|
108
|
-
|
106
|
+
///</summary>
|
109
|
-
|
107
|
+
public Report(DefultContext dbcontext) ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
|
110
|
-
|
108
|
+
: base(dbcontext) //
|
111
|
-
|
109
|
+
{
|
112
|
-
|
110
|
+
}
|
113
111
|
|
114
|
-
|
112
|
+
//帳票出力
|
115
|
-
|
113
|
+
public ovverride void Generate()
|
116
|
-
|
114
|
+
{
|
117
|
-
|
115
|
+
//データ行の出力
|
118
|
-
|
119
|
-
|
116
|
+
foreach(var sellist in Infs)
|
120
117
|
{
|
121
|
-
|
118
|
+
excelHelper.CellOutput(sellist.id)
|
122
|
-
|
119
|
+
excelHelper.BeginDataLine();
|
123
|
-
|
120
|
+
if(checkbox)
|
124
|
-
|
121
|
+
{
|
125
|
-
|
122
|
+
excelHelper.CellOutPut(sellist.check)
|
126
|
-
|
123
|
+
}
|
127
|
-
|
124
|
+
excelHelper.NewRow();
|
128
|
-
|
125
|
+
}
|
129
126
|
|
130
|
-
|
127
|
+
//見出し行の出力
|
131
|
-
|
128
|
+
excellHelper.HeaderOut("ID")
|
132
|
-
|
129
|
+
If(checkbox)
|
133
|
-
|
130
|
+
{
|
134
|
-
|
131
|
+
excelHelper.HeaderOut("チェック");
|
135
|
-
|
132
|
+
}
|
136
|
-
}
|
137
133
|
}
|
134
|
+
}
|
138
135
|
}
|
139
|
-
|
140
136
|
```
|
141
137
|
|
142
138
|
試した方法
|
4
postdataはAとcheckboxのコレクションを持っている配列とします
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
|
11
11
|
関係がある部分を抜き出して記述してみます(usingの整理が上手くできていなくてすみません)。
|
12
12
|
|
13
|
+
```ここに言語を入力
|
13
14
|
(index.cshtml)
|
14
15
|
@model A.Models.index
|
15
16
|
~
|
@@ -47,18 +48,32 @@
|
|
47
48
|
|
48
49
|
namespace A.Controllers
|
49
50
|
{
|
50
|
-
public class Control :
|
51
|
+
public class Control : Controller
|
51
52
|
{
|
53
|
+
///<param name="postdata"></param>
|
54
|
+
///<returns></returns>
|
55
|
+
///<remarks>
|
56
|
+
///Excel出力の実行
|
57
|
+
///</remarks>
|
52
58
|
public AcctionResult Report(index postdata)
|
53
59
|
{
|
54
60
|
var generator.Generate();
|
61
|
+
|
55
|
-
|
62
|
+
//コレクションの生成(checkboxとは関係ないコレクションです)
|
63
|
+
postdata.select_A = postdata.select_A ?? (new string[] { }); //Aを選択したコレクション
|
64
|
+
foreach (var item in postdata.select_A)
|
65
|
+
{
|
66
|
+
generator.acodes.Add(new AOutputCode(item));
|
67
|
+
}//チェックボックス以外にpostdataの内容です
|
68
|
+
|
56
|
-
//
|
69
|
+
//印字用条件のセット
|
57
|
-
|
70
|
+
generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)
|
58
71
|
//帳票の生成
|
59
72
|
generator.Generate();
|
60
73
|
|
61
|
-
//
|
74
|
+
//帳票を出力しレスポンスとして返す
|
75
|
+
return reportGen.Response(); //生成したEXCELをWebのレスポンスとして返す
|
76
|
+
|
62
77
|
}
|
63
78
|
}
|
64
79
|
}
|
@@ -80,39 +95,52 @@
|
|
80
95
|
|
81
96
|
namespace A.Generator.Report
|
82
97
|
{
|
98
|
+
///<summary>
|
99
|
+
///帳票(Excel)出力
|
100
|
+
///</summary>
|
83
101
|
public class ReportGenerator
|
84
102
|
{
|
85
103
|
public List<Info> Infs = new List<Info(); //出力用のIDを選択するリストを呼出
|
86
104
|
public bool checkbox { get; set; }
|
87
105
|
|
106
|
+
///<summary>
|
107
|
+
///コンストラクタ
|
108
|
+
///</summary>
|
109
|
+
public Report(DefultContext dbcontext) ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
|
110
|
+
: base(dbcontext) //
|
111
|
+
{
|
112
|
+
}
|
113
|
+
|
88
|
-
|
114
|
+
//帳票出力
|
89
|
-
|
115
|
+
public ovverride void Generate()
|
90
|
-
|
116
|
+
{
|
91
117
|
//データ行の出力
|
92
118
|
|
93
|
-
|
119
|
+
foreach(var sellist in Infs)
|
94
120
|
{
|
95
|
-
|
121
|
+
excelHelper.CellOutput(sellist.id)
|
96
|
-
|
122
|
+
excelHelper.BeginDataLine();
|
97
|
-
|
123
|
+
if(checkbox)
|
98
|
-
|
124
|
+
{
|
99
|
-
|
125
|
+
excelHelper.CellOutPut(sellist.check);
|
100
|
-
|
126
|
+
}
|
101
|
-
|
127
|
+
excelHelper.NewRow();
|
102
|
-
|
128
|
+
}
|
103
129
|
|
104
|
-
|
130
|
+
//見出し行の出力
|
105
|
-
|
131
|
+
excellHelper.HeaderOut("ID")
|
106
|
-
|
132
|
+
If(checkbox)
|
107
|
-
|
133
|
+
{
|
108
|
-
|
134
|
+
excelHelper.HeaderOut("チェック");
|
109
|
-
|
135
|
+
}
|
110
|
-
|
136
|
+
}
|
137
|
+
}
|
111
138
|
}
|
139
|
+
|
112
|
-
|
140
|
+
```
|
113
141
|
|
114
142
|
試した方法
|
115
|
-
・(Control.cs)postdataをウォッチリストに追加して、checkboxの値がtrueになっているか監視しています
|
143
|
+
・(Control.cs)のpostdata(内容はAとcheckbox)をウォッチリストに追加して、checkboxの値がtrueになっているか監視しています
|
116
144
|
→プログラムを修正していたら、勝手にfalseになる場合とならない場合がありました、どちらにしても結果は出力されないになりましたが
|
117
145
|
・(index.chhtml)@model A.Models.index → @model A.Generator.Report
|
118
146
|
→にしてみましたが、結果は変わらずでした
|
3
ModelとViewを間違えていた箇所を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
初めて質問させていただきます。
|
2
2
|
|
3
3
|
チェックボックスの値を取得し、trueフラグによってExcel帳票に出力する判定を行う処理を作成しています。
|
4
|
-
ところが、cshtmlからチェックボックスの判定を取得しよとしたところ、
|
4
|
+
ところが、cshtml(view)からチェックボックスの判定を取得しよとしたところ、index(Model)取得できてますが、出力用のプログラムで必ずfalseになってしまいます。
|
5
|
-
出力用のプログラムで必ずfalseになってしまいます。
|
6
5
|
おそらくプロパティの取得の仕方に問題があるのではないかと思うのですが、いろんな方法を試してみましたが、勉強不足のためかうまくいきませんでした。
|
7
6
|
|
8
7
|
言語:C#(ASP.NET Framework4.5 MVC)
|
2
{の不足があった個所を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -92,6 +92,7 @@
|
|
92
92
|
//データ行の出力
|
93
93
|
|
94
94
|
foreach(var sellist in Infs)
|
95
|
+
{
|
95
96
|
excelHelper.CellOutput(sellist.id)
|
96
97
|
excelHelper.BeginDataLine();
|
97
98
|
if(checkbox)
|
1
タグの追加
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|