protected void Page_Load(object sender, EventArgs e) { // отключение кэширования страницы ScadaUtils.DisablePageCache(Response); // получение данных пользователя UserData userData = UserData.GetUserData(); // проверка входа в систему if (!userData.LoggedOn) { throw new Exception(WebPhrases.NotLoggedOn); } // определение индексов выбранного представления int viewSetIndex, viewIndex; if (!int.TryParse(Request["viewSet"], out viewSetIndex)) { viewSetIndex = -1; } if (!int.TryParse(Request["view"], out viewIndex)) { viewIndex = -1; } // получение представления и прав пользователя на него BaseView baseView; MainData.Right right; TableView tableView = userData.GetView(null, viewSetIndex, viewIndex, out baseView, out right) ? baseView as TableView : null; // определение типа вывода событий int eventOut; string eventOutStr = Request["eventOut"]; if (eventOutStr == "all") { eventOut = 1; // все события } else if (eventOutStr == "view") { eventOut = 2; // по представлению } else { eventOut = 0; // не выводить } // проверка параметров генерации отчёта if (tableView == null && eventOut == 0) { throw new Exception(WebPhrases.NoReportData); } // проверка загрузки представления и прав на получение информации if (baseView == null) { throw new Exception(WebPhrases.UnableLoadView); } else if (!right.ViewRight || eventOut == 1 && userData.Role == ServerComm.Roles.Custom) { throw new Exception(CommonPhrases.NoRights); } // определение даты, за которую формируется отчёт int year, month, day; int.TryParse(Request["year"], out year); int.TryParse(Request["month"], out month); int.TryParse(Request["day"], out day); DateTime reqDate; try { reqDate = new DateTime(year, month, day); } catch { throw new Exception(WebPhrases.IncorrectDate); } // создание отчёта RepBuilder rep = new RepHrEvTable(); try { // вывод в журнал AppData.Log.WriteAction(string.Format(WebPhrases.GenReport, rep.RepName, userData.UserLogin), Log.ActTypes.Action); // установка типа страницы и имени файла отчёта Response.ClearHeaders(); Response.ContentType = "application/octet-stream"; Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + Path.GetFileNameWithoutExtension(baseView.FileName) + reqDate.ToString(" yyyy-MM-dd") + ".xml\""); // установка параметров отчёта rep.SetParams(baseView, reqDate, eventOut); // генерация отчёта rep.Make(Response.OutputStream, Request.PhysicalApplicationPath + @"templates\"); } catch (Exception ex) { string errMsg = string.Format(WebPhrases.GenReportError, rep.RepName, ex.Message); AppData.Log.WriteAction(errMsg, Log.ActTypes.Exception); Response.ClearHeaders(); Response.ContentType = "text/html"; Response.Write(ScadaUtils.HtmlEncodeWithBreak(errMsg)); } }
protected void Page_Load(object sender, EventArgs e) { try { // настройка выходного потока Response.ClearContent(); Response.TrySkipIisCustomErrors = true; // перевод веб-страницы Localization.TranslatePage(this, "Scada.Web.WFrmError"); // определение сообщения об ошибке string errMsg = ""; Exception ex = Server.GetLastError(); if (ex == null) { string msg = Request["msg"]; if (!string.IsNullOrEmpty(msg)) { errMsg = msg; } } else { if (ex.InnerException != null) { ex = ex.InnerException; } errMsg = ex.Message; } if (errMsg == "") { errMsg = lblMessage.Text; } else { errMsg = lblMessage.Text + ": " + errMsg; lblMessage.Text = ScadaUtils.HtmlEncodeWithBreak(errMsg); // вывод на форму } // вывод сообщения в журнал приложения string logMsg = errMsg + (Localization.UseRussian ? "\nСтраница: " : "\nPage: ") + Request.Url.AbsoluteUri; if (Context.Session == null) { AppData.InitAppData(); } else { UserData userData = UserData.GetUserData(); if (userData != null) { logMsg += (Localization.UseRussian ? "\nПользователь: " : "\nUser: ") + userData.UserLogin; } } AppData.Log.WriteAction(logMsg, Log.ActTypes.Exception); } finally { Server.ClearError(); } }