Example #1
0
 private void MainForm_Load(object sender, EventArgs e)
 {
     #region 畫面加入
     navigationFrame = new NavigationFrame()
     {
         Dock = DockStyle.Fill, Parent = panelControl1
     };                                                                                        //切換畫面動畫
     NoneView noneView = new NoneView()
     {
         Dock = DockStyle.Fill
     };
     field4UserControls.Add(noneView);
     navigationFrame.AddPage(noneView);
     ProjectCreateView projectCreateView = new ProjectCreateView()
     {
         Dock = DockStyle.Fill
     };
     field4UserControls.Add(projectCreateView);
     navigationFrame.AddPage(projectCreateView);
     #endregion
 }
Example #2
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            this.Location   = new Point(500, 150);//視窗起始位置
            navigationFrame = new NavigationFrame()
            {
                Dock = DockStyle.Fill, Parent = MainpanelControl
            };                                                                                           //切換畫面動畫
            #region 顯示畫面
            LoginView screenView = new LoginView()
            {
                Dock = DockStyle.Fill, mainForm = this
            };
            field4UserControls.Add(screenView);
            navigationFrame.AddPage(screenView);

            SettingView settingView = new SettingView()
            {
                Dock = DockStyle.Fill
            };
            field4UserControls.Add(settingView);
            navigationFrame.AddPage(settingView);
            #endregion
        }
