如何删除PXResultset

时间:2016-12-20 11:18:08

标签: acumatica

我的图表中有以下代码:

foreach (CQPaycheckJournalDtl erredPaycheckJournal in ExistingPaycheckJournalDtl)
            {
                payroll.PaycheckJournalDtls.Delete(erredPaycheckJournal);

            }

ExistingPaycheckJournalDtl是一个PXResultSet,我想更有效,更快地删除它。有没有办法删除PXResultset中的所有元素而不迭代这些项?

1 个答案:

答案 0 :(得分:0)

不是我知道或者另一个解决方案不会执行相同的迭代来删除缓存中结果集的内容。你发布的内容似乎是一个有效/首选的解决方案。

作为替代方案,我们使用PXDatabase删除了数据。删除批量删除。因此,如果您不需要填写PXResultSet或依赖图表的缓存,您可以使用与AP完整性检查过程中的以下示例类似的内容:

PXDatabase.Delete<APHistory>(
new PXDataFieldRestrict("VendorID", PXDbType.Int, 4, vend.BAccountID, PXComp.EQ),
new PXDataFieldRestrict("FinPeriodID", PXDbType.Char, 6, minPeriod, PXComp.GE)
);

只需搜索&#34; PXDatabase.Delete&#34;在Acumatica源代码中有很多例子。请注意PXConnectionScope和PXTransactionScope与PXDatabase调用的使用。另请注意,Dmitry提到使用PXDatabase调用时会忽略属性。使用PXDatabase有其特殊用例,所以要小心。