2013-07-18 4 views
12

मेरे पास एक ऐसा एप्लिकेशन है जहां मुझे प्रिंटडिअलॉग दिखाने और एप्लिकेशन में परिभाषित डिफ़ॉल्ट निर्दिष्ट प्रिंटर का उपयोग किए बिना RDLC रिपोर्ट मुद्रित करना है। नीचे मेरा परीक्षण कार्यान्वयन कोड है।सी # में PrintDialog() को दिखाए बिना rdlc रिपोर्ट को सीधे प्रिंट कैसे करें?

Microsoft.Reporting.WinForms.ReportViewer reportViewerSales = new Microsoft.Reporting.WinForms.ReportViewer(); 
    Microsoft.Reporting.WinForms.ReportDataSource reportDataSourceSales = new Microsoft.Reporting.WinForms.ReportDataSource(); 

    reportViewerSales.Reset(); 
     reportViewerSales.LocalReport.ReportPath = @"Sales.rdlc"; 

     reportDataSourceSales.Name = "SalesTableDataSet"; 

     int i = 1; 
     foreach (Product item in ProductSalesList) 
     { 
      dataset.CurrentSales.AddCurrentSalesRow(i, item.Name, item.Quantity.ToString(), item.Price.ToString(), item.Price.ToString()); 
      i++; 
     } 
     reportDataSourceSales.Value = dataset.CurrentSales; 
     reportViewerSales.LocalReport.DataSources.Add(reportDataSourceSales); 
     dataset.EndInit(); 

     reportViewerSales.RefreshReport(); 
     reportViewerSales.RenderingComplete += new RenderingCompleteEventHandler(PrintSales); 

और यहाँ मेरा पूरा विधि प्रतिपादन है

public void PrintSales(object sender, RenderingCompleteEventArgs e) 
    { 
     try 
     { 

      reportViewerSales.PrintDialog(); 
      reportViewerSales.Clear(); 
      reportViewerSales.LocalReport.ReleaseSandboxAppDomain(); 
     } 
     catch (Exception ex) 
     { 
     } 
    } 

उत्तर

12

मैं सिर्फ एक वर्ग मैं सीधे प्रिंट करने के लिए बनाया के लिए एक त्वरित देखो दे दी है और मुझे लगता है कि मैं इस पूर्वाभ्यास से कुछ विचारों को लेकर: Printing a Local Report without Preview

+0

@tezzo लेकिन क्या क्लाइंट साइड प्रिंटिंग है? – Neo

+1

हां, माइक्रोसॉफ्ट। रिपोर्टिंग। WinForms.ReportViewer और LocalReport। – tezzo

-1
public void PrintSales(object sender, RenderingCompleteEventArgs e) 
{ 
    try 
    { 
     reportViewerSales.PageSetupDailog(); 
     reportViewerSales.PrintDialog(); 
     reportViewerSales.Clear(); 
     reportViewerSales.LocalReport.ReleaseSandboxAppDomain(); 
    } 
    catch (Exception ex) 
    { 
    } 
} 
+1

स्टैक ओवरफ्लो में आपका स्वागत है! हालांकि यह कोड प्रश्न का उत्तर दे सकता है, इस सवाल का जवाब देने और/या कैसे इस प्रश्न का उत्तर देने के बारे में अतिरिक्त संदर्भ प्रदान करता है, यह दीर्घकालिक मूल्य में सुधार करता है। उत्तर के अंदर कोड होने पर आपको कोड स्वरूपण का भी उपयोग करना चाहिए। – Max

4

मैंने @tezzos उत्तर में एक विस्तार कक्षा बनाई है। जो इसे और अधिक आसान बना सकता है।

विस्तारित कक्षा प्राप्त करने के लिए इस Gist Here का उपयोग करें। इसे अपनी परियोजना में शामिल करें। प्राप्त नाम स्थान के लिए नहीं है: डी

LocalReport report = new LocalReport(); 
      report.ReportEmbeddedResource = "Your.Reports.Path.rdlc"; 
      report.DataSources.Add(new ReportDataSource("DataSet1", getYourDatasource())); 
      report.PrintToPrinter(); 

PrintToPrinter विधि LocalReport पर उपलब्ध हो जाएगा। किसी की मदद कर सकते हैं

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