Esempio n. 1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

            // перевод веб-страницы
            Localization.TranslatePage(this, "Scada.Web.WFrmEvents");

            // получение данных пользователя
            UserData userData = UserData.GetUserData();

            // установка фильтра событий
            if (userData.Role == ServerComm.Roles.Custom)
            {
                rbEvView.Checked = true;
                rbEvAll.Enabled  = false;
            }
            else if (AppData.WebSettings.EventFltr)
            {
                rbEvView.Checked = true;
            }
            else
            {
                rbEvAll.Checked = true;
            }
        }
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

            // получение данных пользователя
            UserData userData = UserData.GetUserData();

            // проверка входа в систему
            userData.CheckLoggedOn(Context, false);
            if (userData.LoggedOn)
            {
                AddRefreshScript();
            }
            else
            {
                AddLoginScript();
            }
        }
Esempio n. 3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

            // получение данных пользователя
            UserData userData = UserData.GetUserData();

            // проверка входа в систему
            userData.CheckLoggedOn(Context, false);
            if (!userData.LoggedOn)
            {
                AddLoginScript();
                return;
            }

            // определение даты запрашиваемых событий
            DateTime reqDate;

            try
            {
                reqDate = new DateTime(int.Parse(Request["year"]),
                                       int.Parse(Request["month"]), int.Parse(Request["day"]));
            }
            catch
            {
                reqDate = DateTime.MinValue;
            }

            // обновление событий, получение их временной метки
            if (reqDate > DateTime.MinValue)
            {
                EventTableLight eventTable;
                AppData.MainData.RefreshEvents(reqDate, out eventTable);
                hidEvStamp.Value = eventTable.FileModTime.Ticks.ToString();
            }

            // добавление скрипта обновления данной страницы
            AddRefreshScript(AppData.WebSettings.EventRefrFreq * 1000);
        }
