2015-10-02 69 views
0

我希望這裏有人能夠幫我解決一個Crystal Reports問題,這個問題一直在關閉和關閉好幾天。Crystal Reports - 使用報表數據作爲Sql命令參數

我有一份報告用作我們倉庫員工的揀貨單,告訴他們哪些產品需要打包,以便通過我們的銷售系統進行每項訂單。

該報告包含訂單的所有產品以及需要打包在報告的詳細信息部分中的數量,這些數據來自多個連接表。

我的問題是,我必須再次查詢數據庫,以便獲取訂單上每個產品的總數量,這些數量已包裝在整個倉庫的所有訂單中。 報表數據源僅返回與採​​購單上的訂單相關的記錄,所以我需要一個子查詢。

我試圖使用一個SQL命令用下面的查詢:

SELECT ISNULL(SUM(QtyPacked), 0) 
    FROM tblPackingSlipLines 
    WHERE Status = 'Packed' 
    AND ProductId = '[ProductId]' 

我卡在經過product id到命令,因爲它是在文本字段舉行報告本身是從tblProducts.ProductId填入(連接表之一)。

是否可以從命令中訪問此值?

我已經嘗試過像ProductId = '{tblProducts.ProductId}', @ProductId, ?ProductId之類的東西以及許多其他奇怪而奇妙的排列。

我無法使用參數,因爲這需要用戶交互;不可能,因爲報告是由Windows服務自動生成的或從服務中傳入靜態值。

我還用一個公式嘗試,但只有拉回的QtyPacked總和爲獨特的命令行,而不是所有的包裝訂單的DB:

SUM('{tblPickingSlipLines.QtyPacked}', '{tblProducts.ProductId}') 

任何幫助將不勝感激。

+0

使用SQL相同的SQL查詢表達式字段,不在SQL命令中。對於productid使用SQL字段名稱('ProductId = tblProducts.ProductId') - 並將整個語句放入parens(...)'中。 – Arvo

回答

0

嘗試使用子報告來達到此目的。

寫子報告您的第二個查詢並通過tblProducts.ProductId通過子報表鏈接子報表的記錄選擇參數現在查詢進來分報告:

SELECT ISNULL(SUM(QtyPacked), 0) 
    FROM tblPackingSlipLines 
    WHERE Status = 'Packed' 
    AND ProductId = {pm-product ID} 
相關問題