2014-10-16 85 views
1

(把這個放在這裏,因爲我找不到答案不在StackExchange上,並且讓我瘋狂。如果你有更好的答案,我會很樂意接受它的。)如何確定Crystal報表中是否存在自定義Ufl?

我遇到了在我們的應用程序需要檢查Crystal Report中是否存在UFL之前,嘗試打印報告以便爲Ufl設置數據庫並在將來(在將來)在我們開始廢棄UFL時向用戶發出警告。我需要的是一種確定報告公式是否稱爲UFL的方法。

+1

+1雖然我不知道你的問題(或答案),但總能看到用戶發佈他們自己想出的解決方案。 – Ryan 2014-10-16 17:53:07

回答

0

答案在於,雖然直接訪問使用的論壇不在報表文檔對象中,但公式的原始文本可在ReportDocument.DataDefinition.FormulaFields中找到。從那裏可以執行文本搜索以查看Ufl名稱是否出現。我建立了從繼承的ReportDocument並添加以下方法ReportDocumentWrapper.cs類:

public bool IsCustomUflPresent 
{ 
    get 
    { 
    return this.DataDefinition.FormulaFields.Cast().Any(x => x.Text.Contains("CustomUfl(")); 
    } 
} 

雖然檢查仍然要小於與100多個字段中的文本搜索報告半秒不應該被認爲是高性能,所以在使用這個特別大規模的報告時要小心!