Esempio n. 4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

            // получение данных пользователя
            UserData userData = UserData.GetUserData();

            // проверка входа в систему
            userData.CheckLoggedOn(Context, false);
            if (!userData.LoggedOn)
            {
                throw new Exception(WebPhrases.NotLoggedOn);
            }

            // перевод веб-страницы
            Localization.TranslatePage(this, "Scada.Web.WFrmTableView");

            // определение индексов выбранного представления
            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(typeof(TableView), viewSetIndex, viewIndex,
                                                        out baseView, out right) ? (TableView)baseView : null;

            // проверка загрузки представления и прав на просмотр информации
            if (tableView == null)
            {
                throw new Exception(WebPhrases.UnableLoadView);
            }
            else if (!right.ViewRight)
            {
                throw new Exception(CommonPhrases.NoRights);
            }

            // определение параметров запроса
            int year, month, day, stage;

            int.TryParse(Request["year"], out year);
            int.TryParse(Request["month"], out month);
            int.TryParse(Request["day"], out day);
            int.TryParse(Request["stage"], out stage);

            DateTime reqDate;

            try
            {
                reqDate = new DateTime(year, month, day);
            }
            catch
            {
                throw new Exception(WebPhrases.IncorrectDate);
            }

            // формирование таблицы отображаемых элементов представления
            int itemCnt     = tableView.VisibleCount;
            int itemLastInd = itemCnt - 1;

            if (itemCnt > 0)
            {
                // формирование таблицы обозначений элементов представления
                TableRow row = new TableRow();
                row.CssClass = "hdr";
                NewCell(row, WebPhrases.ItemColumn);
                tblCap.Rows.Add(row);

                const string textHtmlTempl = "<table class=\"cap\" cellpadding=\"0\" cellspacing=\"0\"><tr>" +
                                             "<td>{0}</td><td>{1}</td><td>{2}</td></tr></table>";
                const string hintHtmlTempl = "<div class=\"hint\">{0}</div>";
                const string iconHtmlTempl = "<img src=\"images/paramIcons/{0}\" alt=\"\" />";
                const string capHtmlTempl  = "<span>{0}</span>";
                const string diagHtmlTempl = "<a href=\"javascript:ShowDiag({0}, {1}, {2}, {3}, {4}, {5})\">";
                const string cmdHtmlTempl  = "<a href=\"javascript:SendCmd({0}, {1}, {2})\">" +
                                             "<img src=\"images/cmd.gif\" alt=\"\" /></a>";
                bool canSendCmd = AppData.WebSettings.CmdEnabled && right.CtrlRight;

                for (int itemInd = 0; itemInd < itemCnt; itemInd++)
                {
                    TableView.Item item        = tableView.VisibleItems[itemInd];
                    int            cnlNum      = item.CnlNum;
                    int            cntrlCnlNum = item.CtrlCnlNum;
                    string         text;

                    if (cnlNum > 0 || cntrlCnlNum > 0)
                    {
                        CnlProps cnlProps = item.CnlProps;

                        List <string> hintLines = new List <string>();
                        if (cnlNum > 0)
                        {
                            hintLines.Add(WebPhrases.InCnlNumHint + cnlNum);
                        }
                        if (cntrlCnlNum > 0)
                        {
                            hintLines.Add(WebPhrases.OutCnlNumHint + cntrlCnlNum);
                        }
                        if (cnlProps != null)
                        {
                            hintLines.Add(WebPhrases.ObjectHint + cnlProps.ObjName);
                            hintLines.Add(WebPhrases.KPHint + cnlProps.KPName);
                            hintLines.Add(WebPhrases.ParamHint + cnlProps.ParamName);
                            if (cnlProps.ShowNumber && cnlProps.UnitArr != null && cnlProps.UnitArr.Length > 0)
                            {
                                hintLines.Add(WebPhrases.UnitHint + cnlProps.UnitArr[0]);
                            }
                        }

                        string hint         = string.Join("<br />", hintLines.ToArray());
                        string hintHtml     = string.Format(hintHtmlTempl, hint);
                        string iconFileName = cnlProps == null || cnlProps.IconFileName == "" ?
                                              "undef.gif" : cnlProps.IconFileName;
                        string iconHtml = string.Format(iconHtmlTempl, iconFileName);
                        string capHtml  = string.Format(capHtmlTempl, item.Caption);
                        string cmdHtml  = canSendCmd && cntrlCnlNum > 0 ?
                                          string.Format(cmdHtmlTempl, viewSetIndex, viewIndex, cntrlCnlNum) : "";

                        if (cnlNum > 0)
                        {
                            string diagHtml = string.Format(diagHtmlTempl,
                                                            viewSetIndex, viewIndex, year, month, day, cnlNum);
                            iconHtml = diagHtml + iconHtml + "</a>";
                            capHtml  = diagHtml + capHtml + "</a>";
                        }

                        text = string.Format(textHtmlTempl, iconHtml + hintHtml, capHtml, cmdHtml);
                    }
                    else
                    {
                        text = item.Caption == "" ? "<p>&nbsp;</p>" : "<p>" + item.Caption + "</p>";
                    }

                    row = new TableRow();
                    SetCssClass(row, itemInd % 3 == 2, itemInd == itemLastInd);
                    NewCell(row, text);
                    tblCap.Rows.Add(row);
                }

                // получение обновлённых данных часовых срезов
                SrezTableLight hourTable;
                AppData.MainData.RefreshData(reqDate, out hourTable);

                // формирование ячейки текущего среза
                row          = new TableRow();
                row.CssClass = "hdr";
                NewCell(row, WebPhrases.CurColumn);
                tblCur.Rows.Add(row);

                row = new TableRow();
                NewCell(row, "<iframe id=\"frameCurVal\" src=\"" +
                        "CurVals.aspx?viewSet=" + viewSetIndex + "&view=" + viewIndex + "&year=" + year +
                        "&month=" + month + "&day=" + day + "&hourStamp=" + hourTable.FileModTime.Ticks +
                        "\" frameborder=\"0\" scrolling=\"no\"></iframe>");
                tblCur.Rows.Add(row);

                // формирование заголовка таблицы часовых значений
                int firstHour = stage == 2 ? 12 : 0;
                int lastHour  = stage == 1 ? 11 : 23;
                row          = new TableRow();
                row.CssClass = "hdr";
                tblHour.Rows.Add(row);

                for (int hour = firstHour; hour <= lastHour; hour++)
                {
                    NewCell(row, hour.ToString());
                }

                // формирование содержимого таблицы часовых значений
                // для оптимизации доступа к данным порядок заполнения следующий: по часам, по элементам
                for (int hour = firstHour; hour <= lastHour; hour++)
                {
                    bool     isFirstHour = hour == firstHour;
                    DateTime dateTime    = new DateTime(year, month, day, hour, 0, 0);
                    int      rowInd      = 1;

                    for (int itemInd = 0; itemInd < itemCnt; itemInd++)
                    {
                        TableView.Item item = tableView.VisibleItems[itemInd];
                        string         text;
                        string         color;

                        if (item.CnlNum > 0)
                        {
                            text = AppData.MainData.GetCnlVal(hourTable, item.CnlNum, dateTime, false, out color);
                        }
                        else
                        {
                            text  = "";
                            color = "";
                        }

                        if (isFirstHour)
                        {
                            row = new TableRow();
                            SetCssClass(row, itemInd % 3 == 2, itemInd == itemLastInd);
                            tblHour.Rows.Add(row);
                            text = text == "" ? "<p>&nbsp;</p>" : "<p>" + text + "</p>";
                        }
                        else
                        {
                            row = tblHour.Rows[rowInd++];
                        }

                        TableCell cell = NewCell(row, text);

                        if (!(color == "" || color.ToLower() == "black"))
                        {
                            cell.ForeColor = Color.FromName(color);
                        }
                    }
                }
            }
            else
            {
                tblCap.Visible    = false;
                tblCur.Visible    = false;
                tblHour.Visible   = false;
                lblNoData.Visible = true;
            }
        }
