2012-12-20 131 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

試圖改變這一點 - 它的工作立即對我來說