public string RunReport(RunSsrsReportModel reportParams)
        {
            try
            {
                reportParams = _reportingServicesRepository.RunReport(reportParams);

                var sessionKey = Guid.NewGuid().ToString();

                switch ((reportParams.Format ?? string.Empty).ToLower())
                {
                case "xls":
                case "pdf":
                    Session[string.Format("{0}_Name", sessionKey)] = reportParams.ReportName;
                    Session[sessionKey] = reportParams.ReportData;
                    return(string.Format("url:/plugins/reportingservices/ViewReportExported/{0}/{1}",
                                         reportParams.Export ? reportParams.Format :string.Format("{0}_inline", reportParams.Format),
                                         sessionKey));

                default:     // Assumed HTML
                    return("Invalid format");
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message, ex);
                return(ex.ToString());
            }
        }
Exemplo n.º 2
0
        public IHttpActionResult RunReport(RunSsrsReportModel reportParams)
        {
            var responseObject = _ReportingRuleEngine.RunReport(reportParams);

            return(new HttpResult <RunSsrsReportModel>(responseObject, Request));
        }
Exemplo n.º 3
0
        public IHttpActionResult LoadReportParams(RunSsrsReportModel reportParams)
        {
            var responseObject = _ReportingRuleEngine.LoadReportParams(reportParams);

            return(new HttpResult <Response <SsrsReportParam> >(responseObject, Request));
        }
Exemplo n.º 4
0
 public RunSsrsReportModel RunReport(RunSsrsReportModel reportParams)
 {
     return(_reportingServiceService.RunReport(reportParams));
 }
Exemplo n.º 5
0
 public Response <SsrsReportParam> LoadReportParams(RunSsrsReportModel reportParams)
 {
     return(_reportingServiceService.LoadReportParams(reportParams));
 }
Exemplo n.º 6
0
        public RunSsrsReportModel RunReport(RunSsrsReportModel reportParams)
        {
            try
            {
                var response = new RunSsrsReportModel();

                var outputFormat = string.Empty;
                switch ((reportParams.Format ?? string.Empty).ToLower())
                {
                case "html":
                    outputFormat = "HTML4.0";
                    break;

                case "xls":
                    outputFormat = "EXCEL";
                    break;

                case "word":
                    outputFormat = "WORD";
                    break;

                case "pdf":
                    outputFormat = "PDF";
                    break;

                default:
                    outputFormat = "HTML4.0";
                    break;
                }

                string deviceInfo = "<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";
                string extension;
                string encoding;
                string mimeType;
                SSRS_Exec.Warning[] warnings;
                string[]            streamIDs;

                var report     = _GetReportByID(reportParams.ReportId);
                var reportInfo = _rs_Svc_2005.LoadReport(report.Path, null);

                // Extract Param Values
                var parameters = new List <SSRS_Exec.ParameterValue>();
                foreach (var ssrsparam in reportParams.ReportParameters)
                {
                    if (ssrsparam.MultiValue)
                    {
                        foreach (var val in ssrsparam.Values)
                        {
                            parameters.Add(new SSRS_Exec.ParameterValue()
                            {
                                Name  = ssrsparam.Name,
                                Value = val.Value
                            });
                        }
                    }
                    else if (ssrsparam.ParameterTypeName == "DateTime")
                    {
                        parameters.Add(new SSRS_Exec.ParameterValue()
                        {
                            Name  = ssrsparam.Name,
                            Value = Convert.ToDateTime(ssrsparam.Value).ToString("dd/MM/yyyy")
                        });
                    }
                    else
                    {
                        parameters.Add(new SSRS_Exec.ParameterValue()
                        {
                            Name  = ssrsparam.Name,
                            Value = ssrsparam.Value
                        });
                    }
                }

                var manParamNames = new string[] { "ReportUserID", "ReportName", "ReportUserOrgStructure" };
                foreach (var param in parameters.Where(p => manParamNames.Contains(p.Name)))
                {
                    switch (param.Name)
                    {
                    case "ReportUserID":
                        param.Value = AuthContext.Auth.User.UserID.ToString();
                        break;

                    case "ReportName":
                        param.Value = report.ReportName;
                        break;

                    case "ReportUserOrgStructure":
                        param.Value = report.ReportGroupID.ToString();
                        break;
                    }
                }

                _rs_Svc_2005.SetExecutionParameters(parameters.ToArray(), "en-us");

                reportParams.ReportName = report.ReportName;
                reportParams.ReportData = _rs_Svc_2005.Render(outputFormat, deviceInfo, out extension, out mimeType, out encoding, out warnings, out streamIDs);

                return(reportParams);
            }
            catch (Exception ex)
            {
                _Logger.LogException(new ExceptionModel()
                {
                    Message  = ex.ToString(),
                    Comments = "reportId" + reportParams.ReportId,
                    Source   = "Axis.Service.Reporting.ReportingService.RunReport"
                });
                throw ex;
            }
        }
