2017-04-14 73 views
1

我試圖修改報表生成器報表(Visual Studio 2013),它不顯示四個表達式。下面的字段是這樣編碼的,工作起來很棒!報表生成器未顯示IIF結果

=First(Microsoft.VisualBasic.Interaction.IIF(Fields!ISPASS.Value = "Y", "YES", "NO"), "DataSet1") 

然而,我有其他4個字段編碼完全相同的方式,但具有不同的字段值是這樣的:

=First(Microsoft.VisualBasic.Interaction.IIF(Fields!ISSUCCESSFUL.Value = "Y", "YES", "NO"), "DataSet1") 

即不顯示「YES」或「NO」。在這個特定的領域,我提供了一個「N」。這裏是RB snipit其中PASS表達的偉大工程:

enter image description here

下面是從這份報告我PDF的一部分:

enter image description here

下面是數據看起來像這些問題與我有問題(不要擔心拼寫錯誤,EXCEPTIONAL拼寫錯誤,這不是問題):

enter image description here

這裏是用來填充XSD文件中的C#代碼:

if (result.Any()) { 
    foreach (var item in result) { 
    dtResult.Rows.Add(new object[] { 
     item.FULLNAME.ToUpper(), item.STORENUM, item.SSID, item.EVALDATE, 
     item.EVALYEAR, item.ISEXEPTIONAL, item.ISHIGHSUCCESS, 
     item.ISSUCCESSFUL, item.ISUNSUCCESS, item.ISPASS, 
     item.JUSTIFICATION, item.OVERALPERFORMANCE,item.SUPERCOMMENT, 
     item.curManager.ToUpper(), item.empType, item.questionNo, 
     item.questionDescript, item.questionShortTitle, item.questionPass, 
     item.questionComment 
    }); 
    } 
} 

這裏是我的XSD佈局:

enter image description here

我知道這不是一件容易的事,以弄清楚什麼是錯誤的,但是看我提供給報告的數據看起來很好。如果沒有人有任何想法,那麼我想我將不得不在Crystal Reports中重寫這個東西,並從那裏(?)進行。

+0

就像一個淘汰過程一樣,您是否嘗試過僅僅傾銷字段值而不是使用表達式,只是爲了確保傳遞給報告的數據正是您期望的那樣? –

+0

我嘗試了下面這樣的事情,那是什麼意思? = First(Fields!ISEXEPTIONAL.Value,「DataSet1」) – Craig

+0

這就是我的意思。你有沒有得到預期的「n」或「y」? –

回答

0

就像消除過程一樣,您是否嘗試過僅僅傾銷字段值而不是使用表達式,以確保傳遞到報告的數據正是您期望的那樣?

它看起來像是你的數據集是問題。嘗試創建一個表,並將數據集中的所有字段拖到它們上面。然後,您應該能夠確切地看到來自數據的內容。