[英]How to programmatically change a Crystal Reports formula from Crystal Syntax to Basic Syntax - in Visual Studio 2005
我想以編程方式在很多報告中更改公式,就像在這個問題中一樣 ,但是我還需要在Crystal語法和Basic語法之間更改公式。 我在對象模型中看不到任何方法。 可能嗎?
即我有一個名為“ Period”的公式,該公式已在許多報告中存在,並且當前已在Crystal Syntax中定義。 我想將公式設置為“基本語法”並提供公式的更新文本。 我不需要自動將當前的定義從crystal轉換為basic。 我已經有了新的公式文本。
如果僅瀏覽所有報告,將其打開,然后設置FormulaFieldDefinition的Text屬性,則公式仍將設置為“水晶語法”,並且無法正確評估。 目前,我唯一的解決方案是手動打開每個報表,編輯公式,將下拉菜單從“ Crystal語法”更改為“基本語法”。
這個http://msdn.microsoft.com/zh-cn/library/ms225743%28VS.80%29.aspx說,Crystal語法和Basic語法支持公式-它不自動接受它們嗎? 還是要在這兩種語法之間轉換?
我相信@CodeByMoonlight確認此功能不可用。 因此,對於與我同舟共濟且有許多報告要更新的任何人:請享受這一手動過程,希望您永遠不必變回原定!
您可以像這樣遍歷報表對象模型。 只需更改公式和公式名稱即可。
public ReportDocument GetReport(DataSet ds)
{
const string formula = "WhileReadingRecords;" +
"<<your formula>>";
ReportDocument report = new InvoiceReport();
report.SetDataSource(ds);
// iterate report objects
foreach (ReportObject ro in report.ReportDefinition.ReportObjects)
{
if ((ro.Kind == ReportObjectKind.FieldObject && ro.Name == "<<FormuleName>>"))
{
((FormulaFieldDefinition) ((FieldObject) o).DataSource).Text = formula;
}
}
return report;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.