Web-API und BerichtsviewerC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Web-API und Berichtsviewer

Post by Anonymous »

Ich muss innerhalb einer Web-API einen Dienst erstellen, der eine PDF-Datei einer lokalen Berichts-Viewer-Datei zurückgibt.

In MVC können Sie so etwas mit FileResult tun, aber ich habe Schwierigkeiten, dies als HttpResponseMessage zu replizieren. Hat jemand jemals etwas Ähnliches versucht oder hatte Erfolg damit? Alle meine Versuche, das Byte[] in einen Stream umzuwandeln und es dann als HttpResponse auszugeben, endeten mit leeren Dateien.

Code: Select all

public FileResult File() {
// Create a new dataset
StudentDataSet ds = new StudentDataSet();

// Create and fill the Student data table
// using the Student table adapter

StudentDataSetTableAdapters.StudentTableAdapter dta =
new StudentDataSetTableAdapters.StudentTableAdapter();
dta.Fill(ds.Student);

// Create a new report datasource with
//      Name = the dataset name in the report,
//      Value = the populated data table.

ReportDataSource rds = new ReportDataSource();
rds.Name = "DataSet1";
rds.Value = ds.Student;

ReportViewer rv = new Microsoft.Reporting.WebForms.ReportViewer();
rv.ProcessingMode = ProcessingMode.Local;
rv.LocalReport.ReportPath = Server.MapPath("~/Reports/StudentReport.rdlc");

// Add the new report datasource to the report.
rv.LocalReport.DataSources.Add(rds);

rv.LocalReport.Refresh();

byte[] streamBytes = null;
string mimeType = "";
string encoding = "";
string filenameExtension = "";
string[] streamids = null;
Warning[] warnings = null;

streamBytes = rv.LocalReport.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);

return File(streamBytes, mimeType, "StudentReport.pdf");
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post