1

これに対する解決策が見つからないようです。レポートの Fetch メソッドを変更して、queryRun が変更され、新しい ID がフェッチされると、while ループが最初からやり直され、新しいページが表示され、2 つの要素が実行されるようにしました。この部分は正常に機能しますが、次の部分は機能しません。各 ID には、Element.Execute(); を使用しているレコードがいくつかあります。および element.Send(); プロセスへ。最初の ID が選択され、レポートの要素 (本文) が実行され、要素が期待どおりに送信されますが、while ループは次の ID に進みません。

コードは次のとおりです。

public boolean fetch()
{
    APMPriorityId           oldVanId, newVanId;
    LogisticsControlTable   lLogisticsControlTable;
    int64                   cnt, counter;
    ;

    queryRun = new QueryRun(this);

    if (!queryRun.prompt() || !element.prompt())
    {
        return false;
    }

    while (queryRun.next())
    {
        if (queryRun.changed(tableNum(LogisticsControlTable)))
        {
            lLogisticsControlTable = queryRun.get(tableNum(LogisticsControlTable));
            if (lLogisticsControlTable)
            {
                info(lLogisticsControlTable.APMPriorityId);
                cnt      = 0;
                oldVanId =  newVanId;
                newVanId =  lLogisticsControlTable.APMPriorityId;

                if(newVanId)
                {
                    element.newPage();
                    element.execute(1);
                    element.execute(2);
                }
            }

            if (lLogisticsControlTable.APMPriorityId)

            select count(recId) from lLogisticsControlTable where lLogisticsControlTable.APMPriorityId == newVanId;
            counter = lLogisticsControlTable.RecId;

            while select lLogisticsControlTable where lLogisticsControlTable.APMPriorityId == newVanId
            {
                cnt++;

                if(lLogisticsControlTable.APMPriorityId == newVanId && cnt <= counter)
                {
                    element.execute(3);
                    element.send(lLogisticsControlTable);
                }
            }
        }
    }
    return true;
}
4

1 に答える 1

0

aと alLogisticsControlTableの両方のターゲットとして使用しています。ただし、これら 2 つの使用法は干渉します。制御する SQL カーソルは 2 つあります。queryRun.get()while select

2 つの異なるレコード変数を使用します。

于 2012-04-10T17:26:06.883 に答える