Answered by:
Step by Step Reports for MVC - ASP.Net 2017

Question
-
User-164452226 posted
Good day Tech Gurus,
I want to implement reports in my system but l am using stored procedures. Here is what l have:
1) Stored procedures:
1) Save subject CREATE proc [dbo].[SaveSubject] ( @SubjectID int, @SubjectCode nvarchar(50), @Subject nvarchar(50), @Userid bigint ) as if (@SubjectID<=0) insert into TpSchoolSubjects ( SubjectCode, Subject, Userid ) values ( @SubjectCode, @Subject, @Userid ) else update TpSchoolSubjects set SubjectCode=@SubjectCode, Subject=@Subject, Userid=@Userid where SubjectID=@SubjectID 2) Select all subject CREATE proc [dbo].[GetAllSubject] as select * from TpSchoolSubjects
2)Entity Framework Class:
public class EFSubjectRepository { private CommonRepository<Subject> SubjectRepository; public EFSubjectRepository() { this.SubjectRepository = new CommonRepository<Subject>(new Subject()); } public IEnumerable<Subject> GetAll(object[] parameters) { string spQuery = "[GetAllSubject]"; return SubjectRepository.ExecuteQuery(spQuery, parameters); } public Subject GetbyID(object[] parameters) { string spQuery = "[GetSubjectbyID] {0}"; return SubjectRepository.ExecuteQuerySingle(spQuery, parameters); } public int Insert(object[] parameters) { string spQuery = "[SaveSubject] {0}, {1}, {2}"; return SubjectRepository.ExecuteCommand(spQuery, parameters); } public int Delete(object[] parameters) { string spQuery = "[DeleteSubject] {0}"; return SubjectRepository.ExecuteCommand(spQuery, parameters); } }
3)Controller Methods - Subject Controller
//TpSchoolSubject public ActionResult TpSchoolSubjectIndex() { int Count = 10; object[] parameters = { Count }; var test = objTpSchoolSubject.GetAll(parameters); return View(test); } public ActionResult InsertTpSchoolSubject() { return View(); } [HttpPost] public ActionResult InsertTpSchoolSubject(TpSchoolSubject model) { if (ModelState.IsValid) { object[] parameters = { model.SubjectID, model.SubjectCode, model.Subject, model.Userid }; objTpSchoolSubject.Insert(parameters); } return RedirectToAction("TpSchoolSubjectIndex"); } public ActionResult DeleteTpSchoolSubject(Int64 SubjectID) { object[] parameters = { SubjectID }; this.objTpSchoolSubject.Delete(parameters); return RedirectToAction("TpSchoolSubjectIndex"); } public ActionResult UpdateTpSchoolSubject(int SubjectID) { object[] parameters = { SubjectID }; return View(this.objTpSchoolSubject.GetbyID(parameters)); }
4) Report API Controller
using Syncfusion.EJ.ReportViewer; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; namespace CollegeSys.WebUI.Reports { public class ReportApiController : ApiController, IReportController { // GET api/<controller> public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/<controller>/5 public string Get(int id) { return "value"; } // POST api/<controller> public void Post([FromBody]string value) { } // PUT api/<controller>/5 public void Put(int id, [FromBody]string value) { } // DELETE api/<controller>/5 public void Delete(int id) { } //Post action for processing the rdl/rdlc report public object PostReportAction(Dictionary<string, object> jsonResult) { return ReportHelper.ProcessReport(jsonResult, this); } //Get action for getting resources from the report [System.Web.Http.ActionName("GetResource")] [AcceptVerbs("GET")] public object GetResource(string key, string resourcetype, bool isPrint) { return ReportHelper.GetResource(key, resourcetype, isPrint); } //Method will be called when initialize the report options before start processing the report public void OnInitReportOptions(ReportViewerOptions reportOption) { //Add SSRS Server and database credentials here reportOption.ReportModel.ReportServerCredential = new System.Net.NetworkCredential("", ""); //reportOption.ReportModel.DataSourceCredentials.Add(new DataSourceCredentials("college", "", "")); } //Method will be called when reported is loaded public void OnReportLoaded(ReportViewerOptions reportOption) { //You can update report options here } } }
l have installed Syncfusion and ReportviewerForMVC version 11. l have the following error:
Error Creating Control - ReportViewer1Failed to create designer 'Microsoft.Reporting.WebForms.ReportViewer, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'
Can someone please assist me, l have no clue on how l can write a report, just listing all subjects. If Crystal reports can work, which version and how can it run on a browser?
Friday, January 18, 2019 11:58 AM
Answers
-
User-164452226 posted
Ok, never mind guys. l downloaded a youtube video that explained much better-https://www.youtube.com/watch?v=UXuJx81q1Jc
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Saturday, January 19, 2019 11:52 AM