0

本质上,我正在做的是:

  1. 在 SalesLine 表上插入、删除或更新时,我正在检查该行的 ProductCode 并确定是否适用折扣或杂项费用
  2. 我有费用和折扣的查找表
  3. 进行任何更改时,我必须有效地删除折扣/费用,因为新修改的 SalesLine 可能不符合费用/折扣的条件

我有执行上述操作的代码——但有以下副作用:

  • 如果我在 SalesTable 表单的网格中突出显示几行,然后单击工具栏的删除按钮,则会出现错误。
  • 错误似乎是由我的代码删除一些项目引起的,然后表单也试图在代码已删除它们之后删除这些行。

删除父行时删除按代码添加的折扣或费用的最佳方法是什么,如果用户选择相同的行进行删除,不会导致表单崩溃?

在此先感谢,这件事快把我逼疯了

编辑:当缓存的表单记录尝试被删除时,我收到的具体错误是:

无法编辑订单行 (SalesLine) 中的记录。由于另一个用户进程删除记录或更改记录中的一个或多个字段而发生更新冲突。

4

1 回答 1

1

删除折扣或费用最明显的方法added-by-code是将您的表添加到salesLine带有选项的表的删除操作中Cascade。还要在你的桌子上与SalesLinetalbe 建立一个表格关系。这样,您的记录将被自动删除。如果折扣/费用存储为销售线,我不会这样做。

错误消息让我猜测,您在删除销售行时删除了其他销售行:

  1. 删除“真实”销售行时,您会删除折扣或收费行。
  2. 进行多行删除时,#2 行已被#1 行删除,但表单缓冲区尚未更新,删除失败。这实际上是错误消息告诉您的内容,自从表单读取记录以来,一行已更新。

删除问题的更新:

  1. SalesLine删除方法中删除您的代码。
  2. 创建一组稍后要删除的recId,填充到salesLine数据源删除方法中。
  3. 如果集合不为空,则稍后删除这些行(可能来自活动方法)。
于 2011-10-31T09:02:29.560 回答