Genexus:在 For Each 中使用集合变量

Genexus: Use of Collection Variable in For Each

在 For Each 命令中使用变量集合时出现错误:

For each
   where itemId in &items
   ...
   ...
   ...
EndFor

其中&items是属性itemId的集合变量

我怎样才能让它发挥作用?

提前致谢。

&items: varchar
&oneItem: varchar
&colItems: numeric - collection: true

&items = '1,2,3,4,5,6,7....'

For &oneItem In &items.SplitRegEx(',')
    &colItems.Add(&oneItem.ToNumeric())
EndFor 

For each
   where itemId in &colItems
   ...
   ...
   ...
EndFor

Pablo,你遇到了什么错误?

我怀疑 ItemId(基于其名称)不属于 itesm.item 类型,应该是那种类型。 &Items 项目集合 &Item 定义为 &items.item

for &Item in &items()
    &Item.Id
endfor

请查看此 link 以获取更多信息:https://wiki.genexus.com/commwiki/servlet/wiki?8585,For%20In%20Array%2FCollection%20Command

古斯塔沃

如果有错误信息就好了。

语法对我来说似乎没问题,假设您正在尝试从 table 中检索与 &items 集合中的值匹配的记录。

For each where itemId in &items ... ... ... EndFor

巴勃罗, 我看不出任何错误。您的代码没问题...但是,&Items 的定义可能是错误的。请检查 ITEMS 是否是 ItemId 类型的 var 并且它也是一个集合。

Program....: PabloForIn.wbp

&colItemId: VarChar(40) - 集合:true

*/

活动开始 &colItemId.add('3') &colItemId.add('7')

EndEvent //开始

事件加载 对于每个//项目 &ColItemId

中的 ItemId
    &ItemId     = ItemId //Grid of &ItemsId
    load
EndFor

EndEvent //加载

我附上3张图片 1 变量 &ColItemId 必须是 Collection

2 个对象

3 运行