按銳浪文檔描述,
- Grid++Report 在內部這樣約定:當子報表在運行時,子報表中的參數會自動從主報表中同名的參數或記錄集字段中取值。利用這點特性,就可以讓子報表根據主報表的當前數據獲取子報表的數據。如果在子報表中應用參數化的查詢SQL語句,並讓應用到的參數與主報表中的參數或記錄集字段同名,這樣就自動實現了主子報表的數據關聯。
- 另也可以在子報表的 Initialize 與 FetchRecord 報表事件中編寫程序代碼實現主子報表關聯,在事件代碼中可以獲取主報表的數據,如報表參數與字段的值,這些值可以設置到子報表上,如根據主表上的這些值作為參數獲取子報表的記錄集數據。
子報表參數可以自動獲取主報表同名的參數的值,實際情況是沒有取值。還好可以寫腳本
if (Report.ParentReport != null) { for (var i = 0; i < Report.Parameters.count; i++) { if (Report.ParentReport.ParameterByName(Report.Parameters.ItemAt(i+1).Name) != null) { Report.ParameterByName(Report.Parameters.ItemAt(i+1).Name).AsString = Report.ParentReport.ParameterByName(Report.Parameters.ItemAt(i+1).Name).AsString; } } }
把腳本放至“初始化腳本”里面即可實現子報表參數獲取父報表同名參數值