2009-08-28 12 views
5

पर आधारित रिपोर्ट व्यूअर को फिर से लोड और रीफ्रेश करें मैंने वीएस 2008 का उपयोग करके एक सी # प्रोग्राम लिखा है जो रिपोर्ट व्यूअर में निर्मित और स्थानीय रूप से प्रक्रियाओं की प्रक्रियाओं का उपयोग करता है।नई आरडीएलसी फ़ाइल

जब रिपोर्ट देखी जा रही है, तो मैं वर्तमान rdlc फ़ाइल को एक नए से बदलना चाहता हूं और रिपोर्ट व्यूअर को रिपोर्ट फॉर्म बंद किए बिना रिपोर्ट रीफ्रेश करना चाहता हूं।

मैंने यह सुनिश्चित करने के लिए पहले से ही जांच की है कि फ़ाइल ठीक से उत्पन्न हो रही है। अगर मैं रिपोर्ट दर्शक के साथ फॉर्म बंद करता हूं और इसे वापस खोलता हूं तो नई फ़ाइल जानकारी दिखाती है। मैं सिर्फ मूल रूप से बंद किए बिना रिपोर्ट व्यूअर को फिर से लोड करने का तरीका नहीं समझ सकता।

नीचे मैंने जो कोशिश की है वह नीचे है। मुझे कोई त्रुटि संदेश नहीं मिला। रिपोर्ट ताज़ा करने लगती है, लेकिन यह वास्तव में मुझे दिखाता है कि मैं पहले से क्या देख रहा था। नई आरडीएलसी फ़ाइल लोड नहीं है।

private void BtnRefreshRpt_Click(object sender, EventArgs e) 
    { 

     try 
     { 

      GenerateNewRDLC GN = new GenerateNewRDLC(); 
      GN.generateFile(); /*this part definitely works*/ 


      SqlConnection conReport = new SqlConnection  (ConfigurationManager.ConnectionStrings["Connection String Info"].ConnectionString); 
      SqlCommand cmdReport = new SqlCommand(); 
      SqlDataReader drReport; 
      DataSet dsReport = new AdvEdgeDataSet(); 

      conReport.Open(); 

      cmdReport.CommandType = CommandType.Text; 
      cmdReport.Connection = conReport; 
      cmdReport.CommandText = strRptCriteria; 

      drReport = cmdReport.ExecuteReader(); 

      dsReport.Tables[0].Load(drReport); 

      drReport.Close(); 
      conReport.Close(); 

      reportViewer1.LocalReport.ReportPath = strRptResource.ToString(); 


      ReportDataSource rds = new ReportDataSource(); 
      rds.Name = strRptDataSource; 
      rds.Value = dsReport.Tables[0]; 
      reportViewer1.LocalReport.DataSources.Add(rds); 
      reportViewer1.RefreshReport(); 
      reportViewer1.SetDisplayMode(DisplayMode.PrintLayout); 

      //this.reportViewer1.RefreshReport(); 

     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

उत्तर

10

नई रिपोर्ट फ़ाइल लोड करने से पहले ReportViewer.Reset() को कॉल करने का प्रयास करें।

मैं वर्तमान में अपने रिपोर्ट व्यूअर नियंत्रण में यह बिल्कुल कर रहा हूं, हालांकि, स्रोत कोड काम पर है। अगर रीसेट काम नहीं करता है, तो मैं सोमवार सुबह यहां अपना कोड पोस्ट करूंगा। यह निश्चित रूप से किया जा सकता है।

+0

यह बहुत अच्छा काम किया। मदद के लिए बहुत बहुत धन्यवाद। बहुत ज्यादा अधिमूल्यित। मैंने अभी जोड़ा: यह। रिपोर्ट व्यूअर। रीसेट(); मेरे "नई फ़ाइल जेनरेट करें" कोड और मेरे एसक्यूएल कनेक्शन कोड से पहले। यह सही धन्यवाद था। जे –

+0

मुझे दूरस्थ रिपोर्ट के लिए एक ही समस्या थी। यह उत्तर अभी भी लागू है। धन्यवाद! – LOAS

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