2010-02-15 17 views
5

मैं ASP.NET ReportViewer नियंत्रण के लिए प्रोग्राम स्रोत रूप से डेटा स्रोत कैसे सेट करूं?मैं ASP.NET ReportViewer नियंत्रण के लिए प्रोग्राम स्रोत रूप से डेटा स्रोत कैसे सेट करूं?

मेरे पास एक वीएस 2008 रिपोर्ट व्यूअर नियंत्रण है और कुछ अलग-अलग रिपोर्टों के बीच स्विच करना चाहता हूं।

मैं रिपोर्ट स्रोत सेट करके और नियंत्रण को रीफ्रेश करके रिपोर्ट स्विच कर सकता हूं, लेकिन मैं नहीं देख सकता कि डेटा स्रोत कहां सेट करना है।

प्रत्येक रिपोर्ट का अपना डेटा स्रोत होता है, और अगर मैं उन्हें प्रारंभ में कॉन्फ़िगर करता हूं तो नियंत्रण ठीक होता है, लेकिन मुझे उनके बीच स्विच करने की आवश्यकता होती है।

+0

आप बात कर रहे हैं ReportViewer नियंत्रण, या कुछ अन्य नियंत्रण के बारे में? – womp

+0

हाँ, मैं धन्यवाद था। – Maestro1024

उत्तर

4

मुझे लगता है कि प्रश्न ReportViewer नियंत्रण के बारे में है।

reportViewer.LocalReport.DataSources.Clear(); 
reportViewer.LocalReport.DataSources.Add(new ReportDataSource("dsname", source)); 

"dsname" डेटा स्रोत का नाम है, तो आप इसे फाइल .rdlc पा सकते हैं। source वह डेटा है जो आप रिपोर्ट में दिखाना चाहते हैं।

+0

जब मैं ऐसा करता हूं तो मुझे मिलता है "# रिपोर्ट प्रोसेसिंग के दौरान एक त्रुटि आई है। * डेटा स्रोत के लिए डेटा स्रोत उदाहरण प्रदान नहीं किया गया है ...." – Maestro1024

+0

और डेटा स्रोत में सूचीबद्ध आपूर्ति स्रोत स्रोत डिफ़ॉल्ट रिपोर्ट जो मैं मूल रूप से सेटअप करता हूं। ऐसा लगता है कि नए डेटा स्रोत को वास्तव में सेट नहीं किया जा रहा है। – Maestro1024

+0

मैं अभी भी इसे देख रहा हूं। आश्चर्य है कि मेरे पास गलत "स्रोत नाम" है। रिपोर्ट में इस्तेमाल किए गए स्रोत को मैं कैसे देखूं? – Maestro1024

1

1) बुनियादी मार्कअप:

<asp:ScriptManager ID="ScriptManager1" runat="server" /> 
<rsweb:ReportViewer ID="rptView" Width="1000px" ProcessingMode="Local" 
     Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)" 
     WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" runat="server" > 
</rsweb:ReportViewer> 

2) रिपोर्ट XML संपादित करें। आपके डेटासेट & फ़ील्ड नाम सेट करें:

<DataSets> 
    <DataSet Name="dsSource"> 
    <Fields> 
     <Field Name="MyField1"> 
     <DataField>MyField1</DataField> 
     <rd:TypeName>System.String</rd:TypeName> 
     </Field> 
    <Query> 
     <DataSourceName>dsSource</DataSourceName> 
     <CommandText>/* Local Query */</CommandText> 
    </Query> 
    </DataSet> 
</DataSets> 

3) दोनों पर डेटा स्रोत सेट रिपोर्ट & रिपोर्ट दर्शक (क्यों ... दोनों जरूरी हैं पता नहीं है)

SqlConnection cn = new SqlConnection(_connectionString); 
SqlCommand cmd = new SqlCommand("dbo.MyProc", cn); 
cmd.CommandType = CommandType.StoredProcedure; 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
DataTable tbl = new DataTable(); 

cn.Open(); 
da.Fill(tbl); 
cn.Close(); 

rptView.Visible = true; 
rptView.LocalReport.DataSources.Clear(); 
ReportDataSource rptData = new ReportDataSource("dsSource", tbl); 

LocalReport r = new LocalReport(); 
r.ReportPath = Server.MapPath("~/Reports/MyReport.rdlc"); 
r.DataSources.Add(rptData); 

rptView.LocalReport.DataSources.Add(rptData); 
rptView.LocalReport.ReportPath = Server.MapPath("~/Reports/MyReport.rdlc"); 
rptView.LocalReport.Refresh(); 
0
GlobalReportViewer.AsyncRendering = True 
    If Session.Count > 0 Then 
     For i As Integer = 0 To Session.Count - 1 
      If Session(i).GetType().ToString() = "Microsoft.Reporting.WebForms.ReportHierarchy" Then 
       Session.RemoveAt(i) 
      End If 
     Next 
    End If 
    GlobalReportViewer.LocalReport.ReportPath = "" 
GlobalReportViewer.LocalReport.ReleaseSandboxAppDomain() 
GlobalReportViewer.LocalReport.DataSources.Add(New ReportDataSource("XXXDataSet_YYYTable", "ObjectDSZZZ")) 
GlobalReportViewer.LocalReport.ReportPath = "Reports\AAAReport.rdlc" 
GlobalReportViewer.LocalReport.Refresh() 
संबंधित मुद्दे