示例#1
0
文件: FrmMain.cs 项目: raydtang/scada
        /// <summary>
        /// Конструктор
        /// </summary>
        public FrmMain()
        {
            InitializeComponent();

            exeDir = "";
            configDir = "";
            webAppDir = "";
            commSettings = new CommSettings();
            webSettings = new WebSettings();
            viewSettings = new ViewSettings();
            regKey = "";

            loadedCommSettings = null;
            loadedWebSettings = null;
            loadedViewSettings = null;
            loadedRegKey = "";

            commSettingsChanged = false;
            webSettingsChanged = false;
            viewSettingsChanged = false;
            regKeyChanged = false;
            showing = false;

            selViewSet = null;
            selViewInfo = null;
        }
示例#2
0
文件: FrmMain.cs 项目: raydtang/scada
        private void tvTableSets_AfterSelect(object sender, TreeViewEventArgs e)
        {
            // определение выбранного набора или представления, вывод их свойств
            TreeNode node = e.Node;
            selViewSet = node.Tag as ViewSettings.ViewSet;
            selViewInfo = node.Tag as ViewSettings.ViewInfo;

            txtName.TextChanged -= txtName_TextChanged;
            txtDirOrFile.TextChanged -= txtDirOrFile_TextChanged;
            cbType.SelectedIndexChanged -= cbType_SelectedIndexChanged;

            if (selViewSet != null)
            {
                txtName.Text = selViewSet.Name;
                lblDir.Visible = true;
                lblFile.Visible = false;
                txtDirOrFile.Text = selViewSet.Directory;
                btnSelectView.Visible = false;
                lblType.Visible = cbType.Visible = false;
            }
            else if (selViewInfo != null)
            {
                selViewSet = node.Parent.Tag as ViewSettings.ViewSet;
                txtName.Text = selViewInfo.Title;
                lblDir.Visible = false;
                lblFile.Visible = true;
                txtDirOrFile.Text = selViewInfo.FileName;
                btnSelectView.Visible = true;
                lblType.Visible = cbType.Visible = true;
                cbType.SelectedIndex = GetViewTypeIndex(selViewInfo.Type);
            }
            else
            {
                txtName.Text = "";
                lblDir.Visible = true;
                lblFile.Visible = false;
                txtDirOrFile.Text = "";
                btnSelectView.Visible = false;
                lblType.Visible = cbType.Visible = false;
            }

            txtName.TextChanged += txtName_TextChanged;
            txtDirOrFile.TextChanged += txtDirOrFile_TextChanged;
            cbType.SelectedIndexChanged += cbType_SelectedIndexChanged;
        }
示例#3
0
文件: FrmMain.cs 项目: raydtang/scada
        private void btnAddView_Click(object sender, EventArgs e)
        {
            // добавление нового представления
            ViewSettings.ViewSet viewSet = selViewSet;
            if (viewSet == null && viewSettings.ViewSetList.Count > 0)
                viewSet = viewSettings.ViewSetList[viewSettings.ViewSetList.Count - 1];

            if (viewSet == null)
            {
                ScadaUtils.ShowError(AppPhrases.ChooseSetToAddView);
            }
            else
            {
                int viewInd = viewSet.Items.IndexOf(selViewInfo) + 1;
                if (viewInd <= 0 || viewInd > viewSet.Count)
                    viewInd = viewSet.Count;

                ViewSettings.ViewInfo newViewInfo = new ViewSettings.ViewInfo(AppPhrases.NewViewTitle, "TableView", "");
                viewSet.Items.Insert(viewInd, newViewInfo);
                int tableSetInd = viewSettings.ViewSetList.IndexOf(viewSet);
                TreeNode nodeTable = tvTableSets.Nodes[tableSetInd].Nodes.Insert(viewInd, newViewInfo.Title);
                nodeTable.Tag = newViewInfo;

                txtName.Enabled = true;
                txtDirOrFile.Enabled = true;
                tvTableSets.SelectedNode = nodeTable;
                ActiveControl = txtName;
                viewSets_Changed();
            }
        }
示例#4
0
文件: FrmMain.cs 项目: raydtang/scada
        private void btnDelete_Click(object sender, EventArgs e)
        {
            // удаление набора или представления
            if (selViewSet == null && selViewInfo == null)
            {
                ScadaUtils.ShowError(AppPhrases.ChooseViewToDelete);
            }
            else
            {
                if (selViewInfo == null)
                {
                    // удаление набора таблиц
                    int ind = viewSettings.ViewSetList.IndexOf(selViewSet);
                    viewSettings.ViewSetList.RemoveAt(ind);
                    tvTableSets.Nodes.RemoveAt(ind);

                    // определение выбранного набора таблиц
                    if (--ind < 0)
                        ind = 0;

                    if (ind < viewSettings.ViewSetList.Count)
                    {
                        selViewSet = viewSettings.ViewSetList[ind];
                        tvTableSets.SelectedNode = tvTableSets.Nodes[ind];
                    }
                    else
                    {
                        selViewSet = null;
                        tvTableSets.SelectedNode = null;

                        txtName.Text = "";
                        txtName.Enabled = false;
                        lblDir.Visible = true;
                        lblFile.Visible = false;
                        txtDirOrFile.Text = "";
                        txtDirOrFile.Enabled = false;
                        btnSelectView.Visible = false;
                    }
                }
                else
                {
                    // удаление представления
                    int tableInd = selViewSet.Items.IndexOf(selViewInfo);
                    selViewSet.Items.RemoveAt(tableInd);
                    int tableSetInd = viewSettings.ViewSetList.IndexOf(selViewSet);
                    TreeNode nodeTableSet = tvTableSets.Nodes[tableSetInd];
                    nodeTableSet.Nodes.RemoveAt(tableInd);

                    // определение выбранного представления
                    if (--tableInd < 0)
                        tableInd = 0;

                    if (tableInd < selViewSet.Count)
                    {
                        selViewInfo = selViewSet[tableInd];
                        tvTableSets.SelectedNode = nodeTableSet.Nodes[tableInd];
                    }
                    else
                    {
                        selViewInfo = null;
                        tvTableSets.SelectedNode = nodeTableSet;
                    }
                }

                viewSets_Changed();
            }
        }
示例#5
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);
            }

            // добавление скрипта перемещения выпадающего списка дней после списка месяцев, если необходимо
            string pattern = Localization.Culture.DateTimeFormat.ShortDatePattern.ToLower();

            if (pattern.IndexOf('m') < pattern.IndexOf('d'))
            {
                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 = "\"\"";
            }
        }