我們正在使用沒有子報表的數據集獲取正確的水晶報表輸出。但它不適用於子報表嗎? 如何通過在vb.net中編碼來使用數據集傳遞水晶報表的子報表參數值? 我們使用MSACCESS作爲後端Crystal報表在使用數據集的子報表中傳遞參數
請幫
我們正在使用沒有子報表的數據集獲取正確的水晶報表輸出。但它不適用於子報表嗎? 如何通過在vb.net中編碼來使用數據集傳遞水晶報表的子報表參數值? 我們使用MSACCESS作爲後端Crystal報表在使用數據集的子報表中傳遞參數
請幫
進出口你問不知道到底是什麼,但這裏是設置一個創建,制定並通過PARAMS到水晶報表
負載的方式從您的數據庫中提取標準數據集。 使用DateSet.WriteXmlSchema創建一個Xml架構。 使用visal studio工具Xsd.exe創建一個類型安全的DataSet。 將其導入到您的項目中。 從數據庫中將數據加載到新的類型安全數據集中,並將其設置爲報告數據源。
下面的代碼,那麼您可以把params
Private Sub foo()
Dim parameterValues As New ParameterValues()
parameterValues.Add("MyValue")
MyDataSourceName.DataDefinition.ParameterFields("MyParamName").ApplyCurrentValues(parameterValues)
End Sub
我希望這有助於
您可以使用您要使用的數據的DataTable作爲數據設置或者完全相同設置如下代碼工作沒有任何問題。
的ReportDocument cryRpt =新衆議員
ortDocument();
Cls_Bl_CalibrationHeader clCalibrationHeader = new Cls_Bl_CalibrationHeader();
ParameterFieldDefinitions crParameterFieldDefinitions;
ParameterFieldDefinition crParameterFieldDefinition;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
DataTable DT = null;
reportPath = "\\Report.rpt";
cryRpt.Load(reportPath);
DT = clClassName.M_GetByIDDate(sqlStr);
cryRpt.SetDataSource(DT);
DT = clClass.GetSubReportInfo();
cryRpt.OpenSubreport("SubReport").SetDataSource(DT);
crParameterDiscreteValue.Value = 1;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["Parameter", "SubReport"];
crParameterFieldDefinition.CurrentValues.Clear();
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.DisplayGroupTree = false;
crystalReportViewer1.Refresh();
:d我面臨着同樣的問題,然後我發現,如果你之前主要設置一個數據集子報表是那麼好。