Example #3
0
        public Form1()
        {
            #region Serilog initial
            Log.Logger = new LoggerConfiguration()
                         .WriteTo.Console()
                         .WriteTo.File($"{AppDomain.CurrentDomain.BaseDirectory}\\log\\log-.txt",
                                       rollingInterval: RollingInterval.Day,
                                       outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}")
                         .CreateLogger();       //宣告Serilog初始化
            #endregion

            #region Loading initial
            FluentSplashScreenOptions op = new FluentSplashScreenOptions();
            op.Title                = "太陽能資料蒐集系統";//太陽能資料蒐集系統  帆宣自動化抄表系統
            op.Subtitle             = "Automatic Meter Reading System";
            op.LeftFooter           = "Copyright © 2021 SIN MAO Energy CO., LTD." + Environment.NewLine + "All Rights reserved.";
            op.LoadingIndicatorType = FluentLoadingIndicatorType.Dots;
            op.OpacityColor         = Color.FromArgb(62, 91, 135);
            op.Opacity              = 130;
            SplashScreenManager.ShowFluentSplashScreen(
                op,
                parentForm: this,
                useFadeIn: true,
                useFadeOut: true
                );
            #endregion

            #region  入資料庫JSON
            op.RightFooter = $"載入資料庫資訊";
            SplashScreenManager.Default.SendCommand(FluentSplashScreenCommand.UpdateOptions, op);
            SystemSetting = InitialMethod.SystemLoad();
            Thread.Sleep(1000);
            #endregion

            #region  入按鈕JSON
            op.RightFooter = $"載入按鈕資訊";
            SplashScreenManager.Default.SendCommand(FluentSplashScreenCommand.UpdateOptions, op);
            ButtonSetting = InitialMethod.InitialButtonLoad();
            Thread.Sleep(1000);
            #endregion

            #region  入匯出報表JSON
            op.RightFooter = $"載入匯出報表資訊";
            SplashScreenManager.Default.SendCommand(FluentSplashScreenCommand.UpdateOptions, op);
            XtraReportSetting = InitialMethod.InitialXtraReportLoad();

            Thread.Sleep(1000);
            #endregion

            #region JSON錯誤資訊檢查
            if (SystemSetting == null && ButtonSetting == null && XtraReportSetting == null)
            {
                ErrorStr = "資料庫與按鈕Json錯誤";
            }
            else if (SystemSetting != null && ButtonSetting == null && XtraReportSetting != null)
            {
                ErrorStr = "按鈕Json錯誤";
            }
            else if (SystemSetting == null && ButtonSetting != null && XtraReportSetting != null)
            {
                ErrorStr = "資料庫Json錯誤";
            }
            else if (SystemSetting != null && ButtonSetting != null && XtraReportSetting == null)
            {
                ErrorStr = "匯出報表Json錯誤";
            }
            if (ErrorStr == "")
            {
                op.RightFooter = $"載入完成";
                SplashScreenManager.Default.SendCommand(FluentSplashScreenCommand.UpdateOptions, op);
                Thread.Sleep(1000);
                SplashScreenManager.CloseForm();
            }
            else
            {
                op.RightFooter = $"{ErrorStr}";
                SplashScreenManager.Default.SendCommand(FluentSplashScreenCommand.UpdateOptions, op);
                Thread.Sleep(5000);
                SplashScreenManager.CloseForm();
            }
            #endregion

            InitializeComponent();
            if (ErrorStr == "")
            {
                Change_Logo();                                                                   //載入Logo
                SettingbarButtonItem.ImageOptions.Image = imageCollection1.Images["technology"]; //設定按鈕圖
                #region 建立資料庫物件
                MysqlMethod = new MysqlMethod(SystemSetting);
                if (SystemSetting != null)
                {
                    GatewayConfigs = MysqlMethod.Search_GatewayConfig();
                }
                #endregion

                #region 建立通訊
                if (GatewayConfigs != null)
                {
                    foreach (var item in GatewayConfigs)
                    {
                        GatewayTypeEnum gatewayType = (GatewayTypeEnum)item.GatewayTypeEnum;
                        switch (gatewayType)
                        {
                        case GatewayTypeEnum.ModbusRTU:
                        {
                            SerialportMasterComponent serialport = new SerialportMasterComponent(item, MysqlMethod)
                            {
                                MysqlMethod = MysqlMethod
                            };
                            serialport.MyWorkState = true;
                            Field4Components.Add(serialport);
                        }
                        break;

                        case GatewayTypeEnum.ModbusTCP:
                        {
                            TCPMasterComponent TCP = new TCPMasterComponent(item, MysqlMethod)
                            {
                                MysqlMethod = MysqlMethod
                            };
                            TCP.MyWorkState = true;
                            Field4Components.Add(TCP);
                        }
                        break;
                        }
                    }
                }
                #endregion

                #region 建立按鈕物件
                NavigationFrame = new NavigationFrame()
                {
                    Dock = DockStyle.Fill
                };
                NavigationFrame.Parent = ViewpanelControl;
                ButtonMethod           = new ButtonMethod()
                {
                    Form1 = this, navigationFrame = NavigationFrame
                };
                ButtonMethod.AccordionLoad(accordionControl1, ButtonSetting);
                #endregion

                #region 建立畫面
                foreach (var Componentitem in Field4Components)
                {
                    foreach (var Absprotocolitem in Componentitem.ElectricAbsProtocols)
                    {
                        ElectricAbsProtocols.Add(Absprotocolitem);
                    }
                }
                #region 主畫面
                MainUserControl main = new MainUserControl(MysqlMethod, ElectricAbsProtocols)
                {
                    Dock = DockStyle.Fill
                };
                NavigationFrame.AddPage(main);
                Field4UserControls.Add(main);
                #endregion
                #region 報表畫面
                ChartUserControl chart = new ChartUserControl(MysqlMethod)
                {
                    Dock = DockStyle.Fill
                };
                NavigationFrame.AddPage(chart);
                Field4UserControls.Add(chart);
                #endregion
                #region 月報表畫面
                xtraReportUserControl = new XtraReportUserControl(MysqlMethod)
                {
                    Dock = DockStyle.Fill
                };
                NavigationFrame.AddPage(xtraReportUserControl);
                #endregion
                #endregion
            }
            timer1.Interval = 1000;
            timer1.Enabled  = true;
        }
