获取方法不拾取第一个值的报告(Fetch Method Not Picking Up First V

2019-10-16 16:13发布

我再次与另一报表查询......我已经遇到此之前并解决问题,但在检查现有的报表,我不能看到我错了,所以希望别人看着这将能够帮助.. 。

基本上,我有一个像任何其他报告,有两个头和主体部分,以及一些静态字段可编程部分。 如预期的头和可编程部分是精细和运行。 正文部分中的数据来自ProdBOM表中的字段,并且有这个表,我使用我的数据源主表之间的关系。 这两者都是在我的报告的数据源。

我有输入下面的代码到抓取方法;

public boolean fetch()
{
    ProdBom                 _prodBom;
    LogisticsControlTable   _logisticsControlTable;
    ;

    queryRun = new QueryRun(this);

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

    while (queryRun.next())
    {
        if (queryRun.changed(tableNum(LogisticsControlTable)))
        {
            _logisticsControlTable = queryRun.get(tableNum(LogisticsControlTable));
            if(_logisticsControlTable)
            {
                element.newPage();
            }
            this.send(_logisticsControlTable);

            if(_logisticsControlTable.ProdId)
            {
                while select _prodBom where _prodBom.ProdId == _logisticsControlTable.ProdId
                {
                    element.send(_prodBom);
                }
            }
        }
    }
    return true;
}

其结果是,在第一页的主体部分没有数据,但下面的页面在体内有数据,没有任何理由为什么发生这种情况?

Answer 1:

您明确要求element.newPage()第一之前send ,这将创建一个空白页。

控制变量将这样的伎俩:

boolean newPage = false;    
...    
if (newPage)
    element.newPage();
else
    newPage = true;


Answer 2:

QueryRun.Changed():

确定指定数据源是否已经取出,因为到QueryRun.next方法最后一次调用一个新的价值。

是您的IF子句导致第一遍跳过?

或可替换地,是不是因为你叫“element.newPage()”,对吗? 有一个现有的页面创建报表时,你应该用数据创建一个新的页面之前先填写?

我在AX报告,如果你不能告诉弱。



Answer 3:

谢谢您的帮助。 这是部分下降到NEWPAGE()函数。 要解决此问题,我添加了一个子句的IF为扬建议,这样,当环路拿起一个新的UNIQUEID一个新的页面时,才会打印。 我也不得不更换ProductionBom部分为可编程的,从而在第一遍回升,终于ammending的,而select语句如下:

while select _prodBom where _prodBom.ProdId == _logisticsControlTable.ProdId
{
    if(_logisticsControlTable.ProdId == _prodBom.ProdId)
    {
        element.send(_prodBom);
    }
    element.execute(1);
}


Answer 4:

//Started with Classdeclaration
Boolean = newpage;

/*Second step would be your after debugging it depends on your
  report/design which method is going to call. Mine was Fetch.
  So, take a look.*/

newpage = true,

/*Third step would be execution part; there you just need to put
  'if' condition.*/

If(newpage==false)
{
    element.newpage();
}
else
{
  newpage=false;
}

你去那里,首先调用的函数,然后element.newpage等。



文章来源: Fetch Method Not Picking Up First Value On Report