2012-08-30 26 views
0

我有一個要求取決於所選參數的表字段應該顯示爲文本或日期。例如,如果用戶選擇一個真,那麼作爲日期時間類型的OriginDate字段應該在報告中顯示爲日期,否則應該顯示爲文本。我試着創建一個公式,並像下面這樣做,然後將公式放在報告的詳細信息部分,但由於返回的數據類型不同,它不起作用。返回不同的數據類型晶體公式

if {?Mailmerge}=true then 
ToText({Travel.OriginDatetime}, "M/d/yy") 
else 
{Travel.OriginDatetime} 

有沒有一種方法可以讓我accompalish上述要求,這樣我就不會最終創造200報告一個與現場顯示爲文本和其他如日期?

+1

日期以文字方式顯示;你想要完成什麼? – LittleBobbyTables

+0

沒有上述不工作,因爲Travel.OriginDatetime是數據庫中的數據類型爲datetime的字段。所以當我嘗試保存公式時,它給了我一個錯誤,說明Travel.OriginDatetime行需要一個字符串。我在上面添加了它,以瞭解我試圖達成的目標。 – developer

+0

對不起,我還是不明白。如果它們作爲日期存儲在數據庫中,那麼將日期顯示爲字符串有什麼意義?你是否試圖以不同的方式格式化日期? – LittleBobbyTables

回答

3

嘗試創建一個返回你的領域作爲字符串totext({Travel.OriginDateTime},"M/d/yy")的公式,並與原有的領域{Travel.OriginDateTime}覆蓋它並有條件地取消他們的基礎上{?MailMerge}這樣,只有一個在報告中表示的任何一個實例的值。

+0

完美!非常感謝你Ryan。感謝您對此的幫助。 – developer

1

如果我跟着你,你只想顯示M/d/yy?MailMerge是真的,否則yo要顯示完整日期?

不能顯示相同的配方在不同的數據類型,所以只要條件語句的兩個部分將它們轉換成字符串:

if {?Mailmerge}=true then 
ToText({Travel.OriginDatetime}, "M/d/yy") // 8/30/12 
else 
ToText({Travel.OriginDatetime}, "M/d/yy hh:mm:ss") // 8/30/12 02:06:00 

我不知道究竟你的日期看起來像在數據庫,但您可以根據?MailMerge參數將上述內容用作格式化日期的指導。

+0

上述內容將兩者都轉換爲文本。我只想在Mailmerge爲true時將其轉換爲文本,否則顯示爲日期字段。我知道我不能在同一個公式中顯示不同的數據類型,但有沒有其他方法可以實現這一點? – developer

+0

你甚至試過看它是如何輸出的嗎? – LittleBobbyTables

+0

是的,即使它被格式化爲水晶中的日期,它也會導出爲日期時間字段以便excel導出。 – developer