2012-12-20 57 views
0

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

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

在ProjInvoiceDP I类添加了一个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(); 
     } 
    } 

} 

的initTempTable方法是在projInvoiceTmp.insert之前非常结束()调用在insertIntoProjInvoiceTmp。之前从事此报告工作的人员在同一区域中称他们的initTempTableFromProjTable。

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

有什么想法是什么问题?

+0

什么报告,这是? – Neil

+0

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

+0

当你说第二个数据集时,这个数据集是如何被选中的? AX与SSRS存在奇怪的整合。我相信它不仅仅是一个简单的select *,因为我浏览了它从中选择的tmp表,并且有时候有更多的数据,而不仅仅是报告中显示的数据。有时它还包含我以前运行报告的数据。 – Neil

回答

0

您是否临时创建表TempDB?

您是否对ProjInvoiceDP类进行了适当的更改,制定了新的方法?

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

是的 - 也奇怪的是ProjInvoiceTmp表是一个常规表。 Visual Studio不允许我为第二个数据集创建TempDB表。 由于它被迫成为一个常规表,我可以看到报表运行时插入的数据。 – user1623156

0

这可以通过一个众所周知的问题造成的:

如果客户端显示设置没有被设置为100%,某些字段只是没有显示。

this Microsoft technote

试图改变这一点 - 它的工作立即对我来说