【支出タブ】
レイアウト
![]() |
|
![]() |
画面項目
No. | 名称 | ID | テキスト | 属性 | align | 種別 | 備考 |
---|---|---|---|---|---|---|---|
1 | 登録ボタン | BtnEntry | 登録 | Button | |||
2 | 追加ボタン | BtnAddRow | + | Button | |||
3 | 支出DGV | DgvExpense | DataGridView | ||||
3-1 | 日付列 | ColDate | 日付 | 文字列 | 左 | DataGridViewTextBoxColumn | YYYY-MM-DD |
3-2 | 名称列 | ColName | 名称 | 文字列 | 左 | DataGridViewTextBoxColumn | |
3-3 | 種別列 | ColType | 種別 | 文字列 | 中 | DataGridViewTextBoxColumn | 種別※1のみ |
3-4 | 金額列 | ColCost | 金額 | 数値 | 右 | DataGridViewTextBoxColumn | Z,ZZ9 |
3-5 | 備考列 | ColNote | 備考 | 文字列 | 左 | DataGridViewTextBoxColumn |
イベント
- 初期表示
-
- DBファイルから読み込んだ支出情報を支出DGVへ表示する.
- DBファイルから読み込んだ支出情報が0件の場合,支出DGVは0行とする.
- 支出DGVの最終行までスクロールして,最終行の日付列のセルを選択状態とする.
- 登録ボタン押下
-
-
支出DGVが0行の場合,警告ダイアログを表示して処理を終了する.
-
警告:レコードが1件もありません.
-
警告:レコードが1件もありません.
- 支出DGVの支出情報をDBファイルへ出力する(すべての列が空白でない行のみを対象とする).
- DBファイルへの書き出しに失敗した場合,エラーダイアログを表示して処理を終了する.
-
このとき,エラーとなった行まで支出DGVをスクロールして,該当行を選択状態とする.
No. 条件 メッセージ 1 支出DGVの日付列の値が日付形式でない 日付が正しくありません。 2 支出DGVの種別列の値が不正 種別が正しくありません。 3 支出DGVの金額列の値が数値でない 金額が正しくありません。 4 支出DGVの金額列の値がマイナス 金額がマイナスです。 5 支出DGVの金額列の値が大き過ぎる 金額が大き過ぎます。 6 DBファイルへの書き出しに失敗する(DBファイルがロックされているなど) DBファイル登録エラー: {0} 3-1.登録ボタンを押下 3-2.エラーダイアログ 3-3.該当行が選択状態となる -
DBファイルへの書き出しが成功した場合,各タブを初期化してOKダイアログを表示する.
-
登録完了:正常に登録しました.
-
登録完了:正常に登録しました.
-
支出DGVが0行の場合,警告ダイアログを表示して処理を終了する.
- 追加ボタン押下
-
- 支出DGVの末尾に新しく30行追加する.
-
新しく追加された行の日付列にはシステム日付(YYYY-MM-DD)を初期値として設定する.
4-1.追加ボタン押下 4-2.行が追加される
- 支出DGVのセル編集終了(CellEndEdit)
-
- 編集したセルが名称列ならば,種別と金額の自動補完を行う.
- 編集したセルが種別列ならば,金額の自動補完を行う.
- 入力された名称が既に支出情報に登録されているなら,種別もそれと同じだろうという推測に基づく.
- 金額は名称と種別の組み合せで直近3件の金額のどれかの可能性が高いだろうという推測に基づく.
-
種別の具体的な補完手順は以下の通り.
- DBファイルから読み込んだ支出情報で編集したセルの名称と同じ支出情報をすべて取得する.
※支出DGVに現在表示されている支出情報でないことに注意 - 取得した支出情報が0件の場合,編集したセルの行の種別列を空白に設定する.
- 取得した支出情報が1件以上の場合,それらを種別ごとにグループ分けする.
- グループ分けした中で件数が最大の種別を編集したセルの行の種別列に設定する.
- 件数が最大の種別が複数存在する場合,それらをすべて空白で区切って編集したセルの行の種別列に設定する.
- DBファイルから読み込んだ支出情報で編集したセルの名称と同じ支出情報をすべて取得する.
-
種別の自動補完の例を以下に示す.
5-1.DBファイルの支出情報 5-2-1.「おにぎり」は「食費」が1件のみ 5-2-2.「食費」で補完される 5-3-1.「カレー」は「食費」が2件,「外食費」が1件 5-3-2.「食費」で補完される 5-4-1.「うどん」は「食費」と「外食費」が2件ずつ 5-4-2.「食費」と「外食費」が空白区切りで補完される -
金額の具体的な補完手順は以下の通り.
- DBファイルから読み込んだ支出情報のうち,編集したセルの名称 + 種別の組み合せに当てはまる支出情報をすべて取得する.
※支出DGVに現在表示されている支出情報でないことに注意
- DBファイルから読み込んだ支出情報のうち,編集したセルの名称 + 種別の組み合せに当てはまる支出情報をすべて取得する.
- 取得した支出情報が0件の場合,編集したセルの行の金額列を空白に設定する.
- 取得した支出情報が1件以上の場合,日付の新しい順に上位3件の金額を取得する.
- 取得した金額で重複は一つにまとめる(SQLでのDISTINCT).
- 取得した金額を"/"で区切って編集したセルの行の金額列に設定する.
※金額はカンマ編集する -
金額の自動補完の例を以下に示す.
6-1.DBファイルの支出情報 6-2-1.「おにぎり」+「食費」は1件のみ 6-2-2.「100」で補完される 6-3-1.「おにぎり」+「外食費」は2件 6-3-2.日付の新しい順に「300/200」で補完される 6-4-1.「カレー」+「外食費」は4件 6-4-2.日付の新しい順の3件で補完される 6-5-1.「うどん」+「食費」は直近3件の金額がすべて同じ 6-5-2.一つにまとめて「100」で補完される 6-6-1.「うどん」+「外食費」は1件目と3件目の金額が同じ 6-6-2.同じ金額は一つにまとめられる
- 支出DGV上でのキー押下(KeyDown)(Ctrl+V)
-
- 押下されたキーがCtrl+V(ペースト)の場合,現在選択されてるセルにクリップボードの値をペーストする.
- 現在選択されているセルが名称列の場合,ペースト終了後に種別と金額の自動補完を行う.
- 現在選択されているセルが種別列の場合,ペースト終了後に金額の自動補完を行う.
- 支出DGV上でのキー押下(KeyDown)(Ctrl+8,Ctrl+0)
-
- 押下されたキーがCtrl+8かCtrl+0の場合,範囲選択されているセルの金額列のそれぞれを税込価格に置換して表示する.
- Ctrl+8の場合は税込8%.
- Ctrl+0の場合は税込10%.
- 税込計算のとき小数点以下は四捨五入する.
- 空白や不正な値の金額セルは無視する.
- 範囲選択されているセルに金額列が含まれていない場合は何もしない.
7-1-1.Ctrl+8 7-1-2.税込金額(8%)を計算して表示 7-2-1.Ctrl+0 7-2-2.税込金額(10%)を計算して表示 - 支出DGV上でのキー押下(KeyDown)(Ctrl+T)
-
- 押下されたキーがCtrl+Tの場合,範囲選択されているセルの金額列の値を合計して表示する.
- 空白や不正な値の金額セルは合計に含めない.
- 範囲選択されているセルに金額列が含まれていない場合の合計は0円とする.
8-1-1.範囲選択されているセル 8-1-2.選択範囲内の金額合計を表示 8-2-1.金額列が含まれないとき 8-2-2.合計は0円 - ツールチップの表示
-
- 名称列にマウスオンしたとき,ツールチップを表示する.
- ツールチップには支出情報の備考を表示する.
- 備考のある行は背景色を変更する(#DEFCE7).
9.ツールチップに備考を表示