簡體   English   中英

Crystal Reports-如何在C#中將“公式字段”文本傳遞給SubReport?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM