/// <summary> /// 指定された年月の家計データを返す。 /// </summary> /// <param name="month"></param> /// <returns></returns> public MonthlyData GetMonthlyData(DateTime month) { MonthlyData data = new MonthlyData(); data.month = month; data.spendings = new List<Payments>(); data.existSpendingData = false; data.incomes = new List<Payments>(); data.existIncomeData = false; data.commentSplitCharacter = this.GetCommentSplitCharacter(); int nKindOfSpending = this.GetNumberOfKindOfSpendings(); string[] kindOfSpendingList = this.GetKindOfSpendingList(); for (int iKindOfSpending = 0; iKindOfSpending < nKindOfSpending; iKindOfSpending++) { List<Payment> paymentList = new List<Payment>(); _command.CommandText = @"select * from 支出"; _command.CommandText += @" where 年月='" + month.ToString("yyyy/MM") + @"'"; _command.CommandText += @" and 費用項目ID=" + (iKindOfSpending + 1); using (SQLiteDataReader reader = _command.ExecuteReader()) { while (reader.Read() == true) { paymentList.Add(new Payment(int.Parse(reader["金額"].ToString()), reader["説明"].ToString())); } } if (paymentList.Count > 0) { data.spendings.Add(new Payments(kindOfSpendingList[iKindOfSpending], paymentList)); data.existSpendingData = true; } else { data.spendings.Add(new Payments(kindOfSpendingList[iKindOfSpending], null)); } } int nKindOfIncome = this.GetNumberOfKindOfIncomes(); string[] kindOfIncomeList = this.GetKindOfIncomeList(); for (int iKindOfIncome = 0; iKindOfIncome < nKindOfIncome; iKindOfIncome++) { List<Payment> paymentList = new List<Payment>(); _command.CommandText = @"select * from 収入"; _command.CommandText += @" where 年月='" + month.ToString("yyyy/MM") + @"'"; _command.CommandText += @" and 費用項目ID=" + (iKindOfIncome + 1); using (SQLiteDataReader reader = _command.ExecuteReader()) { while (reader.Read() == true) { paymentList.Add(new Payment(int.Parse(reader["金額"].ToString()), reader["説明"].ToString())); } } if (paymentList.Count > 0) { data.incomes.Add(new Payments(kindOfIncomeList[iKindOfIncome], paymentList)); data.existIncomeData = true; } else { data.incomes.Add(new Payments(kindOfIncomeList[iKindOfIncome], null)); } } return data; }
/// <summary> /// 指定された月の家計簿データを表示する。 /// </summary> /// <param name="month"></param> private void DrawMonthlyData(DateTime month) { // 初期設定情報に記載された月の家計簿データをDBから読み込む。 _monthlyData = _dataManager.GetMonthlyData(month); _isMenuOpened = false; int nKind = 0; switch (_spendingOrIncome) { case 0: // 支出 _kindOfAmountList = _dataManager.GetKindOfSpendingList(); nKind = _dataManager.GetNumberOfKindOfSpendings(); break; case 1: // 収入 _kindOfAmountList = _dataManager.GetKindOfIncomeList(); nKind = _dataManager.GetNumberOfKindOfIncomes(); break; default: break; } _settings.month = month; this.listBox_AmountsDetail.Visible = false; this.SetTooltipProperties(); this.SetButtonProperties(); }