4

我想在客戶端模式下使用SQL Server Reporting Services,但有些事情會發飆。 我有兩個表在數據庫「IEPL_Attendance_DB」: 員工(EmployeeID,EmployeeName)和EmployeeTimeIn(EID,Time_In,Date_Ref,StateFlag) 我想在Windows窗體(Visual Studio 2010中的C#)中顯示報表。該報告應該是下面的查詢結果:在本地報告處理過程中出現錯誤 - C#Windows窗體VS2010

select e1.EID,e.EmployeeName,convert(varchar(5),SUM(e1.HoursConsumed)/3600)+':'+convert(varchar(5),SUM(e1.HoursConsumed)%3600/60)+':'+convert(varchar(5),(SUM(e1.HoursConsumed)%60)) as workingtime, CONVERT(VARCHAR(10),e1.Date_Ref,111) as Date_Ref 
from Employee as e, EmployeeTimeIn as e1 
where e.EmployeeID = e1.EID 
group by e1.Date_Ref,e1.EID,e.EmployeeName; 

我發現這篇文章:http://arcanecode.com/2009/03/23/using-sql-server-reporting-services-in-client-mode/,這一步的過程說明步創建的報告,但是當我運行我的項目,我看到下面的報告窗口錯誤:
一種數據源實例尚未針對該數據源提供EmployeeAttendanceReport

這是我的代碼:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
//Add these to the standard list above 
using System.Data.Sql; 
using System.Data.SqlClient; 
using Microsoft.Reporting.WinForms; 

namespace EmployeeManager 
{ 
public partial class Form1 : Form 
{ 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

     //this.reportViewer1.RefreshReport(); 

     // Set the processing mode for the ReportViewer to Local 
     reportViewer1.ProcessingMode = ProcessingMode.Local; 

     LocalReport localReport = reportViewer1.LocalReport; 
     localReport.ReportPath = @"F:\Muhammad Anees\Time In\WpfApplication1\EmployeeManager\AttendanceReport.rdlc"; 

     DataSet dataset = new DataSet("EmployeeAttendanceReport"); 

     // Get the sales order data 
     GetCustomerOrders(ref dataset); 

     // Create a report data source for the sales order data 
     ReportDataSource dsCustomers = new ReportDataSource(); 
     dsCustomers.Name = "EmployeeAttendanceReport_EmployeeAttendanceReport"; 
     dsCustomers.Value = dataset.Tables["Employee"]; 

     localReport.DataSources.Add(dsCustomers); 

     // Refresh the report 
     reportViewer1.RefreshReport(); 
    } 

    private void GetCustomerOrders(ref DataSet dsNorthwind) 
    { 
     string sqlCustomerOrders = "SELECT e1.EID" 
      + " ,e.EmployeeName" 
      + " ,CONVERT(VARCHAR(10),e1.Date_Ref,111) as Date_Ref" 
      + " ,convert(varchar(5),SUM(e1.HoursConsumed)/3600)+':'+convert(varchar(5),SUM(e1.HoursConsumed)%3600/60)+':'+convert(varchar(5),(SUM(e1.HoursConsumed)%60)) as workingtime" 
      + " FROM Employee as e, EmployeeTimeIn as e1" 
      + " WHERE e.EmployeeID=e1.EID" 
      + " GROUP BY e1.Date_Ref,e1.EID,e.EmployeeName"; 

     SqlConnection connection = new 
      SqlConnection("Data Source=AZEEMPC; " + 
         "Initial Catalog=IEPL_Attendance_DB; " + 
         "Trusted_Connection = true;"); 

     SqlCommand command = 
      new SqlCommand(sqlCustomerOrders, connection); 

     SqlDataAdapter EmployeeAttendanceReportAdapter = new 
      SqlDataAdapter(command); 

     EmployeeAttendanceReportAdapter.Fill(dsNorthwind, "EmployeeAttendanceReport"); 

    } 
} 
} 

說明:
1. SQL查詢工作正常,我可以在sql server management studio中看到輸出這個查詢。
2.以下是DataSet的屬性: DataSet Properties

請指教!

+0

應該「EmployeeAttendanceReport_EmployeeAttendanceReport」與「EmployeeAttendanceReport」在你的設置代碼的C#部分取代dsCustomers.Name? – RThomas 2012-02-15 17:58:46

+0

將名稱更正爲EmployeeAttendanceReport後,出現以下錯誤:
「本地報告處理過程中發生錯誤
報告處理過程中出現錯誤
EmployeeAttendanceReport」 – Azeem 2012-02-15 18:36:17

+0

請問您可以在[報告期間發生的錯誤處理。在ASP.NET MVC中的RLDC報告](http://stackoverflow.com/questions/28966954/an-error-occurred-during-report-processing-rldc-reporting-in-asp-net-mvc)? – 2016-04-24 20:26:53

回答

3

看起來您的報告數據源名稱與您在ReportDataSource類的Name屬性中提供的名稱不匹配。該報告期望EmployeeAttendanceReport。你可能想嘗試在你的代碼改變Name屬性設置爲:

dsCustomers.Name = "EmployeeAttendanceReport"; 
+0

修正名EmployeeAttendanceReport後,我有以下的錯誤出現了:本地報表處理
期間發生
錯誤報告處理
EmployeeAttendanceReport – Azeem 2012-02-15 18:04:57

+0

我相信,現在你看到的報表服務器端錯誤時出錯。檢查日誌以查找實際錯誤。您的.rdl中可能存在問題。 – 2012-02-15 20:01:07

8

我知道這是晚兩年,但我希望這可以幫助別人

期間有同樣的問題(發生我的錯誤本地報告處理,報告處理期間發生錯誤,數據集名稱),我發現連接字符串有問題;我不得不從使用Windows身份驗證切換到SQL身份驗證,然後我的報告工作。

顯然報表數據源名稱必須與您通過ReportDataSource對象提供布賴恩騎士建議的名稱相匹配

+0

謝謝,我使用SQL身份驗證時遇到了用戶名和密碼空白的地方。 – lko 2013-10-31 08:34:14

+0

幫我一把。謝謝! – bushell 2014-06-25 09:24:35

+0

幫我一把。謝謝@mascab – nccsbim071 2014-10-17 06:32:04

相關問題