Esempio n. 5
0
        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));
            }
        }
Esempio n. 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

            // получение данных пользователя
            UserData userData = UserData.GetUserData();

            // проверка входа в систему
            userData.CheckLoggedOn(Context, false);
            if (!userData.LoggedOn)
            {
                throw new Exception(WebPhrases.NotLoggedOn);
            }

            // перевод веб-страницы
            Localization.TranslatePage(this, "Scada.Web.WFrmEvTable");

            // определение индексов выбранного представления
            int viewSetIndex, viewIndex;

            if (!int.TryParse(Request["viewSet"], out viewSetIndex))
            {
                viewSetIndex = -1;
            }
            if (!int.TryParse(Request["view"], out viewIndex))
            {
                viewIndex = -1;
            }

            // получение представления и прав пользователя на него
            BaseView view;

            MainData.Right right;
            userData.GetView(null, viewSetIndex, viewIndex, out view, out right);

            // вывод сообщения о загрузке
            if (view == null && right.ViewRight)
            {
                lblLoading.Visible = true;
                tblEv.Visible      = false;
                hidEvStamp.Value   = "-1";
                return;
            }

            // определение фильтра событий
            bool showAllEvents = Request["filter"] == "all";

            // проверка загрузки представления и прав на просмотр информации
            if (view == null)
            {
                throw new Exception(WebPhrases.UnableLoadView);
            }
            else if (!right.ViewRight || showAllEvents && 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);
            }

            // получение обновлённых данных событий
            EventTableLight eventTable;

            AppData.MainData.RefreshEvents(reqDate, out eventTable);
            hidEvStamp.Value = eventTable.FileModTime.Ticks.ToString();

            List <int> cnlList = showAllEvents ? null : view.CnlList;
            List <MainData.EventView> events = AppData.MainData.ConvertEvents(
                AppData.MainData.GetLastEvents(eventTable, cnlList, AppData.WebSettings.EventCnt));

            if (events.Count > 0)
            {
                for (int eventInd = events.Count - 1; eventInd >= 0; eventInd--)
                {
                    MainData.EventView eventView = events[eventInd];
                    TableRow           row       = new TableRow();
                    WFrmTableView.NewCell(row, eventView.Num, "c");
                    WFrmTableView.NewCell(row, eventView.Date, "c");
                    WFrmTableView.NewCell(row, eventView.Time, "c");
                    WFrmTableView.NewCell(row, eventView.Obj);
                    WFrmTableView.NewCell(row, eventView.KP);
                    WFrmTableView.NewCell(row, eventView.Cnl);
                    WFrmTableView.NewCell(row, eventView.Text);

                    // установка номера события для воспроизведения звука при загрузке страницы
                    if (eventView.Sound && string.IsNullOrEmpty(hidSndEvNum.Value))
                    {
                        hidSndEvNum.Value = eventView.Num;
                    }

                    // формирование ячейки квитирования
                    if (right.CtrlRight && !eventView.Check)
                    {
                        string chkCellText = "<a href=\"javascript:CheckEvent(" + viewSetIndex + ", " + viewIndex +
                                             ", " + year + ", " + month + ", " + day + ", " + eventView.Num +
                                             ")\" style=\"color: " + eventView.Color + "\">" + eventView.User + "</a>";
                        WFrmTableView.NewCell(row, chkCellText, "c");
                    }
                    else
                    {
                        WFrmTableView.NewCell(row, eventView.User, "c");
                    }

                    // установка свойств строки таблицы
                    WFrmTableView.SetCssClass(row, eventInd % 3 == 2, eventInd == 0);
                    string color = eventView.Color;
                    if (!(color == "" || color.ToLower() == "black"))
                    {
                        row.ForeColor = Color.FromName(color);
                    }
                    tblEv.Rows.Add(row);
                }
            }
            else
            {
                lblNoData.Visible = true;
                tblEv.Visible     = false;
            }
        }
