2016-07-27 136 views
1

如何在表中添加兩列。在這種情況下什麼是正確的表達。 被告知我有兩個數據集(Extra Deduction,Checklist),這兩個數據集有數字列值,如何用不同的數據集添加這兩列。如何在不同數據集(SSRS)中添加兩列

這些步驟我做了(可以幫助它): -

  • 打開Visual Studio - 新建項目 - 在Business Intelligence部分我選擇了報告服務。
  • 然後右鍵單擊報告文件夾,然後我選擇「添加新報告」。
  • 然後在報告嚮導中,我設置數據源名稱「DataSource1」並選擇「Microsoft Dynamics CRM Fetch」連接類型。
  • 在查詢生成器中,我把XML查詢帶來我想要的數據,它包含兩列(參考編號,扣除值),數據集名稱是(DedctionDS)。
  • 然後,我在表格中添加了一列以從另一個數據集中獲取另一個值。
  • 然後,我用XML查詢創建了第二個名爲(ChkListDS)的數據集,以帶來兩列(參考編號,檢查列表值)。
  • 在表中的新列中,我創建了一個表達式來從其他數據集中獲取值,表達式爲(= Lookup(Fields!DedctionRefNo.Value,Fields!ChkListRefNo.Value,Fields!ChecklistValue.Value,「ChkListDS」 ))。

到現在爲止數據是完美的,但我現在需要在(扣除值)和(檢查表值)之間進行求和,他們在不同的數據集中。

請看下面的圖片來知道我在做什麼。

1

我希望我解釋得很好。

在這方面的任何幫助將不勝感激。

謝謝..

+0

你真的需要更詳細地解釋這一點。首先解釋你正在談論的概念(數據集?)是如何相互關聯的。並檢查這是否是項目的真名。另一個想法是將圖片嵌入到問題中 - 避免爲此提供鏈接。 – OzrenTkalcecKrznaric

+0

Mr. OzrenTkalcecKrznaric,我使用Visual Studio 2012創建SSRS報告(商業智能),並且在我的項目中創建了2個數據集,然後插入一張表來查看數據,就像您在圖片中看到的一樣,我只需要知道表達式將第1列與第2列添加到不同的數據集中。我希望我解釋清楚你需要知道什麼。我有你的想法。謝謝... –

+0

我會再試一次:你真的必須解釋你做了什麼。你跳過添加報告(你是怎麼做到的?)。另一件事是你是如何將表連接到數據源的?如果你解釋了這一點,你至少會部分回答你的問題:表中只能有一個數據集。最後,爲了改善你自己的問題 - 編輯它,不要只是添加評論。 – OzrenTkalcecKrznaric

回答

1

如果是相同的數據源(最好是SQL Server)的,我會建議你使用SQL連接創建一個數據集。但是,這似乎存在問題,因此您必須使用另一種策略。

我在另一個項目(而不是我的代碼)中看到的是,您可以使用一個數據源作爲主數據源,並且該數據源的每一行查找另一個數據源中的匹配行。這需要SSRS中的Lookup()函數,並且您明顯發現它是關聯兩個數據集的方式。

您現在唯一需要做的事情是從您使用查找功能收到的值中獲取數字,並將其添加到您選擇的列中。

你開始表達是:

= Lookup(
    Fields!DedctionRefNo.Value, 
    Fields!ChkListRefNo.Value, 
    Fields!ChecklistValue.Value, 
    "ChkListDS") 

要將其轉換爲十進制表示(我希望這是你在數據庫中源),你需要CDEC()函數:

= CDec(Lookup(
    Fields!DedctionRefNo.Value, 
    Fields!ChkListRefNo.Value, 
    Fields!ChecklistValue.Value, 
    "ChkListDS")) 

,最後,你要與你的第一個值添加它,如:

= CDec(Lookup(
    Fields!DedctionRefNo.Value, 
    Fields!ChkListRefNo.Value, 
    Fields!ChecklistValue.Value, 
    "ChkListDS")) 
    + Fields!{Your-deduction-value-field-name} 

如果你扣數據庫中的值字段不是十進制數,也必須使用相同的CDec()函數將其轉換爲十進制數。

+0

非常感謝,但我得到了#Error說:**警告1 [rsRuntimeErrorInExpression] textrun的值表達式'Textbox38.Paragraphs [0] .TextRuns [0]'包含一個錯誤:從字符串「ر.س 。24,500.00「鍵入'Decimal'無效**告知」ر.س.「意味着「SAR」是貨幣。最好的問候 –

+0

Mr. OzrenTkalcecKrznaric,你的答案是完美的,我不能直接連接到數據庫,因爲我在線使用MS CRM,而關於錯誤我認爲這是因爲貨幣格式。我會盡力找到解決問題的方法。無論如何,非常感謝我的讚賞。 –

+0

您的問題是您正在以顯示格式接收數據,而不是接收可以使用普通算術運算操作的原始數字數據。如果你能以某種方式獲得數字而不是格式化的數據(它應該如何),它就會起作用。這樣你必須首先解析字符串,然後將其轉換爲數字,然後執行加法。這是非常醜陋的做法,但它可能是您唯一的選擇。 – OzrenTkalcecKrznaric

相關問題