Esempio n. 1
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. 2
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();
            }
        }