Esempio n. 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

            // получение данных пользователя
            UserData userData = UserData.GetUserData();

            // определение индексов выбранного представления
            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(typeof(TableView), viewSetIndex, viewIndex,
                                                        out baseView, out right) ? (TableView)baseView : null;

            // проверка входа в систему и прав на просмотр информации
            if (userData.LoggedOn && tableView != null && right.ViewRight)
            {
                // определение параметров запроса
                int year, month, day;
                int.TryParse(Request["year"], out year);
                int.TryParse(Request["month"], out month);
                int.TryParse(Request["day"], out day);
                string hourStamp = Request["hourStamp"];

                DateTime reqDate;
                try
                {
                    reqDate = new DateTime(year, month, day);
                }
                catch
                {
                    throw new Exception(WebPhrases.IncorrectDate);
                }

                // обновление данных
                SrezTableLight hourTable;
                AppData.MainData.RefreshData(reqDate, out hourTable);

                // формирование таблицы текущих значений элементов представления
                int itemCnt     = tableView.VisibleCount;
                int itemLastInd = itemCnt - 1;

                for (int itemInd = 0; itemInd < itemCnt; itemInd++)
                {
                    TableView.Item item = tableView.VisibleItems[itemInd];
                    string         text;
                    string         color;

                    if (item.CnlNum > 0)
                    {
                        text = AppData.MainData.GetCnlVal(item.CnlNum, false, out color);
                    }
                    else
                    {
                        text  = "";
                        color = "";
                    }

                    TableRow  row  = new TableRow();
                    TableCell cell = WFrmTableView.NewCell(row, text == "" ? "<p>&nbsp;</p>" : "<p>" + text + "</p>");
                    WFrmTableView.SetCssClass(row, itemInd % 3 == 2, itemInd == itemLastInd);
                    tblCurVals.Rows.Add(row);

                    if (!(color == "" || color.ToLower() == "black"))
                    {
                        cell.ForeColor = Color.FromName(color);
                    }
                }


                if (string.IsNullOrEmpty(hourStamp) || hourStamp == hourTable.FileModTime.Ticks.ToString())
                {
                    // добавление скрипта обновления текущих значений по таймауту
                    AddRefreshCurValsScript(AppData.WebSettings.SrezRefrFreq * 1000);
                }
                else
                {
                    // добавление скрипта обновления часовых значений при загрузке
                    AddRefreshHourValsScript();
                }
            }
            else
            {
                // добавление скрипта обновления часовых значений при загрузке
                // для перехода на страницу входа в систему
                AddRefreshHourValsScript();
            }
        }
