3

我已经摆弄了这个问题一段时间,似乎无法找到解决方案。我正在编写另一个人最初编写的一些代码,我的工作是让它工作,因为他没有机会完成它。

我创建了一个名为 MpasMthSalesIndex 的 EDT,其中包含所有月份的数组元素,即 Jan - Dec。

我从表单调用下面的方法(位于 MpasItemSales 数据源中)以获取返回的数组,如下所示:

[MpasMthSalesIndex] = MpasItemSales.MthSales(Year(today())-2);

给我错误:“操作数类型与运算符不兼容”

它不起作用。这就是原始代码,我已经尝试了所有我能想出的方法来返回这个数组。有谁知道我该怎么做?

这是我调用的方法:

我所做的是初始化 MpasMthSalesIndex Ret,并用值填充它并尝试返回它,这里没有错误,但是当我尝试从我需要它的表单将它分配给 MpasMthSalesIndex 时出现错误...

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;
}
4

1 回答 1

2

通话

[MpasMthSalesIndex] = MpasItemSales.MthSales(Year(today())-2);

期望一个容器作为返回值,如:

int a, b, c;
[a, b, c] = [1, 2, 3]

尝试编辑返回容器的方法:

return [ret];
于 2012-10-24T15:50:26.177 回答