是否有比循环数千条记录(大约24k)更快的方法?
代码:
For n = 0 To oCHStockItems.Count - 1
Dim itemSellingPrice As New CH.CH_ItemSellingPrice
With itemSellingPrice
.StockItem = oCHStockItems(n).StockItem
.Code = oCHStockItems(n).StockItem.Code
.Name = oCHStockItems(n).StockItem.Name
.ProductGroupCode = oCHStockItems(n).StockItem.ProductGroup.Code
.CurrentSellingPrice = oCHStockItems(n).StockItem.StockItemPrices(0).Price
.NewSellingPrice = 0D
.LastSellingPriceDate = oCHStockItems(n).LastSellingPriceDate
.OriginalPrice = oCHStockItems(n).OriginalPrice
End With
_itemSellingPrices.Add(itemSellingPrice)
Next
最初我将oCHStockItems
分配给Grid
(它实际上是一个Sage 200网格)但是我似乎无法找到引用字段oCHStockItems(n).StockItem.StockItemPrices(0).Price
的方法。
通常上述类型的语法有效。例如,如果我想引用股票代码,那么它将是StockItem.Code
。
StockItem.StockItemPrices(0).Price
会生成一个值,但它不会显示在网格上。我和Sage记录了一张票,看看他们是否可以提供帮助。
然而,我认为他们会回来并说它无法完成,并且基于这个假设,我可以通过oStockItems
循环并将属性分配给我预定义类的属性。那么考虑到这一点,有没有人建议加快这种过程?
答案 0 :(得分:0)
Sage用一个解决方案回复了我:
首先:
AddHandler dgItems.Items.ItemAdded, AddressOf Items_ItemAdded
然后:
Private Sub Items_ItemAdded(ByVal sender As Object, ByVal args As Sage.Common.Controls.ListItemArgs)
args.Item.SubItems(4).Value = oCHStockItems(args.Item.Index).StockItem.StockItemPrices(0).Price
End Sub
这会快速填充Grid
上的项目。
我所做的就是将原始集合oCHStockItems
分配给网格的.DataSource
,方法Items_ItemAdded
对其余内容进行排序。