Esempio n. 8
0
        protected string viewFileNameArrStr; // строковая запись массива имён файлов представлений

        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

            // получение данных пользователя
            UserData userData = UserData.GetUserData();

            // проверка входа в систему
            userData.CheckLoggedOn(Context);

            // перевод веб-страницы
            Localization.TranslatePage(this, "Scada.Web.WFrmMain");

            // определение индекса выбранного при входе набора представлений
            int viewSetInd;

            int.TryParse(Request.Params["viewSet"], out viewSetInd);
            viewSetIndStr = viewSetInd.ToString();

            // получение выбранного набора представлений, если на него есть права
            ViewSettings.ViewSet viewSet = null;
            int viewCnt = 0;

            if (userData.GetViewSetRight(viewSetInd).ViewRight)
            {
                List <ViewSettings.ViewSet> viewSetList = userData.ViewSettings.ViewSetList;

                if (0 <= viewSetInd && viewSetInd < viewSetList.Count)
                {
                    viewSet = viewSetList[viewSetInd];
                    viewCnt = viewSet.Count;

                    // вывод заголовка страницы
                    Title = "SCADA - " + viewSet.Name;

                    // заполнение списка представлений
                    bool first = true;
                    for (int i = 0; i < viewCnt; i++)
                    {
                        if (userData.GetViewRight(viewSetInd, i).ViewRight)
                        {
                            ListItem item = new ListItem(viewSet[i].Title, i.ToString());
                            item.Selected = first;
                            ddlView.Items.Add(item);
                            first = false;
                        }
                    }
                }
            }

            // заполнение списков дней, месяцев и годов, выбор текущей даты
            DateTime today  = DateTime.Today;
            int      curDay = today.Day;

            for (int day = 1; day <= 31; day++)
            {
                string   dayStr = day.ToString();
                ListItem item   = new ListItem(day < 10 ? "0" + dayStr : dayStr, dayStr);
                item.Selected = day == curDay;
                ddlDay.Items.Add(item);
            }

            int curMonth = today.Month;

            string[] monthNames = Localization.Culture.DateTimeFormat.MonthNames;

            for (int month = 1; month <= 12; month++)
            {
                ListItem item = new ListItem(monthNames[month - 1], month.ToString());
                item.Selected = month == curMonth;
                ddlMonth.Items.Add(item);
            }

            for (int i = 0, year = today.Year; i < 10; i++, year--)
            {
                string   yearStr = year.ToString();
                ListItem item    = new ListItem(yearStr, yearStr);
                item.Selected = i == 0;
                ddlYear.Items.Add(item);
            }

            // добавление скрипта перемещения выпадающего списка дней после списка месяцев, если необходимо
            if (Localization.DayAfterMonth)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "Startup", "PlaceDayAfterMonth();", true);
            }

            // привязка событий
            ddlView.Attributes["onchange"]    = "ShowData()";
            ddlDay.Attributes["onchange"]     = "ShowData()";
            ddlMonth.Attributes["onchange"]   = "ShowData()";
            ddlYear.Attributes["onchange"]    = "ShowData()";
            rbStage1.Attributes["onclick"]    = "ShowView()";
            rbStage2.Attributes["onclick"]    = "ShowView()";
            rbStageFull.Attributes["onclick"] = "ShowView()";

            // настройка отображения событий и фрейма для проверка входа в систему
            pnlEvents.Visible         = AppData.WebSettings.EventCnt > 0;
            frameLoginChecker.Visible = !pnlEvents.Visible;

            // формирование массивов, описывающих представления
            if (viewCnt > 0)
            {
                string[] viewTypeArr     = new string[viewCnt];
                string[] viewFileNameArr = new string[viewCnt];

                for (int i = 0; i < viewCnt; i++)
                {
                    ViewSettings.ViewInfo viewInfo = viewSet[i];
                    viewTypeArr[i]     = "\"" + viewInfo.Type + "\"";
                    viewFileNameArr[i] = "\"" + viewInfo.FileName + "\"";
                }

                viewTypeArrStr     = "[" + string.Join(", ", viewTypeArr) + "]";
                viewFileNameArrStr = "[" + string.Join(", ", viewFileNameArr) + "]";
            }
            else
            {
                viewTypeArrStr     = "\"\"";
                viewFileNameArrStr = "\"\"";
            }
        }
