Report Fetch方法未拾取报表上的第一个值
我再次与另一个报告查询。。。 我以前遇到过这个问题并解决了这个问题,但是在检查了现有的报告后,我看不出哪里出了问题,所以希望其他人能够对此提供帮助 基本上,我有一个和其他报告一样的报告,有两个标题和一个主体部分,还有一些静态字段作为可编程部分。收割台和可编程部分正常,并按预期运行。body部分中的数据来自ProdBOM表中的字段,该表与我用作数据源的主表之间存在关系。这两个都是我报告中的数据源 我已经在fetch方法中输入了以下代码Report Fetch方法未拾取报表上的第一个值,report,reporting,axapta,microsoft-dynamics,ax,Report,Reporting,Axapta,Microsoft Dynamics,Ax,我再次与另一个报告查询。。。 我以前遇到过这个问题并解决了这个问题,但是在检查了现有的报告后,我看不出哪里出了问题,所以希望其他人能够对此提供帮助 基本上,我有一个和其他报告一样的报告,有两个标题和一个主体部分,还有一些静态字段作为可编程部分。收割台和可编程部分正常,并按预期运行。body部分中的数据来自ProdBOM表中的字段,该表与我用作数据源的主表之间存在关系。这两个都是我报告中的数据源 我已经在fetch方法中输入了以下代码 public boolean fetch() { Pr
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;
}
结果是,第一页的正文部分没有数据,但后面的页面正文中有数据,这有什么原因吗?
确定指定的数据源是否已获取新值
自从上次调用QueryRun.next方法以来
您的IF子句是否导致跳过第一个过程
或者,是因为您立即调用了“element.newPage()”吗?在创建报表时,是否存在一个在创建新页面之前应首先填充数据的现有页面
如果您不知道的话,我在AX中的报告能力就弱了。您在第一次
发送之前显式调用元素.newPage()
,这会创建一个空白页
控制变量将实现以下功能:
boolean newPage = false;
...
if (newPage)
element.newPage();
else
newPage = true;
谢谢你的帮助。这部分取决于newPage()函数。为了解决这个问题,我按照Jan的建议在IF中添加了一个子句,这样只有当循环选择了一个新的uniqueID时,才会打印一个新页面。
我还必须将ProductionBom部分替换为可编程部分,以便在第一次通过时获取它,最后按如下方式修改while select语句
while select _prodBom where _prodBom.ProdId == _logisticsControlTable.ProdId
{
if(_logisticsControlTable.ProdId == _prodBom.ProdId)
{
element.send(_prodBom);
}
element.execute(1);
}
好了,首先调用函数,然后调用元素。newpage
等等。您好,谢谢您的建议,主要是newpage();欢迎来到堆栈溢出!虽然这段代码片段可能会解决这个问题,包括如何以及为什么解决这个问题的解释,以提高您的文章的质量。记住,你是在将来回答读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。
//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;
}