我已经摆弄了这个问题一段时间,似乎无法找到解决方案。我正在研究另一个人最初编写的代码,我的工作是让它工作,因为他没有完成它的可能性。
我创建了一个名为MpasMthSalesIndex的EDT,其数组元素包含所有月份,1月 - 12月。
我从表单调用下面的方法(位于MpasItemSales数据源中)以获取返回的数组,如下所示:
[MpasMthSalesIndex] = MpasItemSales.MthSales(Year(today())-2);
给我错误:“操作数类型与运算符不兼容”
它不起作用。这是原始代码的原因,我已经尝试了所有我能想到的东西来恢复这个数组。谁知道我怎么做到这一点?
这是我打电话的方法:
我所做的是初始化MpasMthSalesIndex Ret,并用值填充它并尝试返回它,这里没有错误,但是当我尝试从我需要它的表单中将它分配给MpasMthSalesIndex时出现错误... < / p>
MpasMthSalesIndex MthSales(Yr _yr)
{
int i;
int m;
date d = SystemDateGet();
date e;
Qty YrSales[366];
MpasMthSalesIndex ret;
;
switch(_yr)
{
case(Year(d)) : [YrSales] = this.MpasSalesCurYr;
d = dateStartYr(d);
break;
case(Year(PrevYr(d))) : [YrSales] = this.MpasSalesPrevYr;
d = dateStartYr(PrevYr(d));
break;
case(Year(PrevYr(PrevYr(d)))) : [YrSales] = this.MpasSalesPrev2Yr;
d = dateStartYr(PrevYr(PrevYr(d)));
break;
case(Year(PrevYr(PrevYr(PrevYr(d))))) : [YrSales] = this.MpasSalesPrev3Yr;
d = dateStartYr(PrevYr(PrevYr(PrevYr(d))));
break;
}
e = dateEndYr(d);
while (d<e)
{
i = DayOfYr(d);
m = MthOfYr(d);
ret[m] += YrSales[i];
d++;
}
return ret;
}
答案 0 :(得分:2)
电话
[MpasMthSalesIndex] = MpasItemSales.MthSales(Year(today())-2);
期望一个容器作为返回值,如:
int a, b, c;
[a, b, c] = [1, 2, 3]
尝试编辑方法以返回容器:
return [ret];