0

有谁知道如何做到这一点。我用谷歌搜索了它,但它是 2010 年的旧教程视频,似乎与如何操作的正确说明不匹配。我正在使用 2012。我想添加一个复制按钮,然后单击一条记录,单击复制并让它添加一条新记录,其默认值来自您选择的记录。

4

1 回答 1

0

在我的应用程序中,我跟踪销售报价。我有能力对报价进行修改。为此,我有一个按钮来创建一个新的修订,该修订从复制以前的修订开始。

你没有提到你使用的是哪种语言。我使用的是 VB.NET,但大部分代码都是非常简单的东西,只是声明和赋值,所以你应该能够很容易地将它翻译成 C#。将关键字替换为Methis您就大功告成了。

在我的按钮_Execute()代码中,我首先制作要复制的记录的本地副本:

'Create a quote object to hold the quote to be revised
Dim CurrentRev As Quote
CurrentRev = Me.qQuoteByFirm.SelectedItem

然后我在数据库中添加一条新记录:

'Add a new quote entity to the database
Me.qQuoteByFirm.AddNew()

并复制相关信息:

'Copy the necessary relevant values to the new quote
Me.qQuoteByFirm.SelectedItem.QuoteNumber = CurrentRev.QuoteNumber
Me.qQuoteByFirm.SelectedItem.RepFirm = CurrentRev.RepFirm
Me.qQuoteByFirm.SelectedItem.Customer = CurrentRev.Customer
Me.qQuoteByFirm.SelectedItem.QuoteStatus = CurrentRev.QuoteStatus

如果记录中的每个值都是单个值,这将复制当前选定的记录。如果一个值与另一个表有关系并包含多条记录,则需要遍历该值。

例如,以上只是我报价的一般信息。我还与报价行项目表有关系。每个报价都有几个行项目,所有这些都需要复制。所以我需要遍历每个行项目并创建一个副本。

'Duplicate all associate quote line items
For Each item In CurrentRev.QuoteLines
    Me.qLineItemsByQuoteID.AddNew()
    Me.qLineItemsByQuoteID.SelectedItem.ItemNo = item.ItemNo
    Me.qLineItemsByQuoteID.SelectedItem.ProductQty = item.ProductQty
    Me.qLineItemsByQuoteID.SelectedItem.Description = item.Description
    Me.qLineItemsByQuoteID.SelectedItem.SellPrice = item.SellPrice
    Me.qLineItemsByQuoteID.SelectedItem.PartNo = item.PartNo
Next
于 2014-01-09T14:26:18.060 回答