AX 2012 SSRS报告可见性问题

时间:2012-12-20 20:42:54

标签: reporting-services ssrs-2008 axapta dynamics-ax-2012

在我的报告中,数据正被插入我的临时表中。问题是数据没有显示在报告上。我也删除了所有隐藏和可见性表达式。

这是ProjInvoiceReport。我添加了第二个数据集,需要为一个字段插入多个值。数据正在插入到表中,但是当我将字段放在报表上的表格控件(正确的数据集)中时......没有出现任何内容!

在ProjInvoiceDP类中,我添加了一个get方法

[
    SRSReportDataSetAttribute(tableStr(ProjInvoiceServiceOrderTmp))
]
public ProjInvoiceServiceOrderTmp getProjInvoiceServiceOrderTmp()
{
    select * from projInvoiceServiceOrderTmp;
    return projInvoiceServiceOrderTmp;
}

和initTempTable方法

    public void initTempTableFromSMAServiceOrder(ProjTable  _projTable, ProjInvoiceId 
    _projInvoiceId)
    {
    SMAServiceOrderLine serviceOrderLine;
    ProjEmplTrans       projEmplTrans;
    ProjItemTrans       projItemTrans;

    iProjInvoiceId = _projInvoiceId;

ttsBegin;
delete_from projInvoiceServiceOrderTmp where projInvoiceServiceOrderTmp.ProjInvoiceId ==
iProjInvoiceId;
ttsCommit;

while select serviceOrderLine
    join projEmplTrans
    where serviceOrderLine.ProjTransId == projEmplTrans.TransId
        && serviceOrderLine.ProjId  ==  _projTable.ProjId
{
    if(projEmplTrans.invoiceId() == iProjInvoiceId)
    {
        projInvoiceServiceOrderTmp.clear();
        projInvoiceServiceOrderTmp.ServiceOrderId       = serviceOrderLine.ServiceOrderId;
      //  projInvoiceServiceOrderTmp.ShowFieldTicketInfo  = #True;
        projInvoiceServiceOrderTmp.ProjInvoiceId = iProjInvoiceId;
        projInvoiceServiceOrderTmp.insert();
    }
}

while select serviceOrderLine
    join projItemTrans
    where serviceOrderLine.ProjTransId == projItemTrans.ProjTransId
        && serviceOrderLine.ProjId  ==  _projTable.ProjId
{
    if(projItemTrans.invoiceId() == iProjInvoiceId)
        {
            projInvoiceServiceOrderTmp.clear();
            projInvoiceServiceOrderTmp.ServiceOrderId       = serviceOrderLine.ServiceOrderId;
          //  projInvoiceServiceOrderTmp.ShowFieldTicketInfo  = #True;
            projInvoiceServiceOrderTmp.ProjInvoiceId = iProjInvoiceId;
            projInvoiceServiceOrderTmp.insert();
        }
    }

}

在projInvoiceTmp.insert()之前的最后一个insertIntoProjInvoiceTmp中调用initTempTable方法。之前曾在此报告中工作过的人在同一区域调用了initTempTableFromProjTable。

在fetch方法中调用insertIntoProjInvoiceTmp。 processReport调用fetch方法。

对这个问题有什么想法?

2 个答案:

答案 0 :(得分:0)

你是否暂时使表TempDB成功?

您是否正确更改了ProjInvoiceDP课程,制作了新方法?

[SRSReportDataSetAttribute(tableStr(MyTmp))]
public MyTmp getMyTmp()
{
    select myTmp;
    return myTmp;    
}

答案 1 :(得分:0)

这可能是由众所周知的问题引起的:

如果客户端显示设置未设置为100%,则仅显示某些字段。

请参阅this Microsoft technote

尝试改变这一点 - 它立即为我工作