2010-07-20 21 views

Odpowiedz

2

Tak można użyć przeglądarki raportów teleriksu. To może pomóc: http://www.telerik.com/community/forums/reporting/telerik-reporting/reportviewer-and-asp-net-mvc.aspx

myślę, potrzebne są następujące:

  • użyć formularza internetowego, a nie widok (może pracować z widokiem, nie mogę”pamiętam
  • z runat = 'serwer'

może to się zmieniło odkąd ostatni raz użył go (przy wsparciu MVC), ale jest to w jaki sposób realizowane go. Minęło trochę czasu jednak.

HTH.

4

Jest kilka rzeczy, które musisz zrobić: 1. Musisz użyć formularza ASPX.NET zamiast widoku Razor. 2. Musisz renderować swoją stronę .aspx jako częściowy widok w kontrolerze 3. Będziesz musiał zastąpić kilka klas css i nowe dla raportu, aby renderować poprawnie w przeglądarce. Sprawdź ten samouczek wideo Więcej szczegółów: http://www.youtube.com/watch?v=t-iA05KpDFM

ani używać tego przykłady i źródła stąd: http://www.telerik.com/community/code-library/reporting/general/using-telerik-web-reportviewer-in-asp-net-mvc-application.aspx

Powodzenia!

6

Sposób, w jaki raportowałem zaimplementowany, nie ma przeglądarki, zamiast tego użytkownik otrzymuje raport "pdf", który można pobrać.

Oto scenariusz, użytkownik kupuje produkt online, a na koniec procesu kasowania rachunek jest prezentowany za pośrednictwem raportu Telerik.

  1. Dodaj odniesienia do zestawów raportowania Telerik w projekcie.
  2. Utwórz raport. Telerik TV ma kilka świetnych samouczków na temat rozpoczęcia pracy z Telerik reporting.
  3. Kontroler wykona połączenie z repozytorium i wyświetli strumień bajtów z powrotem do przeglądarki.

    public virtual ActionResult DownloadReceiptReport(Order model) 
    { 
        byte[] contents = ShoppingCartRepository.GetReceiptReport(model); 
        return File(contents, "application/pdf", "Receipt.pdf"); 
    } 
    
  4. W repozytorium utworzyć funkcję, aby wygenerować raport, w tym przypadku raport nie jest bezpośrednio związany z SqlDataSource, źródłem danych jest dostarczany składnik ObjectDataSource:

    public byte[] GetReceiptReport(Order order) 
    { 
        Telerik.Reporting.ObjectDataSource objectDataSource = new Telerik.Reporting.ObjectDataSource(); 
        objectDataSource.DataSource new PurchaseReceiptReportModel() 
        { 
         CustomerName = order.CustomerName, 
         Total= order.Total, 
         PurchaseDate= DateTime.Now 
        }; 
    
        PurchaseReceiptReport report = new PurchaseReceiptReport(); 
        report.DataSource = objectDataSource; 
    
        ReportProcessor reportProcessor = new ReportProcessor(); 
        RenderingResult result = reportProcessor.RenderReport("PDF", report, null); 
        return result.DocumentBytes; 
    } 
    

Na koniec użytkownik otrzyma wyskakujące okno z raportem pdf.

Mam nadzieję, że to pomoże.

+0

To jest naprawdę wielki radę. Dzięki za to milion. – ppumkin

0

Mam alternatywne rozwiązanie do generowania pdf z raportu, który wymyśliłem po wypróbowaniu powyższego rozwiązania, ale musiałem przekazać parametr i nie mogłem go uruchomić przy użyciu obiektu raportu w powyższym przykładzie . Cały mój kod znajduje się w akcji kontrolera, przypuszczam, że przeniesienie go do repozytorium byłoby warte zrobienia, ale ze względu na ten post mam to proste.

Raport PackingList został utworzony na podstawie przykładów Telerik i znajduje się w raporcie Biblioteka o nazwie LogisticsReports. Mam instrukcję używania na górze kontrolera "za pomocą Telerik.Reportowanie;"

public ActionResult ShippingPackingList(int id = 0) 
    { 
     var instanceReportSource = new InstanceReportSource(); 
     instanceReportSource.ReportDocument = new LogisticsReports.PackingList(); 
     instanceReportSource.Parameters.Add(new Parameter("ShippingHeaderID", id)); 
     Telerik.Reporting.Processing.ReportProcessor reportProcessor = new Telerik.Reporting.Processing.ReportProcessor(); 
     Telerik.Reporting.Processing.RenderingResult result = reportProcessor.RenderReport("PDF", instanceReportSource, null); 
     byte[] contents = result.DocumentBytes; 
     return File(contents, "application/pdf", "PackingList1.pdf"); 

    }