首页 > 解决方案 > powerapps 和 Sharepoint 列出了 500 多个项目

问题描述

我正在使用此代码尝试将 500 多个项目添加到包含约 1800 行的 SharePoint 列表的集合中。为什么集合只显示前 500 个项目?我在powerusers.microsoft.com上看到了代码,人们接受了它的工作。也许问题是我在 SharePoint 上使用数字字段而不是 CDS 上的大整数。

ClearCollect( HundredChart, { Number: 1 }, { Number: 2 }, { Number: 3 }, { Number: 4 }, { Number: 5 
 }, { Number: 6 }, { Number: 7 });
UpdateContext({firstrecord: First(LargeSPList)});
UpdateContext({lastrecord: First(Sort(LargeSPList,ID,Descending))});
UpdateContext({maxiter: RoundUp((lastrecord.ID-firstrecord.ID)/500,0)});

ClearCollect(iter,
AddColumns(AddColumns(Filter(HundredChart,Number<=maxiter),"min",(Number-1)*500),"max",Number*500)
);

Clear(datasource_temp);
ForAll(iter,

  Collect(datasource_temp,
  Filter(LargeSPList,ID >= firstrecord.ID + min && ID < firstrecord.ID + max)) 

)

标签: powerapps

解决方案


这似乎有效。关键是我们不能将 ID 用作整数字段,也不能使用计算字段。因此,我设置了一个新的数字字段 ID_Val。

   Set(
   firstRecord,
   First(LargeTestList)
   );
Set(
lastRecord,
First(
    Sort(
        LargeTestList,
        ID_Val,
        Descending
    )
)
);
Set(
iterationsNo,
RoundUp(
    (lastRecord.ID_Val - firstRecord.ID_Val) / 500,
    0
  )
 );
ClearCollect(iterations, Sequence(iterationsNo,0));
Clear(datasource_temp);
ForAll(
iterations,
With(
    {
        prevThreshold: Value(Value) * 500,
        nextThreshold: (Value(Value) + 1) * 500
    },
    If(
        lastRecord.ID_Val > Value,
        Collect(
            datasource_temp,
            Filter(
                LargeTestList,
                ID_Val > prevThreshold && ID_Val <= nextThreshold
            )
        )
    )
    )
);

推荐阅读