teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

12

調整

2016/03/02 01:48

投稿

FitD
FitD

スコア40

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.acodes.Add(new AOutputCode(item));
83
+ generator.abccodes.Add(new AbcOutputCode(item));
84
84
  }//チェックボックス以外にpostdataの内容です
85
85
  //印字用条件のセット
86
86
  generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)

11

誤字を修正

2016/03/02 01:47

投稿

FitD
FitD

スコア40

title CHANGED
File without changes
body CHANGED
@@ -87,7 +87,7 @@
87
87
  //帳票の生成
88
88
  generator.Generate();
89
89
  //帳票を出力しレスポンスとして返す
90
- return reportGen.Response(); //生成したEXCELをWebのレスポンスとして返す
90
+ return generator.Response(); //生成したEXCELをWebのレスポンスとして返す
91
91
  }
92
92
  }
93
93
  }
@@ -127,7 +127,7 @@
127
127
  }
128
128
 
129
129
  //帳票出力
130
- public ovverride void Generate()
130
+ public override void Generate()
131
131
  {
132
132
  //データ行の出力
133
133
  foreach(var sellist in Infs)

10

CSSを削除し、コードを微調整

2016/03/02 01:13

投稿

FitD
FitD

スコア40

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 class="col-md-8">
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
- public Report(DefultContext dbcontext) ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
124
+ ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
124
- : base(dbcontext) //
125
+ : base(dbcontext)
125
126
  {
126
127
  }
127
128
 

9

一部文章がおかしかったため修正

2016/03/01 08:59

投稿

FitD
FitD

スコア40

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

2016/03/01 08:06

投稿

FitD
FitD

スコア40

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についてフォームとアウトプットの作成

2016/03/01 05:22

投稿

FitD
FitD

スコア40

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
- @Html.LabelFor(model => model.checkbox)
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
- [DisplayName("チェックボックス")]
51
+ [DisplayName("チェックボックス")]
36
- public bool checkbox { get; set; }
52
+ public bool checkbox { get; set; }
37
- }
53
+ }
38
54
  }
39
55
 
40
56
  (Control.cs)

6

プロジェクト名と選択フォーム名がかぶっていたため、選択フォーム名をA→ABCに

2016/03/01 05:12

投稿

FitD
FitD

スコア40

title CHANGED
File without changes
body CHANGED
@@ -61,8 +61,8 @@
61
61
  var generator.Generate();
62
62
 
63
63
  //コレクションの生成(checkboxとは関係ないコレクションです)
64
- postdata.select_A = postdata.select_A ?? (new string[] { }); //Aを選択したコレクション
64
+ postdata.select_ABC = postdata.select_ABC ?? (new string[] { }); //ABCを選択したコレクション
65
- foreach (var item in postdata.select_A)
65
+ foreach (var item in postdata.select_ABC)
66
66
  {
67
67
  generator.acodes.Add(new AOutputCode(item));
68
68
  }//チェックボックス以外にpostdataの内容です

5

段落がずれていたのを修正

2016/03/01 05:00

投稿

FitD
FitD

