質問編集履歴
2
誤字
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,169 +14,159 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
|
17
|
+
/// <summary>
|
18
18
|
|
19
|
-
///
|
19
|
+
/// CSV出力ボタン押下時
|
20
20
|
|
21
|
-
/// </summary>
|
21
|
+
/// </summary>
|
22
22
|
|
23
|
-
p
|
23
|
+
private void CSV_Output_Click(object sender, EventArgs e)
|
24
24
|
|
25
25
|
{
|
26
26
|
|
27
|
-
// Da
|
27
|
+
// SaveFileDialogを作成する
|
28
28
|
|
29
|
-
Da
|
29
|
+
SaveFileDialog result = new SaveFileDialog();
|
30
30
|
|
31
|
+
result.Title = "ファイルを保存する";
|
32
|
+
|
33
|
+
// 初期表示時のディレクトリを指定
|
34
|
+
|
35
|
+
result.InitialDirectory = @"C:\Users\Admin\Downloads";
|
36
|
+
|
37
|
+
// ファイル名を指定し取得する
|
38
|
+
|
39
|
+
result.FileName = @"ForOutput.csv";
|
40
|
+
|
41
|
+
// 選択できるファイルの種類を指定する
|
42
|
+
|
43
|
+
result.Filter = "CSV (カンマ区切り)|*.csv";
|
44
|
+
|
45
|
+
// ファイル出力(保存)ダイアログ表示
|
46
|
+
|
31
|
-
|
47
|
+
DialogResult FileOutput = result.ShowDialog();
|
32
48
|
|
33
49
|
|
34
50
|
|
35
|
-
//
|
51
|
+
// //「保存」ボタンが押された時の処理
|
36
52
|
|
37
|
-
string ConnectionString = ConfigurationManager.ConnectionStrings["OracleDB"].ConnectionString;
|
38
|
-
|
39
|
-
|
53
|
+
if (FileOutput == DialogResult.OK)
|
40
|
-
|
41
|
-
try
|
42
54
|
|
43
55
|
{
|
44
56
|
|
45
|
-
//
|
57
|
+
//指定されたファイルのパスを取得する
|
46
58
|
|
47
|
-
|
59
|
+
string fileName = result.FileName;
|
48
60
|
|
49
|
-
|
61
|
+
}
|
50
62
|
|
51
|
-
|
63
|
+
else if (FileOutput == DialogResult.Cancel)
|
52
64
|
|
53
|
-
|
65
|
+
{
|
54
66
|
|
55
|
-
//
|
67
|
+
//「キャンセル」ボタンまたは「×」ボタンが選択された時の処理
|
56
68
|
|
57
|
-
|
69
|
+
return;
|
58
70
|
|
59
|
-
|
71
|
+
}
|
60
72
|
|
61
|
-
SQL.AppendLine(" TS.tana_cd,");
|
62
73
|
|
63
|
-
SQL.AppendLine(" MT.tana_nm,");
|
64
74
|
|
65
|
-
|
75
|
+
// 保存用のファイルを開く ( ファイルパス )( ファイル名 ) (文字コード指定)
|
66
76
|
|
67
|
-
S
|
77
|
+
using (StreamWriter writer = new StreamWriter(result.FileName, false, Encoding.GetEncoding("shift_jis")))
|
68
78
|
|
69
|
-
|
79
|
+
{
|
70
80
|
|
71
|
-
|
81
|
+
//DataGridViewの列を取得
|
72
82
|
|
73
|
-
|
83
|
+
int rowCount = DataGrid.Rows.Count;
|
74
84
|
|
75
|
-
SQL.AppendLine(" TS.QUANTITY,");
|
76
|
-
|
77
|
-
SQL.AppendLine(" MI.unit_name,");
|
78
|
-
|
79
|
-
SQL.AppendLine("TS.memo");
|
80
|
-
|
81
|
-
SQL.AppendLine("FROM t_stock TS");
|
82
|
-
|
83
|
-
SQL.AppendLine(" inner join m_tana MT");
|
84
|
-
|
85
|
-
SQL.AppendLine(" on TS.tana_cd = MT.tana_cd");
|
86
|
-
|
87
|
-
SQL.AppendLine(" inner join m_item MI");
|
88
|
-
|
89
|
-
SQL.AppendLine(" on TS.item_cd = MI.item_cd");
|
90
|
-
|
91
|
-
SQL.AppendLine("WHERE");
|
92
|
-
|
93
|
-
SQL.AppendLine("0 = 0");
|
94
|
-
|
95
|
-
//ここ!!
|
96
|
-
|
97
|
-
SQL.AppendLine(" and TS.in_out_date BETWEEN " + "'" + InOutFromDate.Value.ToString("yyyy/MM/dd") + "'");
|
98
|
-
|
99
|
-
SQL.AppendLine(" and" + "'" + InOutToDate.Value.ToString("yyyy/MM/dd") + "'");
|
100
|
-
|
101
|
-
if (
|
85
|
+
if (DataGrid.AllowUserToAddRows == true)
|
102
86
|
|
103
87
|
{
|
104
88
|
|
89
|
+
// 最後の新規入力用の1行分を差し引く
|
90
|
+
|
105
|
-
|
91
|
+
rowCount = rowCount - 1;
|
106
92
|
|
107
93
|
}
|
108
94
|
|
95
|
+
|
96
|
+
|
97
|
+
// リストの初期化
|
98
|
+
|
99
|
+
List<String> strList;
|
100
|
+
|
101
|
+
strList = new List<String>();
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
// ヘッダ部の出力
|
106
|
+
|
107
|
+
// Columns.Count カルム数ループ
|
108
|
+
|
109
|
-
|
109
|
+
for (int j = 0; j < DataGrid.Columns.Count; j++)
|
110
110
|
|
111
111
|
{
|
112
112
|
|
113
|
+
// カラムのヘッダのテキストをリストに追加
|
114
|
+
|
113
|
-
|
115
|
+
strList.Add(DataGrid.Columns[j].HeaderCell.Value.ToString());
|
114
116
|
|
115
117
|
}
|
116
118
|
|
119
|
+
// 配列へ変換
|
120
|
+
|
121
|
+
String[] strArray = strList.ToArray();
|
122
|
+
|
123
|
+
// CSV 形式に変換 // カンマ区切り
|
124
|
+
|
125
|
+
String strCsvData = String.Join(",", strArray);
|
126
|
+
|
127
|
+
//ヘッダを出力
|
128
|
+
|
129
|
+
writer.WriteLine(strCsvData);
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
// データ部の出力
|
134
|
+
|
135
|
+
// rowCount 行数文ループ
|
136
|
+
|
117
|
-
|
137
|
+
for (int i = 0; i < rowCount; i++)
|
118
138
|
|
119
139
|
{
|
120
140
|
|
141
|
+
// リストの初期化
|
142
|
+
|
143
|
+
strList = new List<String>();
|
144
|
+
|
145
|
+
// Columns.Count カルムの数だけループする
|
146
|
+
|
147
|
+
for (int j = 0; j < DataGrid.Columns.Count; j++)
|
148
|
+
|
149
|
+
{
|
150
|
+
|
151
|
+
// 列と行のテキストをリストに追加
|
152
|
+
|
153
|
+
strList.Add(DataGrid[j, i].Value.ToString());
|
154
|
+
|
155
|
+
}
|
156
|
+
|
157
|
+
// 配列へ変換
|
158
|
+
|
159
|
+
String[] stgArray = strList.ToArray();
|
160
|
+
|
161
|
+
// CSV 形式に変換 // カンマ区切り
|
162
|
+
|
121
|
-
S
|
163
|
+
String stgCsvData = String.Join(",", stgArray);
|
164
|
+
|
165
|
+
//列と行を出力
|
166
|
+
|
167
|
+
writer.WriteLine(stgCsvData);
|
122
168
|
|
123
169
|
}
|
124
|
-
|
125
|
-
SQL.AppendLine("ORDER BY");
|
126
|
-
|
127
|
-
SQL.AppendLine(" TS.tana_cd,");
|
128
|
-
|
129
|
-
SQL.AppendLine(" TS.item_cd,");
|
130
|
-
|
131
|
-
SQL.AppendLine(" TS.in_out_date,");
|
132
|
-
|
133
|
-
SQL.AppendLine(" TS.in_out_type");
|
134
|
-
|
135
|
-
// テーブルソースからデータを取得する
|
136
|
-
|
137
|
-
var DA = new OracleDataAdapter(SQL.ToString(), Connect);
|
138
|
-
|
139
|
-
// SQL文の結果をDaTaTableに格納する
|
140
|
-
|
141
|
-
DA.Fill(DT);
|
142
|
-
|
143
|
-
// DataGridViewにDataTableをセット
|
144
|
-
|
145
|
-
DataGrid.DataSource = DT;
|
146
|
-
|
147
|
-
// DB接続解除
|
148
|
-
|
149
|
-
Connect.Close();
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
// DataGridの行数の取得
|
154
|
-
|
155
|
-
int LineCount = (DataGrid.BindingContext[DataGrid.DataSource, DataGrid.DataMember].Count);
|
156
|
-
|
157
|
-
// 3桁区切り制御
|
158
|
-
|
159
|
-
string Delimitern = String.Format("{0:#,##0} ", LineCount);
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
// データ件数に表示
|
164
|
-
|
165
|
-
DataCount.Text = Delimitern;
|
166
|
-
|
167
|
-
}
|
168
|
-
|
169
|
-
// Exception(Oracle Ver.) アプリの実行中に起きるエラーを表す
|
170
|
-
|
171
|
-
catch (OracleException ex)
|
172
|
-
|
173
|
-
{
|
174
|
-
|
175
|
-
// エラーが起きたときにエラーメッセージとスタックトレースを表示させる。(覚えておく)
|
176
|
-
|
177
|
-
string trace = Environment.StackTrace;
|
178
|
-
|
179
|
-
MessageBox.Show("エラーが起きました!" + trace);
|
180
170
|
|
181
171
|
}
|
182
172
|
|
1
編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -158,13 +158,7 @@
|
|
158
158
|
|
159
159
|
string Delimitern = String.Format("{0:#,##0} ", LineCount);
|
160
160
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
161
|
+
|
166
|
-
|
167
|
-
|
168
162
|
|
169
163
|
// データ件数に表示
|
170
164
|
|
@@ -189,3 +183,13 @@
|
|
189
183
|
}
|
190
184
|
|
191
185
|
```
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
出力データ
|
190
|
+
|
191
|
+
![イメージ説明](4a710d45ab89f12b082bfbfe98b77c04.png)
|
192
|
+
|
193
|
+
CSVファイル
|
194
|
+
|
195
|
+
![イメージ説明](c0217db73e54dc8c1806867895424b29.png)
|