問題描述:調用水晶報表時報錯,錯誤信息為無效索引。 (異常來自 HRESULT:0x8002000B (DISP_E_BADINDEX))
問題出現的代碼位置:SetDataSource
問題解決辦法:檢查報表用到的字段是否包含在對應的Dataset中,如果沒有則會提示上面的錯誤
問題解決過程:
1、根據代碼判斷是水晶報表的問題,但是使用其它報表文件不報錯,因此可以初步判定不是水晶報表的BUG,而是報表文件的問題;
2、根據第1步,判斷是報表文件的問題,於是將重建報表模板參照報錯報表,但是依然報錯;
3、根據第2步,判斷是報表文件內容有錯,於是刪除所有數據庫字段項報錯,但是依然報錯;
4、根據第3步,檢查傳遞報表參數是否完整最終發現缺少參數,添加問題解決
其他導致原因:
1.參數字段傳值與報表參數不對應(缺少必填項、參數傳遞過多、參數不對應等)
2.dataset模板更新不及時,導致取值與模板不一致
3.公式字段報錯