gpt4 book ai didi

c# - 在 UI 中对行进行分组并在 C# 中插入两个表

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:12:06 37 4
gpt4 key购买 nike

我目前正在开发一个程序,它应该根据表格的选择来创建发票和添加行。

这是我的表(使用 DevExpress 创建):

enter image description here

这些是以公司 ID 作为引用的 future 发票行。

我想对 future 按钮“创建发票”做的是为每个选定的 ID 创建 1 个发票,并将所有选定的行添加到 invoicelines 表中。

我的表是:

发票

发票编号

公司编号

发票行

身份证

发票编号

标题....

根据我的示例图片,我想要的结果是:

2 张发票,每张发票都添加了 2 行


问题是我不知道如何在我的代码中处理这个问题。

我目前有:

private void btn_ExportToDB_ItemClick(object sender, ItemClickEventArgs e)
{
List<int> PWIDs = new List<int>();
List<int> distinct = new List<int>();
Dictionary<int, int> lines = new Dictionary<int, int>();
if (gridView.SelectedRowsCount > 0)
{

for (int i = gridView.SelectedRowsCount - 1; i >= 0; i--)
{

int rowHandle = gridView.GetSelectedRows()[i];

int PWID = int.Parse(gridView.GetRowCellValue(rowHandle, "pwID_PW").ToString());
PWIDs.Add(PWID);
lines.Add(rowHandle, PWID);
MessageBox.Show("customer id " + PWID);

distinct = PWIDs.Distinct().ToList();

}
foreach (int value in distinct)
{

}
}
}

我尝试执行以下操作:

1- 创建一个字典,我将选定的行句柄 + pwID 放入其中。

2- 之后,我遍历我的字典并选择不同的 pwID 值(这些用于我的发票)。

3- 此后,我一直在处理我的发票行,我似乎无法将其添加到我的发票行表中,因为我认为我处理此问题的设计是错误的。

我怎样才能以最有效的方式解决这个问题?

最佳答案

如果您可以从屏幕截图中的选择列表中返回整个工单对象,那么您可以运行一段代码,如下所示;

    public List<Invoice> CreateInvoices(IEnumerable<Ticket> selectedTickets)
{
// Group tickets by company id
return selectedTickets.GroupBy(ticket => ticket.CompanyId)
// Convert grouping into new Invoice objects
.Select(g => new Invoice
{
// Build invoice object
CompanyId = g.Key,
// Build invoice lines
InvoiceLines = g.Select(line => new InvoiceLine() {Title = line.Title}).ToList()
}).ToList();
}

这将返回一个 IEnumerable of Invoices,每个 Invoices 中包含多个 InvoiceLines。

关于c# - 在 UI 中对行进行分组并在 C# 中插入两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47180847/

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