2011-08-19 3 views
0

안녕하세요. 내 웹 사이트 페이지에서 mg 보고서를로드하려고 할 때 다른 오류가 발생합니다. 보고서 뷰어를 사용하고 linq을 사용하여 매개 변수를 전달합니다. 코드와 오류.보고 서비스의 내부 연결 오류

보고서 처리 중에 오류가 발생했습니다. 내부 연결에 치명적인 오류가 발생했습니다.

보고서 처리 중에 오류가 발생했습니다. SummaryReport 데이터 세트의 다음 데이터 행을 읽을 수 없습니다. 내부 연결에 치명적인 오류가 발생했습니다. PLS 날 도와

ReportGenerationBL report_worker = new ReportGenerationBL(); 
     IEnumerable<ART.Library.Data.SummaryReport> items=report_worker.getSummaryReport(); 

     rpt_view.Reset(); 


     ReportDataSource[] reportds = new ReportDataSource[2]; 
     reportds[0] = new ReportDataSource("RenewableObj", report_worker.getRenewablePackage()); 
     reportds[1] = new ReportDataSource("SummaryReport", items.Where(a=>a.Title!="No Status")); 

     List<ReportParameter> paramList = new List<ReportParameter>(); 

     paramList.Add(new ReportParameter("p_OldPlanAwaiting", items.Where(a => a.Title == "No Status" && a.Category == 0).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_OldPlanRenewable", items.Where(a => a.Title != "No Status" && a.Category == 0).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_OldPlanRenewed", items.Where(a => a.Title != "No Status" && a.Category == 0 && a.Renewed == 1).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_OldPlanRenewedMSF2", items.Where(a => a.Title != "No Status" && a.Category == 0 && a.Renewed == 1).Sum(a => a.MSFOldPlans).ToString())); 

     paramList.Add(new ReportParameter("p_VoiceAwaiting", items.Where(a => a.Title == "No Status" && a.Category == 3).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_VoiceRenewable", items.Where(a => a.Title != "No Status" && a.Category == 3).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_VoiceRenewed", items.Where(a => a.Title != "No Status" && a.Category == 3 && a.Renewed == 1).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_VoiceRenewedMSF", items.Where(a => a.Title != "No Status" && a.Category == 3 && a.Renewed == 1).Sum(a => a.MSFVoiceOnly).ToString())); 

     paramList.Add(new ReportParameter("p_NoVoiceAwaiting", items.Where(a => a.Title == "No Status" && a.Category == 1).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_NoVoiceRenewable", items.Where(a => a.Title != "No Status" && a.Category == 1).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_NoVoiceRenewed", items.Where(a => a.Title != "No Status" && a.Category == 1 && a.Renewed == 1).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_NoVoiceRenewedMSF", items.Where(a => a.Title != "No Status" && a.Category == 1 && a.Renewed == 1).Sum(a => a.MSFNoVoice).ToString())); 

     paramList.Add(new ReportParameter("p_WithOthersAwaiting", items.Where(a => a.Title == "No Status" && a.Category == 2).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_WithOthersRenewable", items.Where(a => a.Title != "No Status" && a.Category == 2).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_WithOthersRenewed", items.Where(a => a.Title != "No Status" && a.Category == 2 && a.Renewed == 1).Sum(a => a.Counter).ToString())); 
     paramList.Add(new ReportParameter("p_WithOthersRenewedMSF", items.Where(a => a.Title != "No Status" && a.Category == 2 && a.Renewed == 1).Sum(a => a.MSFWithVoice).ToString())); 


     rpt_view.LocalReport.DataSources.Add(reportds[0]); 
     rpt_view.LocalReport.DataSources.Add(reportds[1]); 
     rpt_view.LocalReport.ReportPath = "PrintFile/SummaryReport.rdlc"; 
     rpt_view.LocalReport.SetParameters(paramList); 
     rpt_view.DataBind(); 

있습니다 .. DB의 SQL 기능 getsummary 통화

코드입니다.

public IEnumerable<SummaryReport> getSummaryReport() 
    { 
     IEnumerable<SummaryReport> items = from a in ARTDB.func_SummaryReport() 
              select new SummaryReport { Counter = TryParse.TryParseInt(a.counter), Status = a.status, Title = a.title, SortNo = TryParse.TryParseInt(a.sortno), Category = TryParse.TryParseInt(a.category), Renewed = a.renewed ,MSFNoVoice = a.msfnovoice,MSFOldPlans = a.msfoldplans, MSFVoiceOnly = a.msfvoiceonly, MSFWithVoice = a.msfwithvoice}; 
     return items; 
    } 

이미 데이터베이스에 저장된 함수를 호출합니다. 여기에는 디자이너의 코드가 있습니다.

public IQueryable<func_SummaryReportResult> func_SummaryReport() 
    { 
     return this.CreateMethodCallQuery<func_SummaryReportResult>(this, ((MethodInfo)(MethodInfo.GetCurrentMethod()))); 
    } 
+0

당신이 (getSummaryReport에 대한 코드를 게시 할 수 있습니다)? – saus

+0

완료 코드 추가 – anonymous1110

+0

및 ARTDB.func_SummaryReport()에 대해? – saus

답변

0

이전에는 DataContext.CreateMethodCallQuery를 사용하지 않았지만 지연된 실행을 사용하고 있다고 생각합니다. getSummaryReport()에서 items.ToList()을 돌아보십시오 :

public IEnumerable<SummaryReport> getSummaryReport() 
    { 
     IEnumerable<SummaryReport> items = from a in ARTDB.func_SummaryReport() 
              select new SummaryReport { Counter = TryParse.TryParseInt(a.counter), Status = a.status, Title = a.title, SortNo = TryParse.TryParseInt(a.sortno), Category = TryParse.TryParseInt(a.category), Renewed = a.renewed ,MSFNoVoice = a.msfnovoice,MSFOldPlans = a.msfoldplans, MSFVoiceOnly = a.msfvoiceonly, MSFWithVoice = a.msfwithvoice}; 
     return items.ToList(); // <-- here 
    } 
+0

MAN IT WORKED !! 너의 남자 – anonymous1110

관련 문제