Esempio n. 9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // disable the page caching
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

            // get the current user data
            // получение данных пользователя
            UserData userData = UserData.GetUserData();

            // check login
            // проверка входа в систему
            userData.CheckLoggedOn(Context, false);
            if (!userData.LoggedOn)
            {
                throw new Exception(WebPhrases.NotLoggedOn);
            }

            // get the selected view indexes
            // определение индексов выбранного представления
            int viewSetIndex;

            if (!int.TryParse(Request["viewSet"], out viewSetIndex))
            {
                viewSetIndex = -1;
            }
            int viewIndex;

            if (!int.TryParse(Request["view"], out viewIndex))
            {
                viewIndex = -1;
            }

            // get the view and user rights
            // получение представления и прав пользователя на него
            BaseView view;

            MainData.Right right;
            userData.GetView(typeof(WebPageView), viewSetIndex, viewIndex, out view, out right);

            // check the view loading and check the view rights
            // проверка загрузки представления и прав на просмотр информации
            if (view == null)
            {
                throw new Exception(WebPhrases.UnableLoadView);
            }
            else if (!right.ViewRight)
            {
                throw new Exception(CommonPhrases.NoRights);
            }

            // retrieve the page information, fill the lists of channels used in the view
            // извлечение информации о веб-странице и заполнение списков каналов, используемых в представлении
            PageInfo pageInfo = PageInfo.ParsePage(this);

            ((WebPageView)view).AddCnlNums(pageInfo);

            // get the date for diagrams
            // определение даты, используемой для построения графиков
            DateTime diagDate;

            try
            {
                diagDate = new DateTime(int.Parse(Request["year"]), int.Parse(Request["month"]),
                                        int.Parse(Request["day"]));
            }
            catch { diagDate = DateTime.Today; }

            // refresh the current data
            // обновление таблицы текущего среза
            AppData.MainData.RefreshData();

            // display the input channels data
            // вывод значений входных каналов
            foreach (CnlBinding cnlBinding in pageInfo.InCnlBindings)
            {
                Control ctrl     = cnlBinding.Control;
                int     inCnlNum = cnlBinding.CnlNum;

                if (ctrl is Label)
                {
                    Label lbl = (Label)ctrl;

                    if (inCnlNum > 0)
                    {
                        string color;
                        lbl.Text      = AppData.MainData.GetCnlVal(inCnlNum, false, out color);
                        lbl.ForeColor = Color.FromName(color);
                    }
                    else
                    {
                        lbl.Text = "";
                    }
                }
                else if (cnlBinding.Control is HyperLink)
                {
                    HyperLink hl = (HyperLink)ctrl;

                    if (inCnlNum > 0)
                    {
                        string color;
                        hl.NavigateUrl = "javascript:ShowDiag(" + viewSetIndex + ", " + viewIndex + ", " +
                                         diagDate.Year + ", " + diagDate.Month + ", " + diagDate.Day + ", " + inCnlNum + ", '../')";
                        hl.Text      = AppData.MainData.GetCnlVal(inCnlNum, false, out color);
                        hl.ForeColor = Color.FromName(color);
                    }
                    else
                    {
                        hl.Text = "";
                    }
                }
            }

            // tune up the links binded to input channels
            // настройка ссылок, связанных с каналами управления
            foreach (CnlBinding cnlBinding in pageInfo.CtrlCnlBindings)
            {
                Control ctrl       = cnlBinding.Control;
                int     ctrlCnlNum = cnlBinding.CnlNum;

                if (cnlBinding.Control is HyperLink)
                {
                    HyperLink hl = (HyperLink)ctrl;

                    if (ctrlCnlNum > 0)
                    {
                        if (right.CtrlRight)
                        {
                            hl.NavigateUrl = "javascript:SendCmd(" + viewSetIndex + ", " + viewIndex + ", " +
                                             ctrlCnlNum + ", '../')";
                        }
                        else
                        {
                            hl.Visible = false;
                        }
                    }
                    else
                    {
                        hl.Text = "";
                    }
                }
            }
        }