コード例 #1
0
        public ActionResult Report(string id, string value)
        {
            string      path = "";
            LocalReport lr   = new LocalReport();

            if (value == "FormF")
            {
                path = Path.Combine(Server.MapPath("~/Reports/FormF.rdlc"));
            }
            if (value == "FormFNegative")
            {
                path = Path.Combine(Server.MapPath("~/Reports/FormFNegative.rdlc"));
            }
            if (value == "FormG")
            {
                path = Path.Combine(Server.MapPath("~/Reports/FormG.rdlc"));
            }
            if (System.IO.File.Exists(path))
            {
                lr.ReportPath = path;
            }
            else
            {
                return(RedirectToAction("LogIn", "Account"));
            }
            if (value == "FormF" || value == "FormFNegative")
            {
                DataSet ds1 = new DataSet();
                DataSet ds2 = new DataSet();
                DataSet ds3 = new DataSet();
                ds1 = objSSF.ReportFormF(Convert.ToString(Session["SocietyTransID"]));
                ds2 = objSSF.ReportFormF2(Convert.ToString(Session["SocietyTransID"]));
                ds3 = objSSF.ReportFormF3(Convert.ToString(Session["SocietyTransID"]));
                DataTable        FormF  = ds1.Tables[0];
                DataTable        FormF2 = ds2.Tables[0];
                DataTable        FormF3 = ds3.Tables[0];
                ReportDataSource rd     = new ReportDataSource("GetDetailsForFormF", FormF);
                ReportDataSource rd2    = new ReportDataSource("GetDetailsForFormC", FormF2);
                ReportDataSource rd3    = new ReportDataSource("GetInspectorInfoFormG", FormF3);
                lr.DataSources.Add(rd);
                lr.DataSources.Add(rd2);
                lr.DataSources.Add(rd3);
            }
            if (value == "FormG")
            {
                DataSet ds1 = new DataSet();
                DataSet ds2 = new DataSet();
                DataSet ds3 = new DataSet();
                ds1 = objSSF.ReportFormG(Convert.ToString(Session["SocietyTransID"]));
                ds2 = objSSF.ReportFormG2(Convert.ToString(Session["SocietyTransID"]));
                ds3 = objSSF.ReportFormG3(Convert.ToString(Session["SocietyTransID"]));
                DataTable        FormG  = ds1.Tables[0];
                DataTable        FormG2 = ds2.Tables[0];
                DataTable        FormG3 = ds3.Tables[0];
                ReportDataSource rd     = new ReportDataSource("GetInspectorInfoFormG", FormG);
                ReportDataSource rd2    = new ReportDataSource("GetInspectorInfoFormG2", FormG2);
                ReportDataSource rd3    = new ReportDataSource("GetDetailsForFormF", FormG3);
                lr.DataSources.Add(rd);
                lr.DataSources.Add(rd2);
                lr.DataSources.Add(rd3);
            }
            string reportType = id;
            string mimeType;
            string encoding;
            string fileNameExtension;
            string deviceInfo =

                "<DeviceInfo>" +
                "  <OutputFormat>" + id + "</OutputFormat>" +
                "  <PageWidth>8.5in</PageWidth>" +
                "  <PageHeight>11in</PageHeight>" +
                "  <MarginTop>0.5in</MarginTop>" +
                "  <MarginLeft>0.5in</MarginLeft>" +
                "  <MarginRight>0.5in</MarginRight>" +
                "  <MarginBottom>0.5in</MarginBottom>" +
                "</DeviceInfo>";

            Warning[] warnings;
            string[]  streams;
            byte[]    renderedBytes;

            renderedBytes = lr.Render(
                reportType,
                deviceInfo,
                out mimeType,
                out encoding,
                out fileNameExtension,
                out streams,
                out warnings);


            return(File(renderedBytes, mimeType));
        }