スコア40

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
- @Html.EditorFor(model => model.checkbox)
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
- public class index
33
+ public class index
33
34
  {
34
- [DisplayName("チェックボックス")]
35
+ [DisplayName("チェックボックス")]
35
- public bool checkbox { get; set; }
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
- ///<param name="postdata"></param>
54
+ ///<param name="postdata"></param>
54
- ///<returns></returns>
55
+ ///<returns></returns>
55
- ///<remarks>
56
+ ///<remarks>
56
- ///Excel出力の実行
57
+ ///Excel出力の実行
57
- ///</remarks>
58
+ ///</remarks>
58
59
  public AcctionResult Report(index postdata)
59
60
  {
60
- var generator.Generate();
61
+ var generator.Generate();
61
-
62
+
62
- //コレクションの生成(checkboxとは関係ないコレクションです)
63
+ //コレクションの生成(checkboxとは関係ないコレクションです)
63
- postdata.select_A = postdata.select_A ?? (new string[] { }); //Aを選択したコレクション
64
+ postdata.select_A = postdata.select_A ?? (new string[] { }); //Aを選択したコレクション
64
- foreach (var item in postdata.select_A)
65
+ foreach (var item in postdata.select_A)
65
- {
66
+ {
66
- generator.acodes.Add(new AOutputCode(item));
67
+ generator.acodes.Add(new AOutputCode(item));
67
- }//チェックボックス以外にpostdataの内容です
68
+ }//チェックボックス以外にpostdataの内容です
68
-
69
- //印字用条件のセット
69
+ //印字用条件のセット
70
- generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)
70
+ generator.SetFromSession(); //印字用検索条件の設定(画面から出力、セッション)
71
- //帳票の生成
71
+ //帳票の生成
72
- generator.Generate();
72
+ generator.Generate();
73
-
74
- //帳票を出力しレスポンスとして返す
73
+ //帳票を出力しレスポンスとして返す
75
- return reportGen.Response(); //生成したEXCELをWebのレスポンスとして返す
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
- ///<summary>
96
+ ///<summary>
99
- ///帳票(Excel)出力
97
+ ///帳票(Excel)出力
100
- ///</summary>
98
+ ///</summary>
101
99
  public class ReportGenerator
102
100
  {
103
- public List<Info> Infs = new List<Info(); //出力用のIDを選択するリストを呼出
101
+ public List<Info> Infs = new List<Info(); //出力用のIDを選択するリストを呼出
104
- public bool checkbox { get; set; }
102
+ public bool checkbox { get; set; }
105
103
 
106
- ///<summary>
104
+ ///<summary>
107
- ///コンストラクタ
105
+ ///コンストラクタ
108
- ///</summary>
106
+ ///</summary>
109
- public Report(DefultContext dbcontext) ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
107
+ public Report(DefultContext dbcontext) ///DefaultContextはテーブルのデータを受け渡すクラスで、DbContextを継承しています
110
- : base(dbcontext) //
108
+ : base(dbcontext) //
111
- {
109
+ {
112
- }
110
+ }
113
111
 
114
- //帳票出力
112
+ //帳票出力
115
- public ovverride void Generate()
113
+ public ovverride void Generate()
116
- {
114
+ {
117
- //データ行の出力
115
+ //データ行の出力
118
-
119
- foreach(var sellist in Infs)
116
+ foreach(var sellist in Infs)
120
117
  {
121
- excelHelper.CellOutput(sellist.id)
118
+ excelHelper.CellOutput(sellist.id)
122
- excelHelper.BeginDataLine();
119
+ excelHelper.BeginDataLine();
123
- if(checkbox)
120
+ if(checkbox)
124
- {
121
+ {
125
- excelHelper.CellOutPut(sellist.check);
122
+ excelHelper.CellOutPut(sellist.check)
126
- }
123
+ }
127
- excelHelper.NewRow();
124
+ excelHelper.NewRow();
128
- }
125
+ }
129
126
 
130
- //見出し行の出力
127
+ //見出し行の出力
131
- excellHelper.HeaderOut("ID")
128
+ excellHelper.HeaderOut("ID")
132
- If(checkbox)
129
+ If(checkbox)
133
- {
130
+ {
134
- excelHelper.HeaderOut("チェック");
131
+ excelHelper.HeaderOut("チェック");
135
- }
132
+ }
136
- }
137
133
  }
134
+ }
138
135
  }
139
-
140
136
  ```
141
137
 
142
138
  試した方法

4

postdataはAとcheckboxのコレクションを持っている配列とします

2016/03/01 04:50

投稿

FitD
FitD

スコア40

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 : Controleer
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
- public ovverride void Generate()
115
+ public ovverride void Generate()
90
- {
116
+ {
91
117
  //データ行の出力
92
118
 
93
- foreach(var sellist in Infs)
119
+ foreach(var sellist in Infs)
94
120
  {
95
- excelHelper.CellOutput(sellist.id)
121
+ excelHelper.CellOutput(sellist.id)
96
- excelHelper.BeginDataLine();
122
+ excelHelper.BeginDataLine();
97
- if(checkbox)
123
+ if(checkbox)
98
- {
124
+ {
99
- excelHelper.CellOutPut(sellist.check);
125
+ excelHelper.CellOutPut(sellist.check);
100
- }
126
+ }
101
- excelHelper.NewRow();
127
+ excelHelper.NewRow();
102
- }
128
+ }
103
129
 
104
- //見出し行の出力
130
+ //見出し行の出力
105
- excellHelper.HeaderOut("ID")
131
+ excellHelper.HeaderOut("ID")
106
- If(checkbox)
132
+ If(checkbox)
107
- {
133
+ {
108
- excelHelper.HeaderOut("チェック");
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を間違えていた箇所を修正

2016/03/01 04:42

投稿

FitD
FitD

スコア40

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,7 @@
1
1
  初めて質問させていただきます。
2
2
 
3
3
  チェックボックスの値を取得し、trueフラグによってExcel帳票に出力する判定を行う処理を作成しています。
4
- ところが、cshtmlからチェックボックスの判定を取得しよとしたところ、viewでは取得できますが、
4
+ ところが、cshtml(view)からチェックボックスの判定を取得しよとしたところ、index(Model)取得できますが、出力用のプログラムで必ずfalseになってしまいます。
5
- 出力用のプログラムで必ずfalseになってしまいます。
6
5
  おそらくプロパティの取得の仕方に問題があるのではないかと思うのですが、いろんな方法を試してみましたが、勉強不足のためかうまくいきませんでした。
7
6
 
8
7
  言語:C#(ASP.NET Framework4.5 MVC)

2

{の不足があった個所を修正

2016/02/29 03:02

投稿

FitD
FitD

スコア40

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

タグの追加

2016/02/29 02:50

投稿

FitD
FitD

スコア40

title CHANGED
File without changes
body CHANGED
File without changes