職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

本格アプリの作り方-その6/新機能のコーデング

2020年04月05日 | VB2017
-----家計簿アプリに集計機能のコーデング---

【開発環境】
os:Windows 10 (64ビット)
IDE(統合開発環境):VisualStudio 2017及び2019
言語;VB

【参考書】
株式会社秀和システム「作って覚えるVisualBasic2017」
著者:萩原 博之/宮崎 昭世

【画面デザイン】



【集計表示デザイン】
①集計表示タブをクリックし、DataGridViewコントロールを貼る

②データソースの選択
DataGridViewコントロールのスマートタグをクリックし、次に[データソースの選択]の↓ボタンをクリックし、「他のデータソース」-「プロジェクトデータソース」-「SummaryDataSet」-「SunDataTable」を選ぶ

③データセットが表示される


【コード】
Form1.vbに下記の関数を追加する。
Public Class Form1

'------------------------------
'データ集計
'------------------------------
Private Sub CalcSummary()
'変数宣言
Dim expression As String

'データセットの初期化
SummaryDataSet.SunDaTaTable.Clear()

'forループ文
For Each drMoney As MoneyDataSet.moneyDataTableRow _
In MoneyDataSet.moneyDataTable
expression = "日付='" _
+ drMoney.日付.ToShortDateString() _
+ "'"
'データの型変換 CType()
Dim curDR() As SummaryDataSet.SunDaTaTableRow _
= CType(SummaryDataSet.SunDaTaTable.Select(expression),
SummaryDataSet.SunDaTaTableRow())
'if文
If curDR.Length = 0 Then
'if文
If (CType(CategoryDataSet1.CategoryDataTable.Select _
("分類='" & drMoney.分類 & "'"),
CategoryDataSet.CategoryDataTableRow())(0).入出金分類 = "入金") Then
SummaryDataSet.SunDaTaTable.AddSunDaTaTableRow(
drMoney.日付, drMoney.金額, 0)

ElseIf (CType(CategoryDataSet1.CategoryDataTable.Select _
("分類='" & drMoney.分類 & "'"),
CategoryDataSet.CategoryDataTableRow())(0).入出金分類 = "出金") Then
SummaryDataSet.SunDaTaTable.AddSunDaTaTableRow(
drMoney.日付, 0, drMoney.金額)
End If

Else
If (CType(CategoryDataSet1.CategoryDataTable.Select _
("分類='" & drMoney.分類 & "'"),
CategoryDataSet.CategoryDataTableRow())(0).入出金分類 = "入金") Then
curDR(0).入金合計 += drMoney.金額

ElseIf (CType(CategoryDataSet1.CategoryDataTable.Select _
("分類='" & drMoney.分類 & "'"),
CategoryDataSet.CategoryDataTableRow())(0).入出金分類 = "出金") Then
curDR(0).出金合計 += drMoney.金額
End If
End If
Next
End Sub
'-----------------------------------------------------------------------------
'イベントハンドラ
'----------------------------------------------------------------------------
[集計表示]タブのイベントハンドラ


Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged
CalcSummary()
End Sub

[表示]-[一覧表示]

Private Sub 一覧表示LToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 一覧表示LToolStripMenuItem.Click
TabControl1.SelectedTab = tabList
End Sub

[表示]-[集計表示]
Private Sub 集計表示SToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 集計表示SToolStripMenuItem.Click
TabControl1.SelectedTab = tabSummary
End Sub

End Class

以上

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 本格アプリの作り方-その5/新... | トップ | SQLite入門 »
最新の画像もっと見る

コメントを投稿

VB2017」カテゴリの最新記事