gpt4 book ai didi

c# - 跟踪账户余额和信息

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:42 28 4
gpt4 key购买 nike

我正在使用 MVVM 和 LinqToSql 开发一个简单的财务应用程序。我正在尝试找出构建数据的最佳方式。这是我所拥有的(已简化):

帐号

  • 帐户 ID (PK)
  • 帐号
  • AccountBalance(返回交易列的总和)
  • 事务(实体集)

我正在努力显示给定帐户的交易列表,但遇到了一些麻烦。我想做的是显示按日期分组的交易。为此,我使用了允许分组的 LongListSelector 控件。控件的数据源如下:

var transByDate = from trans in App.ViewModel.AllTransactions
trans by trans.TransDate.ToString("d") into t
t.Key ascending
new Transaction<Transaction>(t.Key, t);

this.lls_transByDate.ItemsSource = transByDate;

这行得通,我看到我的组标题有日期,下面有当天的交易数据。

我遇到的问题是在每个日期的标题中显示每日余额。我如何构建我的数据,以便按日期轻松访问帐户余额,但可以更新(如果用户返回 2 周并对现有交易进行更改)。

编辑我想看到的内容:

[2011 年 10 月 2 日 -------------- 753.23 美元]

交易 1 - 杂货 - 30.00 美元

[2011 年 10 月 1 日 -------------- 723.23 美元]

银行 - 车辆 - $400.00

商店 - 杂货店 - 35.00 美元

[2011 年 9 月 31 日 -------------- $288.23]

等等

最佳答案

在我的 Transaction<T> 内类,我添加了另一个名为 TransAmount 的属性.因此,当从上面的代码块调用构造函数时,它的作用如下。

public Transaction(string transDate, IEnumerable<T> items)
{
DateTime tmpDate = DateTime.Parse(transDate);

var deposits = from t in App.ViewModel.AllTransactions
where t.TransDate <= new DateTime(tmpDate.Year, tmpDate.Month, tmpDate.Day, 23, 59, 59, 999)
where t.TransType == (int)TransType.Deposit
select t.TransAmount;

var withdrawals = from t in App.ViewModel.AllTransactions
where t.TransDate <= new DateTime(tmpDate.Year, tmpDate.Month, tmpDate.Day, 23, 59, 59, 999)
where t.TransType == (int)TransType.Withdrawal
select t.TransAmount;

decimal total = (deposits.Sum() - withdrawals.Sum());

this.TransAmount = total;
this.TransDate = transDate;
this.Items = new List<T>(items);
}

然后我只需将我的 XAML 绑定(bind)到该属性。也许有一种更简洁的方法来执行此操作,但我认为重新计算余额比将余额存储在数据库中更简洁。

关于c# - 跟踪账户余额和信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7638994/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com