Exemplo n.º 7
0
        public Response <SsrsReportParam> LoadReportParams(RunSsrsReportModel reportParams)
        {
            try
            {
                var response = new Response <SsrsReportParam>();
                response.DataItems = new List <SsrsReportParam>();
                var report = _GetReportByID(reportParams.ReportId);

                SSRS_SOAP.ParameterValue[]        pValues     = null;
                SSRS_SOAP.DataSourceCredentials[] credentials = null;

                if (reportParams.ParamValues != null && reportParams.ParamValues.Count > 0)
                {
                    // Get UserID param
                    var pUserID = reportParams.ParamValues
                                  .FirstOrDefault(p => p.Name == "ReportUserID");

                    // Set UserID param
                    // For data assurance, UserID needs to be explicitly set even if passed from UI
                    if (pUserID != null)
                    {
                        pUserID.Value = AuthContext.Auth.User.UserID.ToString();
                    }

                    pValues = reportParams.ParamValues
                              .Where(v => v.Value != null)
                              .Select(v => new SSRS_SOAP.ParameterValue()
                    {
                        Name  = v.Name,
                        Value = v.Value,
                        Label = v.Label,
                    }).ToArray();
                }

                var parameters = _rs_Svc_2010.GetItemParameters(report.Path, null, true, pValues, credentials);

                foreach (SSRS_SOAP.ItemParameter v in parameters)
                {
                    var p = new SsrsReportParam()
                    {
                        Name = v.Name,
                        ParameterTypeName       = v.ParameterTypeName,
                        Nullable                = v.Nullable,
                        AllowBlank              = v.AllowBlank,
                        MultiValue              = v.MultiValue,
                        QueryParameter          = v.QueryParameter,
                        Prompt                  = v.Prompt,
                        PromptUser              = v.PromptUser,
                        ValidValuesQueryBased   = v.ValidValuesQueryBased,
                        DefaultValuesQueryBased = v.DefaultValuesQueryBased,
                        ParameterStateName      = v.ParameterStateName,
                        ErrorMessage            = v.ErrorMessage
                    };

                    if (p.Name == "ReportUserID")
                    {
                        p.Value = AuthContext.Auth.User.UserID.ToString();
                    }

                    if (v.Dependencies != null)
                    {
                        p.Dependencies = v.Dependencies.ToList();
                    }

                    if (v.ValidValues != null)
                    {
                        p.ValidValues = v.ValidValues.Select(vv => new ValidValue()
                        {
                            Label = vv.Label,
                            Value = vv.Value
                        }).ToList();
                    }

                    ValidValue defVal;
                    if (v.DefaultValues != null)
                    {
                        foreach (var dv in v.DefaultValues.Distinct())
                        {
                            defVal = p.ValidValues.FirstOrDefault(vv => vv.Value == dv);

                            if (defVal != null)
                            {
                                p.DefaultValues.Add(defVal);
                            }
                        }
                    }

                    response.DataItems.Add(p);
                }

                return(response);
            }
            catch (Exception ex)
            {
                _Logger.LogException(new ExceptionModel()
                {
                    Message  = ex.ToString(),
                    Comments = "reportId" + reportParams.ReportId,
                    Source   = "Axis.Service.Reporting.ReportingService.LoadReportParams"
                });
                throw ex;
            }
        }
Exemplo n.º 8
0
        public RunSsrsReportModel RunReport(RunSsrsReportModel reportParams)
        {
            const string apiUrl = BaseRoute + "RunReport";

            return(_communicationManager.Post <RunSsrsReportModel, RunSsrsReportModel>(reportParams, apiUrl));
        }
Exemplo n.º 9
0
        public Response <SsrsReportParam> LoadReportParams(RunSsrsReportModel reportParams)
        {
            const string apiUrl = BaseRoute + "LoadReportParams";

            return(_communicationManager.Post <RunSsrsReportModel, Response <SsrsReportParam> >(reportParams, apiUrl));
        }