[英]How to pass formula field value in Crystal Report to my Form in C#?
[英]Crystal Reports - How to pass Formula Field text to SubReport in C#?
我在主報表中有一個名為SubReport1
,它收到一個名為SubReportFormula1
的公式字段。
要將這樣的值傳遞給主報告,我只需要設置:
ReportDocument Report = new ReportDocument();
Report.Load(RPTPath);
Report.DataDefinition.FormulaFields["MainReportFormula1"].Text = "'Hello'";
crystalReportViewer1.ReportSource = Report;
即使我想在SubReport中設置參數值,也很容易:
Report.SetParameterValue("SubReportParam1", "value 1", "SubReport1");
題:
如何使用C#(Visual Studio 2017)中的Crystal Reports傳遞在SubReport中定義的公式字段?
要將值從子報表傳遞回主報表,您將需要使用在具有共享范圍的公式字段中聲明的變量。 在Crystal Report中,變量可以具有3個不同的作用域之一(本地,全局和共享)。 局部變量只能在同一節中使用,全局變量的范圍跨節,但子報表和主報表之間只能使用共享變量。
要創建變量,您將需要在子報表中創建一個新的公式字段。 該公式字段將需要一個類似於以下內容的公式:
Shared StringVar foo;
foo := {@FormulaFieldName};
此公式將創建一個名稱為“ foo”的String類型變量,並使用另一個名為“ FormulaFieldName”的公式字段中的值填充該變量。 如果需要String以外的其他數據類型,則可以用NumberVar或Crystal支持的任何其他數據類型聲明替換StringVar文本。 很少需要String或Number數據類型。
要在主報告中訪問此變量,您將需要在主報告中創建另一個新的公式字段。 此新公式字段將需要類似於以下內容的公式:
Shared StringVar foo;
此公式字段將檢索名為“ foo”的String變量,並顯示先前存儲在該變量中的值。
如果需要將值與報表中的另一條數據連接或合並,還可以在公式中添加其他代碼行。
但是,需要注意這些變量。 子報表必須位於報表的使用變量值的任何部分之前打印的部分中。 如果將檢索“ foo”值的公式放在子報表所在的節之前的節中,則尚未為“ foo”分配值,它將被視為NULL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.