2012-11-11 13 views
13

में डेटा स्रोत "उत्पाद_Detail" के लिए डेटा स्रोत उदाहरण प्रदान नहीं किया गया है, मैं एक रिपोर्ट में रिकॉर्ड प्रदर्शित करने की कोशिश कर रहा हूं। डेटा डेटासेट में है। लेकिन यह उनके लिए बाध्य नहीं है। फॉर्म लोड होने पर यह रिपोर्ट लेआउट दिखाता है। लेकिन जब मैं बटन पर क्लिक करता हूं तो यह त्रुटियां दिखाता है। नीचे मेरा कोड है।माइक्रोसॉफ्ट रिपोर्टिंग सेवा

using Microsoft.Reporting.WinForms; 
//------------------------------------------------------------------ 
// <copyright company="Microsoft"> 
//  Copyright (c) Microsoft. All rights reserved. 
// </copyright> 
//------------------------------------------------------------------ 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace ReportsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 

      this.reportViewer1.RefreshReport(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      System.Data.DataSet ds = GetDataSet(); 
      //reportViewer1.LocalReport.ReportPath = "Report1.rdlc"; 
      ReportDataSource rds = new ReportDataSource("ProductsDataSet", ds.Tables[0]); 
      this.reportViewer1.LocalReport.DataSources.Clear(); 
      this.reportViewer1.LocalReport.DataSources.Add(rds); 
      this.bindingSource1.DataSource = rds; 
      this.reportViewer1.RefreshReport(); 
     } 

     private System.Data.DataSet GetDataSet() 
     { 
      System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection("Data Source=DELL;Initial Catalog=Products;Integrated Security=True"); 
      sqlConn.Open(); 
      string sql= string.Format (@"select o.[User], o.OrderDate, o.Quantity, o.OrderDetail, c.ShopName, c.[Address], c.City, c.Ph, p.* from dbo.Clients c,dbo.Product_Service o,Product_D p,Junction j where o.ClientId = c.ClientId 
          and o.ProductId = j.ProductId 
           and j.PCode = p.PCode 
            and o.ClientId = 41 
             and o.OrderDate='11/9/2012';"); 

      System.Data.SqlClient.SqlDataAdapter ad = new System.Data.SqlClient.SqlDataAdapter(sql, sqlConn); 
      System.Data.DataSet ds = new System.Data.DataSet(); 
      ad.Fill(ds); 
      sqlConn.Close(); 
      return ds; 
     } 
    } 
} 

मेरे डेटा सेट में मेरे पास 3 टेबल हैं। मैं रिपोर्टव्यूवर के शीर्ष पर बाइंड स्रोत का चयन करता हूं जहां एक छोटा तीर दिखाता है।

उत्तर

21

कोड संपादित करने के लिए Visual Studio.Net 2012 का उपयोग करते समय ReportViewer के संस्करण 10 का उपयोग करते समय मैंने इस समस्या में उछाल दिया।

मुझे त्रुटि संदेश में डेटा स्रोत का नाम लेकर समाधान मिला (ऊपर दिए गए मामले में, यह "Product_Detail" है)। मैं फिर स्रोत कोड दृश्य में गया, रिपोर्टव्यूअर, इसके डेटा स्रोत, और फिर इसके ReportDataSource के अंदर पाया।

मैंने रिपोर्टडेटा स्रोत की नाम संपत्ति को त्रुटि संदेश (यानी "उत्पाद_Detail") में वर्णित डेटा स्रोत के समान सेट किया है।

मुझे आशा है कि यह आपके लिए काम करेगा क्योंकि यह मेरे लिए किया गया है।

इसके अलावा, अगर आपके पास ReportViewer नियंत्रण के बाद के संस्करण का उपयोग करने के लिए अक्षांश है, तो आप पाएंगे कि यह समस्या या तो प्रकट नहीं होती है या हल करना आसान है।

9

"ProductsDataSet" डेटासोर्स का नाम है जिसे आप इसे दे रहे हैं। आपकी त्रुटि कह रही है "माइक्रोसॉफ्ट रिपोर्टिंग सेवा में डेटा स्रोत" उत्पाद_Detail "के लिए डेटा स्रोत उदाहरण"

मुझे लगता है कि आप इसे गलत नाम दे रहे हैं।

प्रयास करें,

ReportDataSource rds = new ReportDataSource("Product_Detail", ds.Tables[0]); 

आप रिपोर्ट "ProductsDataSet" तो आप शायद है 2 कहा जाता है में एक डेटा स्रोत है, जो आप करना चाहते हैं चाहते हैं में से एक आप उपयोग नहीं कर रहे हटा सकते हैं या यह एक आवंटित है तो डेटासोर्स भी।

0
Dim rptDataSource As ReportDataSource 
    Try 
     With Me.ReportViewer1.LocalReport 
      ReportViewer1.LocalReport.ReportPath = Application.StartupPath & "\RTFLS\Report1.rdlc" 
      '.DataSources.Clear() 
     End With 
     Dim ds As New POAS.CustomersTotalPayment 
     Dim da As New POAS.CustomersTotalPaymentTableAdapters.PAYMENTSTATUSTableAdapter 

     da.Fill(ds.PAYMENTSTATUS) 

     rptDataSource = New ReportDataSource("CustomersTotalPayment", ds.Tables("PAYMENTSTATUS")) 
     Me.ReportViewer1.LocalReport.DataSources.Add(rptDataSource) 

     Me.ReportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout) 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 


    Me.ReportViewer1.RefreshReport() 
0

यदि आप रिपोर्ट दर्शक को रिपोर्ट जोड़ने के बाद xsd फ़ॉर्म में कोई अन्य तालिका जोड़ते हैं तो आपको यह त्रुटि मिल सकती है।

  1. दर्शक रिपोर्ट करने के लिए हटाएं और पुन: जोड़ने
  2. रिपोर्ट दर्शक
  3. अब फार्म की लोड घटना के लिए जाना (उस रिपोर्ट व्यूअर शामिल है और नए डेटासेट के लिए भरण जोड़ने के लिए रिपोर्ट सेट ।

    private void rptForm_Load(object sender, EventArgs e) { 
        this.vwrpt_TableAdapter1.Fill(this.DataSet1.vwDataset); 
    } 
    
7

मैंने इसकी जांच VS2013 में मेरी सी # अनुप्रयोग में .. भाग गया तो में मामला दूसरों here..If आप रिपोर्ट डिजाइनर में डाटासेट जोड़ा .. des में, अपने फ़ॉर्म पर जाएं अनदेखा करें, Reportviewer नियंत्रण पर कार्रवाई तीर पर क्लिक करें। रिबंड डेटा स्रोत का चयन करें।

+0

धन्यवाद। अब माइक्रोसॉफ्ट ने अपने त्रुटि संदेश में यह सुझाव क्यों नहीं लगाया। –

संबंधित मुद्दे

 संबंधित मुद्दे