Example #4
0
        public Form1()
        {
            InitializeComponent();
            Log.Logger = new LoggerConfiguration()
                         .WriteTo.Console()
                         .WriteTo.File($"{AppDomain.CurrentDomain.BaseDirectory}\\log\\log-.txt",
                                       rollingInterval: RollingInterval.Day,
                                       outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}")
                         .CreateLogger(); //宣告Serilog初始化

            UserbarButtonItem.ImageOptions.Image    = imageCollection16x16.Images["UserDisconnected"];
            SettingbarButtonItem.ImageOptions.Image = imageCollection16x16.Images["Setting"];
            SettingbarButtonItem.Visibility         = BarItemVisibility.Never;
            #region  Json載入
            ButtonSetting      = InitialMethod.ButtonLoad();
            LogoSetting        = InitialMethod.LogoLoad();
            SqlDBSetting       = InitialMethod.SqlDBLoad();
            BankAccountSetting = InitialMethod.BankAccountLoad();
            DemoSetting        = InitialMethod.DemoLoad();
            #endregion
            ConnectionFlag = DemoSetting.ConnectionFlag;

            #region  入Logo圖片
            if (LogoSetting != null)
            {
                if (File.Exists(LogoSetting.LogoPath))
                {
                    LogopictureEdit.Image = Image.FromFile(LogoSetting.LogoPath);
                }
                else
                {
                    LogopictureEdit.Image = LogoimageCollection.Images["ewatch_logo"];
                }
            }
            else
            {
                LogopictureEdit.Image = LogoimageCollection.Images["ewatch_logo"];
            }
            #endregion

            #region  鈕載入
            NavigationFrame = new NavigationFrame()
            {
                Dock = DockStyle.Fill
            };
            NavigationFrame.Parent = DisplaypanelControl;
            ButtonControl          = new ButtonControl()
            {
                Form1 = this, navigationFrame = NavigationFrame
            };
            ButtonControl.AccordionLoad(accordionControl1, ButtonSetting);
            #endregion

            #region 資料庫方法載入
            if (SqlDBSetting != null && ConnectionFlag)
            {
                SqlMethod = new SqlMethod()
                {
                    setting = SqlDBSetting, BankAccountSetting = BankAccountSetting
                };
                SqlMethod.SQLConnect();
                if (SqlMethod.Search_DataBase())
                {
                    SQLDataBaseFlag = true;
                    GatewayConfigs  = SqlMethod.Search_GatewayConfig();  //通道資訊
                    ElectricConfigs = SqlMethod.Search_Electricconfig(); //電表設備資訊
                    SqlComponent    = new SqlComponent()
                    {
                        SqlMethod = SqlMethod, BankAccountSetting = BankAccountSetting
                    };
                    SqlComponent.MyWorkState = ConnectionFlag;
                }
                else
                {
                    SQLDataBaseFlag = false;
                }
            }
            else if (!ConnectionFlag)
            {
                SQLDataBaseFlag = true;
                GatewayConfig gateway = new GatewayConfig()
                {
                    GatewayIndex = 0, GatewayName = "通道1"
                };
                GatewayConfigs.Add(gateway);
                for (int i = 0; i < 20; i++)
                {
                    if (i == 0)
                    {
                        ElectricConfig electric = new ElectricConfig()
                        {
                            TotalMeterFlag = true, DeviceName = $"電表{i + 1}", GatewayIndex = 0, DeviceIndex = i, DeviceID = i + 1
                        };
                        ElectricConfigs.Add(electric);
                    }
                    else
                    {
                        ElectricConfig electric = new ElectricConfig()
                        {
                            TotalMeterFlag = false, DeviceName = $"電表{i + 1}", GatewayIndex = 0, DeviceIndex = i, DeviceID = i + 1
                        };
                        ElectricConfigs.Add(electric);
                    }
                }
            }
            #endregion

            #region 通訊
            if (ConnectionFlag && GatewayConfigs != null && ElectricConfigs != null)
            {
                foreach (var item in GatewayConfigs)
                {
                    GatewayEnumType = (GatewayEnumType)item.GatewayEnumType;
                    var electricconfigs = ElectricConfigs.Where(g => g.GatewayIndex == item.GatewayIndex).ToList();
                    switch (GatewayEnumType)
                    {
                    case GatewayEnumType.ModbusRTU:
                    {
                        SerialportComponent component = new SerialportComponent()
                        {
                            BankAccountSetting = BankAccountSetting, Gatewayconfig = item, ElectricConfigs = electricconfigs
                        };
                        component.MyWorkState = ConnectionFlag;
                        ModbusComponents.Add(component);
                    }
                    break;

                    case GatewayEnumType.ModbusTCP:
                    {
                        TcpComponent component = new TcpComponent()
                        {
                            BankAccountSetting = BankAccountSetting, Gatewayconfig = item, ElectricConfigs = electricconfigs
                        };
                        component.MyWorkState = ConnectionFlag;
                        ModbusComponents.Add(component);
                    }
                    break;
                    }
                }
            }
            #endregion

            #region 畫面
            foreach (var item in ButtonSetting.ButtonGroupSettings)
            {
                foreach (var Buttonitem in item.ButtonItemSettings)
                {
                    ButtonItemEnumType = (ButtonItemEnumType)Buttonitem.ButtonItemEnumType;
                    switch (ButtonItemEnumType)
                    {
                    case ButtonItemEnumType.Home:
                    {
                        ChargingPileView chargingPileView = new ChargingPileView(ElectricConfigs, SqlMethod, this, GatewayConfigs)
                        {
                            SqlMethod = SqlMethod, Dock = DockStyle.Fill
                        };
                        field4UserControls.Add(chargingPileView);
                        NavigationFrame.AddPage(chargingPileView);
                    }
                    break;

                    case ButtonItemEnumType.Report:
                    {
                        dataReportUserControl = new DataReportUserControl(ElectricConfigs)
                        {
                            SqlMethod = SqlMethod, Dock = DockStyle.Fill, Form1 = this
                        };
                        NavigationFrame.AddPage(dataReportUserControl);
                    }
                    break;

                    case ButtonItemEnumType.BillingSheet:
                    {
                        billingSheetUserControl = new BillingSheetUserControl(ElectricConfigs)
                        {
                            BankaccountSetting = BankAccountSetting, SqlMethod = SqlMethod, Dock = DockStyle.Fill, Form1 = this
                        };
                        NavigationFrame.AddPage(billingSheetUserControl);
                    }
                    break;
                    }
                }
            }
            User_ButtonItem_Visible();
            #endregion
            timer1.Interval = 1000;
            timer1.Enabled  = true;
        }
        public Form1()
        {
            Log.Logger = new LoggerConfiguration()
                         .WriteTo.Console()
                         .WriteTo.File($"{AppDomain.CurrentDomain.BaseDirectory}\\log\\log-.txt",
                                       rollingInterval: RollingInterval.Day,
                                       outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}")
                         .CreateLogger(); //宣告Serilog初始化

            MySqlSetting  = InitialMethod.MySqlLoad();
            ButtonSetting = InitialMethod.InitialButtonLoad();
            InitializeComponent();
            NavigationFrame = new NavigationFrame()
            {
                Dock = DockStyle.Fill
            };
            NavigationFrame.Parent = DisPlaypanelControl;

            ButtonMethod = new ButtonMethod()
            {
                Form1 = this, navigationFrame = NavigationFrame
            };
            ButtonMethod.AccordionLoad(accordionControl1, ButtonSetting);

            #region Ewatch平台
            Ewatch_MySqlMethod                = new Ewatch_MySqlMethod(MySqlSetting);
            Ewatch_MySqlComponent             = new Ewatch_MySqlComponent(Ewatch_MySqlMethod);
            Ewatch_MySqlComponent.MyWorkState = true;
            Ewatch_Field4Component.Add(Ewatch_MySqlComponent);
            Ewatch_AlarmComponent             = new Ewatch_AlarmComponent(Ewatch_MySqlMethod);
            Ewatch_AlarmComponent.MyWorkState = true;
            Ewatch_Field4Component.Add(Ewatch_AlarmComponent);

            EwatchConnectionUserControl ewatchConnectionUserControl = new EwatchConnectionUserControl(Ewatch_MySqlComponent)
            {
                Dock = DockStyle.Fill
            };
            NavigationFrame.AddPage(ewatchConnectionUserControl);
            Ewatch_Field4UserControl.Add(ewatchConnectionUserControl);

            CaseUserControl caseUserControl = new CaseUserControl(Ewatch_MySqlMethod)
            {
                Form1 = this, Dock = DockStyle.Fill
            };
            NavigationFrame.AddPage(caseUserControl);
            Ewatch_Field4UserControl.Add(caseUserControl);

            AiSettingUserControl aiSettingUserControl = new AiSettingUserControl(Ewatch_MySqlMethod)
            {
                Form1 = this, Dock = DockStyle.Fill
            };
            NavigationFrame.AddPage(aiSettingUserControl);
            Ewatch_Field4UserControl.Add(aiSettingUserControl);

            AiConfigUserControl aiConfigUserControl = new AiConfigUserControl(Ewatch_MySqlMethod)
            {
                Form1 = this, Dock = DockStyle.Fill
            };
            NavigationFrame.AddPage(aiConfigUserControl);
            Ewatch_Field4UserControl.Add(aiConfigUserControl);

            ElectricSettingUserControl electricSettingUserControl = new ElectricSettingUserControl(Ewatch_MySqlMethod)
            {
                Form1 = this, Dock = DockStyle.Fill
            };
            NavigationFrame.AddPage(electricSettingUserControl);
            Ewatch_Field4UserControl.Add(electricSettingUserControl);

            StateSettingUserControl stateSettingUserControl = new StateSettingUserControl(Ewatch_MySqlMethod)
            {
                Form1 = this, Dock = DockStyle.Fill
            };
            NavigationFrame.AddPage(stateSettingUserControl);
            Ewatch_Field4UserControl.Add(stateSettingUserControl);
            #endregion

            #region ChungHsin平台
            ChungHsin_MySqlMethod                = new ChungHsin_MySqlMethod(MySqlSetting);
            ChungHsin_MySqlComponent             = new ChungHsin_MySqlComponent(ChungHsin_MySqlMethod);
            ChungHsin_MySqlComponent.MyWorkState = true;
            ChungHsin_Field4Component.Add(ChungHsin_MySqlComponent);

            ChumgHsinConnectionUserControl chumgHsinConnectionUserControl = new ChumgHsinConnectionUserControl(ChungHsin_MySqlComponent)
            {
                Dock = DockStyle.Fill
            };
            NavigationFrame.AddPage(chumgHsinConnectionUserControl);
            ChungHsin_Field4UserControl.Add(chumgHsinConnectionUserControl);

            DeviceConfigUserControl deviceConfigUserControl = new DeviceConfigUserControl(ChungHsin_MySqlMethod)
            {
                Dock = DockStyle.Fill
            };
            NavigationFrame.AddPage(deviceConfigUserControl);
            ChungHsin_Field4UserControl.Add(deviceConfigUserControl);

            CH_CaseSettingUserControl cH_CaseSettingUserControl = new CH_CaseSettingUserControl(ChungHsin_MySqlMethod)
            {
                Dock = DockStyle.Fill
            };
            NavigationFrame.AddPage(cH_CaseSettingUserControl);
            ChungHsin_Field4UserControl.Add(cH_CaseSettingUserControl);

            ReceiveSettingUserControl receiveSettingUserControl = new ReceiveSettingUserControl(ChungHsin_MySqlMethod)
            {
                Dock = DockStyle.Fill
            };
            NavigationFrame.AddPage(receiveSettingUserControl);
            ChungHsin_Field4UserControl.Add(receiveSettingUserControl);
            #endregion

            timer1.Interval = 1000;
            timer1.Enabled  = true;
        }