As there is no way till now to show crystal report in a view(MVC). You can simply convert the report document as pdf using following code:
public void ShowReport()
{
List<ToDos> lstTodos = new List<ToDos>();
lstTodos = db.ToDos.ToList();
ReportDocument rd = new ReportDocument();
rd.Load(Path.Combine(Server.MapPath("CrystalReport1.rpt")));
rd.SetDataSource(lstTodos);
Stream stream;
stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
byte[] binarydata;
binarydata = new Byte[stream.Length];
stream.Read(binarydata, 0, (int)stream.Length);
string base64String = "";
try
{
base64String =
System.Convert.ToBase64String(binarydata,
0,
binarydata.Length);
}
catch (System.ArgumentNullException)
{
System.Console.WriteLine("Binary data array is null.");
}
string pdfurl = "data:application/pdf;base64," + base64String;
ViewBag.Url = pdfurl;
}
And after converting it as PDF use HTML object tag to show pdf document as shown below(using ViewBag.Url):
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<object data="@ViewBag.Url"
type="application/pdf" style=" height: 991px;margin-left: -32%;margin-top: 5%;width: 98%;"></object>
public void ShowReport()
{
List<ToDos> lstTodos = new List<ToDos>();
lstTodos = db.ToDos.ToList();
ReportDocument rd = new ReportDocument();
rd.Load(Path.Combine(Server.MapPath("CrystalReport1.rpt")));
rd.SetDataSource(lstTodos);
Stream stream;
stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
byte[] binarydata;
binarydata = new Byte[stream.Length];
stream.Read(binarydata, 0, (int)stream.Length);
string base64String = "";
try
{
base64String =
System.Convert.ToBase64String(binarydata,
0,
binarydata.Length);
}
catch (System.ArgumentNullException)
{
System.Console.WriteLine("Binary data array is null.");
}
string pdfurl = "data:application/pdf;base64," + base64String;
ViewBag.Url = pdfurl;
}
And after converting it as PDF use HTML object tag to show pdf document as shown below(using ViewBag.Url):
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<object data="@ViewBag.Url"
type="application/pdf" style=" height: 991px;margin-left: -32%;margin-top: 5%;width: 98%;"></object>
Comments
Post a Comment