Ver Fonte

Merge branch 'master' of ssh://10.10.100.21/source/mes-client

Hcsy há 7 anos atrás
pai
commit
45734a5164

+ 37 - 0
UAS_CustomerInterface/MesHelper.cs

@@ -48,6 +48,8 @@ namespace UAS.MES
         //用户选择的数据库的连接字符串
         private OracleCommand command = null;
 
+        public DataTable MasterDB;
+
         public MESHelper()
         {
             connection = new OracleConnection(ConnectionStrings);
@@ -1236,5 +1238,40 @@ namespace UAS.MES
             else
                 return false;
         }
+
+        [Description("获取账套信息")]
+        public bool GetMaster(out string oMaster)
+        {
+            MasterDB = (DataTable)ExecuteSql("select ms_pwd,ma_user,ma_inneraddress from master", "select");
+            oMaster = "";
+            for (int i = 0; i < MasterDB.Rows.Count; i++)
+            {
+                if (i != MasterDB.Rows.Count - 1)
+                    oMaster += MasterDB.Rows[i]["ma_user"].ToString() + "|";
+                else
+                    oMaster += MasterDB.Rows[i]["ma_user"].ToString();
+            }
+            return true;
+        }
+
+        [Description("设置账套信息")]
+        public bool SetMaster(string iMaster)
+        {
+            DataTable dt = (DataTable)ExecuteSql("select ms_pwd,ma_user,ma_inneraddress from master where ma_user='" + iMaster + "'", "select");
+            if (dt.Rows.Count > 0)
+            {
+                ConnectionStrings = "Data Source=" + dt.Rows[0]["ma_inneraddress"].ToString() + "/orcl;User ID=" + iMaster + ";PassWord=" + dt.Rows[0]["ms_pwd"].ToString() + ";";
+                try
+                {
+                    connection = new OracleConnection(ConnectionStrings);
+                }
+                catch (Exception)
+                {
+                    return false;
+                }
+                return true;
+            }
+            return false;
+        }
     }
 }

+ 46 - 0
UAS_DeviceMonitor/CustomerControl/AutoDataGridControl/AutoDataGridControl.cs

@@ -44,6 +44,52 @@ namespace UAS_DeviceMonitor.CustomerControl.AutoDataGridControl
             }
         }
 
+        public string TableName
+        {
+            get
+            {
+                return tableName;
+            }
+
+            set
+            {
+                tableName = value;
+            }
+        }
+
+        public string ID
+        {
+            get
+            {
+                return id;
+            }
+
+            set
+            {
+                id = value;
+            }
+        }
+
+        public string InsertSQL
+        {
+            get
+            {
+                return insertSQL;
+            }
+
+            set
+            {
+                insertSQL = value;
+            }
+        }
+
+        private string insertSQL;
+
+        //用于保存数据的主表的名称
+        private string tableName;
+
+        private string id;
+
         private int rowCount;
 
         public AutoDataGridControl()

+ 42 - 0
UAS_DeviceMonitor/CustomerControl/Button/ButtonAddRow.Designer.cs

@@ -0,0 +1,42 @@
+namespace UAS_DeviceMonitor.CustomerControl.Button
+{
+    partial class ButtonAddRow
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // ButtonSaveGrid
+            // 
+            this.Click += new System.EventHandler(this.ButtonSaveGrid_Click);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

+ 38 - 0
UAS_DeviceMonitor/CustomerControl/Button/ButtonAddRow.cs

@@ -0,0 +1,38 @@
+using System;
+using System.Data;
+using DevExpress.XtraEditors;
+using UAS_DeviceMonitor.Entity;
+
+namespace UAS_DeviceMonitor.CustomerControl.Button
+{
+    public partial class ButtonAddRow : SimpleButton
+    {
+
+        private AutoDataGridControl.AutoDataGridControl grid;
+
+        public AutoDataGridControl.AutoDataGridControl Grid
+        {
+            get
+            {
+                return grid;
+            }
+
+            set
+            {
+                grid = value;
+            }
+        }
+
+        public ButtonAddRow()
+        {
+            InitializeComponent();
+        }
+
+        private void ButtonSaveGrid_Click(object sender, EventArgs e)
+        {
+            DataTable dt = (DataTable)grid.DataSource;
+            if (dt != null)
+                SystemInf.dh.SaveDataTable(dt, grid.TableName, grid.ID, grid.InsertSQL);
+        }
+    }
+}

+ 123 - 0
UAS_DeviceMonitor/CustomerControl/Button/ButtonAddRow.resx

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 42 - 0
UAS_DeviceMonitor/CustomerControl/Button/ButtonSaveGrid.Designer.cs

@@ -0,0 +1,42 @@
+namespace UAS_DeviceMonitor.CustomerControl.Button
+{
+    partial class ButtonSaveGrid
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // ButtonSaveGrid
+            // 
+            this.Click += new System.EventHandler(this.ButtonSaveGrid_Click);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

+ 38 - 0
UAS_DeviceMonitor/CustomerControl/Button/ButtonSaveGrid.cs

@@ -0,0 +1,38 @@
+using System;
+using System.Data;
+using DevExpress.XtraEditors;
+using UAS_DeviceMonitor.Entity;
+
+namespace UAS_DeviceMonitor.CustomerControl.Button
+{
+    public partial class ButtonSaveGrid : SimpleButton
+    {
+
+        private AutoDataGridControl.AutoDataGridControl grid;
+
+        public AutoDataGridControl.AutoDataGridControl Grid
+        {
+            get
+            {
+                return grid;
+            }
+
+            set
+            {
+                grid = value;
+            }
+        }
+
+        public ButtonSaveGrid()
+        {
+            InitializeComponent();
+        }
+
+        private void ButtonSaveGrid_Click(object sender, EventArgs e)
+        {
+            DataTable dt = (DataTable)grid.DataSource;
+            if (dt != null)
+                SystemInf.dh.SaveDataTable(dt, grid.TableName, grid.ID, grid.InsertSQL);
+        }
+    }
+}

+ 123 - 0
UAS_DeviceMonitor/CustomerControl/Button/ButtonSaveGrid.resx

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 58 - 31
UAS_DeviceMonitor/Main.Designer.cs

@@ -44,7 +44,7 @@ namespace UAS_DeviceMonitor
             this.RibDeviceCommand = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
             this.MainTabControl = new DevExpress.XtraTab.XtraTabControl();
             this.PageDeviceList = new DevExpress.XtraTab.XtraTabPage();
-            this.pageControl1 = new UAS_DeviceMonitor.CustomerControl.PagingControl.PageControl();
+            this.PageControlDeviceList = new UAS_DeviceMonitor.CustomerControl.PagingControl.PageControl();
             this.GridDeviceList = new UAS_DeviceMonitor.CustomerControl.AutoDataGridControl.AutoDataGridControl();
             this.GridViewDeviceList = new DevExpress.XtraGrid.Views.Grid.GridView();
             this.de_id = new DevExpress.XtraGrid.Columns.GridColumn();
@@ -58,8 +58,9 @@ namespace UAS_DeviceMonitor
             this.de_address = new DevExpress.XtraGrid.Columns.GridColumn();
             this.de_wccode = new DevExpress.XtraGrid.Columns.GridColumn();
             this.PageCommandSet = new DevExpress.XtraTab.XtraTabPage();
+            this.ButtonSaveCommand = new UAS_DeviceMonitor.CustomerControl.Button.ButtonAddRow();
             this.GridCommandSetting = new UAS_DeviceMonitor.CustomerControl.AutoDataGridControl.AutoDataGridControl();
-            this.gridView2 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            this.GridViewCommandSet = new DevExpress.XtraGrid.Views.Grid.GridView();
             this.dc_id = new DevExpress.XtraGrid.Columns.GridColumn();
             this.dc_code = new DevExpress.XtraGrid.Columns.GridColumn();
             this.dc_name = new DevExpress.XtraGrid.Columns.GridColumn();
@@ -97,7 +98,7 @@ namespace UAS_DeviceMonitor
             ((System.ComponentModel.ISupportInitialize)(this.GridViewDeviceList)).BeginInit();
             this.PageCommandSet.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.GridCommandSetting)).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)(this.gridView2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.GridViewCommandSet)).BeginInit();
             this.PagePollingSetting.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.GridPollingSetting)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.GridViewPollSetting)).BeginInit();
@@ -226,7 +227,7 @@ namespace UAS_DeviceMonitor
             this.MainTabControl.Name = "MainTabControl";
             this.MainTabControl.SelectedTabPage = this.PageDeviceList;
             this.MainTabControl.ShowTabHeader = DevExpress.Utils.DefaultBoolean.False;
-            this.MainTabControl.Size = new System.Drawing.Size(1033, 552);
+            this.MainTabControl.Size = new System.Drawing.Size(1033, 583);
             this.MainTabControl.TabIndex = 3;
             this.MainTabControl.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
             this.PageDeviceList,
@@ -238,33 +239,36 @@ namespace UAS_DeviceMonitor
             // 
             // PageDeviceList
             // 
-            this.PageDeviceList.Controls.Add(this.pageControl1);
+            this.PageDeviceList.Controls.Add(this.PageControlDeviceList);
             this.PageDeviceList.Controls.Add(this.GridDeviceList);
             this.PageDeviceList.Name = "PageDeviceList";
             this.PageDeviceList.PageVisible = false;
-            this.PageDeviceList.Size = new System.Drawing.Size(1027, 546);
+            this.PageDeviceList.Size = new System.Drawing.Size(1027, 577);
             this.PageDeviceList.Text = "xtraTabPage1";
             // 
-            // pageControl1
+            // PageControlDeviceList
             // 
-            this.pageControl1.Dock = System.Windows.Forms.DockStyle.Bottom;
-            this.pageControl1.Gridcontrol = null;
-            this.pageControl1.Location = new System.Drawing.Point(0, 517);
-            this.pageControl1.Name = "pageControl1";
-            this.pageControl1.Size = new System.Drawing.Size(1027, 29);
-            this.pageControl1.TabIndex = 1;
+            this.PageControlDeviceList.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.PageControlDeviceList.Gridcontrol = null;
+            this.PageControlDeviceList.Location = new System.Drawing.Point(0, 548);
+            this.PageControlDeviceList.Name = "PageControlDeviceList";
+            this.PageControlDeviceList.Size = new System.Drawing.Size(1027, 29);
+            this.PageControlDeviceList.TabIndex = 1;
             // 
             // GridDeviceList
             // 
             this.GridDeviceList.Dock = System.Windows.Forms.DockStyle.Fill;
             this.GridDeviceList.GetDataSQL = null;
+            this.GridDeviceList.ID = null;
+            this.GridDeviceList.InsertSQL = null;
             this.GridDeviceList.Location = new System.Drawing.Point(0, 0);
             this.GridDeviceList.MainView = this.GridViewDeviceList;
             this.GridDeviceList.MenuManager = this.RibbonNav;
             this.GridDeviceList.Name = "GridDeviceList";
             this.GridDeviceList.RowCount = 0;
-            this.GridDeviceList.Size = new System.Drawing.Size(1027, 546);
+            this.GridDeviceList.Size = new System.Drawing.Size(1027, 577);
             this.GridDeviceList.TabIndex = 0;
+            this.GridDeviceList.TableName = null;
             this.GridDeviceList.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
             this.GridViewDeviceList});
             // 
@@ -367,37 +371,50 @@ namespace UAS_DeviceMonitor
             // 
             // PageCommandSet
             // 
+            this.PageCommandSet.Controls.Add(this.ButtonSaveCommand);
             this.PageCommandSet.Controls.Add(this.GridCommandSetting);
             this.PageCommandSet.Name = "PageCommandSet";
             this.PageCommandSet.PageVisible = false;
-            this.PageCommandSet.Size = new System.Drawing.Size(1027, 546);
+            this.PageCommandSet.Size = new System.Drawing.Size(1027, 577);
             this.PageCommandSet.Text = "xtraTabPage1";
             // 
+            // ButtonSaveCommand
+            // 
+            this.ButtonSaveCommand.Grid = null;
+            this.ButtonSaveCommand.Location = new System.Drawing.Point(956, 551);
+            this.ButtonSaveCommand.Name = "ButtonSaveCommand";
+            this.ButtonSaveCommand.Size = new System.Drawing.Size(64, 23);
+            this.ButtonSaveCommand.TabIndex = 2;
+            this.ButtonSaveCommand.Text = "保存";
+            // 
             // GridCommandSetting
             // 
             this.GridCommandSetting.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
             | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
             this.GridCommandSetting.GetDataSQL = null;
+            this.GridCommandSetting.ID = null;
+            this.GridCommandSetting.InsertSQL = null;
             this.GridCommandSetting.Location = new System.Drawing.Point(0, -1);
-            this.GridCommandSetting.MainView = this.gridView2;
+            this.GridCommandSetting.MainView = this.GridViewCommandSet;
             this.GridCommandSetting.MenuManager = this.RibbonNav;
             this.GridCommandSetting.Name = "GridCommandSetting";
             this.GridCommandSetting.RowCount = 0;
-            this.GridCommandSetting.Size = new System.Drawing.Size(1027, 511);
+            this.GridCommandSetting.Size = new System.Drawing.Size(1027, 549);
             this.GridCommandSetting.TabIndex = 1;
+            this.GridCommandSetting.TableName = null;
             this.GridCommandSetting.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
-            this.gridView2});
+            this.GridViewCommandSet});
             // 
-            // gridView2
+            // GridViewCommandSet
             // 
-            this.gridView2.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
+            this.GridViewCommandSet.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
             this.dc_id,
             this.dc_code,
             this.dc_name,
             this.dc_command});
-            this.gridView2.GridControl = this.GridCommandSetting;
-            this.gridView2.Name = "gridView2";
+            this.GridViewCommandSet.GridControl = this.GridCommandSetting;
+            this.GridViewCommandSet.Name = "GridViewCommandSet";
             // 
             // dc_id
             // 
@@ -435,14 +452,14 @@ namespace UAS_DeviceMonitor
             // 
             this.PageDeviceKind.Name = "PageDeviceKind";
             this.PageDeviceKind.PageVisible = false;
-            this.PageDeviceKind.Size = new System.Drawing.Size(1027, 546);
+            this.PageDeviceKind.Size = new System.Drawing.Size(1027, 577);
             this.PageDeviceKind.Text = "xtraTabPage2";
             // 
             // PageDeviceStatus
             // 
             this.PageDeviceStatus.Name = "PageDeviceStatus";
             this.PageDeviceStatus.PageVisible = false;
-            this.PageDeviceStatus.Size = new System.Drawing.Size(1027, 546);
+            this.PageDeviceStatus.Size = new System.Drawing.Size(1027, 577);
             this.PageDeviceStatus.Text = "xtraTabPage3";
             // 
             // PagePollingSetting
@@ -450,12 +467,17 @@ namespace UAS_DeviceMonitor
             this.PagePollingSetting.Controls.Add(this.GridPollingSetting);
             this.PagePollingSetting.Name = "PagePollingSetting";
             this.PagePollingSetting.PageVisible = false;
-            this.PagePollingSetting.Size = new System.Drawing.Size(1027, 546);
+            this.PagePollingSetting.Size = new System.Drawing.Size(1027, 577);
             this.PagePollingSetting.Text = "xtraTabPage1";
             // 
             // GridPollingSetting
             // 
+            this.GridPollingSetting.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
             this.GridPollingSetting.GetDataSQL = null;
+            this.GridPollingSetting.ID = null;
+            this.GridPollingSetting.InsertSQL = null;
             this.GridPollingSetting.Location = new System.Drawing.Point(0, 0);
             this.GridPollingSetting.MainView = this.GridViewPollSetting;
             this.GridPollingSetting.MenuManager = this.RibbonNav;
@@ -463,8 +485,9 @@ namespace UAS_DeviceMonitor
             this.GridPollingSetting.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] {
             this.dpc_enableCheckEdit});
             this.GridPollingSetting.RowCount = 0;
-            this.GridPollingSetting.Size = new System.Drawing.Size(1027, 514);
+            this.GridPollingSetting.Size = new System.Drawing.Size(1027, 582);
             this.GridPollingSetting.TabIndex = 0;
+            this.GridPollingSetting.TableName = null;
             this.GridPollingSetting.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
             this.GridViewPollSetting});
             // 
@@ -579,20 +602,23 @@ namespace UAS_DeviceMonitor
             this.PagePolling.Controls.Add(this.GridPolling);
             this.PagePolling.Name = "PagePolling";
             this.PagePolling.PageVisible = false;
-            this.PagePolling.Size = new System.Drawing.Size(1027, 546);
+            this.PagePolling.Size = new System.Drawing.Size(1027, 577);
             this.PagePolling.Text = "xtraTabPage1";
             // 
             // GridPolling
             // 
             this.GridPolling.Dock = System.Windows.Forms.DockStyle.Fill;
             this.GridPolling.GetDataSQL = null;
+            this.GridPolling.ID = null;
+            this.GridPolling.InsertSQL = null;
             this.GridPolling.Location = new System.Drawing.Point(0, 0);
             this.GridPolling.MainView = this.GridViewPolling;
             this.GridPolling.MenuManager = this.RibbonNav;
             this.GridPolling.Name = "GridPolling";
             this.GridPolling.RowCount = 0;
-            this.GridPolling.Size = new System.Drawing.Size(1027, 546);
+            this.GridPolling.Size = new System.Drawing.Size(1027, 577);
             this.GridPolling.TabIndex = 0;
+            this.GridPolling.TableName = null;
             this.GridPolling.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
             this.GridViewPolling});
             // 
@@ -677,7 +703,7 @@ namespace UAS_DeviceMonitor
             ((System.ComponentModel.ISupportInitialize)(this.GridViewDeviceList)).EndInit();
             this.PageCommandSet.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)(this.GridCommandSetting)).EndInit();
-            ((System.ComponentModel.ISupportInitialize)(this.gridView2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.GridViewCommandSet)).EndInit();
             this.PagePollingSetting.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)(this.GridPollingSetting)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.GridViewPollSetting)).EndInit();
@@ -722,9 +748,9 @@ namespace UAS_DeviceMonitor
         private DevExpress.XtraGrid.Columns.GridColumn de_vendname;
         private DevExpress.XtraGrid.Columns.GridColumn de_address;
         private DevExpress.XtraGrid.Columns.GridColumn de_wccode;
-        private CustomerControl.PagingControl.PageControl pageControl1;
+        private CustomerControl.PagingControl.PageControl PageControlDeviceList;
         private AutoDataGridControl GridCommandSetting;
-        private DevExpress.XtraGrid.Views.Grid.GridView gridView2;
+        private DevExpress.XtraGrid.Views.Grid.GridView GridViewCommandSet;
         private DevExpress.XtraGrid.Columns.GridColumn dc_id;
         private DevExpress.XtraGrid.Columns.GridColumn dc_code;
         private DevExpress.XtraGrid.Columns.GridColumn dc_name;
@@ -750,5 +776,6 @@ namespace UAS_DeviceMonitor
         private DevExpress.XtraGrid.Columns.GridColumn dpc_status;
         private DevExpress.XtraGrid.Columns.GridColumn dpc_remark;
         private DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit dpc_enableCheckEdit;
+        private CustomerControl.Button.ButtonAddRow ButtonSaveCommand;
     }
 }

+ 8 - 1
UAS_DeviceMonitor/Main.cs

@@ -23,8 +23,15 @@ namespace UAS_DeviceMonitor
         private void Main_Load(object sender, EventArgs e)
         {
             GridDeviceList.GetDataSQL = "select de_id,de_code,de_name,de_spec,de_indate,de_runstatus,de_address,de_wccode,de_vendcode,de_vendname from device".ToUpper();
+
             GridPollingSetting.GetDataSQL = "SELECT DPC_ID,DPC_DECODE ,DPC_PLCODE ,DPC_PLNAME ,DPC_INTERVAL ,DPC_DCCODE ,DPC_FUNCTION , DPC_ENABLE,DPC_STATUS ,DPC_REMARK FROM DEVICEPOLLINGCONFIG";
-            pageControl1.Gridcontrol = GridDeviceList;
+            PageControlDeviceList.Gridcontrol = GridDeviceList;
+
+            GridCommandSetting.GetDataSQL = "select dc_id,dc_code,dc_name,dc_command from devicecommand".ToUpper();
+            GridCommandSetting.TableName = "devicecommand";
+            GridCommandSetting.ID = "dc_id";
+            GridCommandSetting.InsertSQL = "insert into devicecommand(dc_id,dc_code,dc_name,dc_command) values(devicecommand_seq.nextval,:dc_code,:dc_name,:dc_command)";
+            ButtonSaveCommand.Grid = GridCommandSetting;
         }
 
         /// <summary>

+ 0 - 123
UAS_DeviceMonitor/Main.resx

@@ -118,73 +118,6 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="barButtonItem1.Glyph" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0VGl0
-        bGUARGVsZXRlO1JlbW92ZTtNaW51c+upj0EAAANRSURBVDhPfZJdTFN3GMYPkPiBF2NeejEXkyVubtXg
-        YnSJMZu6KQazhWHZpnFxc06Z0xWwFqEwJS4NaBEtRKVJh6Ji+agUKaWipoIEQmf5sBUKpS0y+sEOlrbW
-        FZLH93+q8c4mv/R93/P8ntOLciPh/wXok0AkZpcbP86t7lFI1ZY+qcYaPK55xEvVfZacSw9L9xZfW0GZ
-        JJYdJofBjUZigpy6OWvh0cpupaymf76m04M2ewAWXxj/+MMwPpnGla4JyP62zh48YzpA+QXMeeVyCWs+
-        Fy/8TdXdptQPY/C/KKz8C/QEouj0PkcX0Tsdv1m8YZQ22XGowqxf/tH6JcxlBUm/Ks0VZTo7BmdewOgK
-        wTAegtEdhmkiApMnDts7PGE8DsZQTi/6SWEsI3cBlymtXXW4sme+zxuB1jaDxidB6EZmoR8NocX5hmba
-        dY4gGui5xR+FpKo3tv2XsyJud0l7ldo0hrpBHjWPeNQO8KizPYPWHg+/5qYtiBuPnwnPrw/NoMbsgriw
-        Scl9f7LDWm/xobLbj10lBmzKrn0rYspc7PWjoT+ArOK2IS6z6M60pscHxd1JITAw/C+GHFOwO30Ydvkx
-        QjjcAThcAbgneWz54ybK7k9BTSWZ8nae+zrfOKu8N4ES01OhwMdHEHoeQygaQzg6hwgRppnts3TfKtHi
-        r45JlNILv5EZeC5N0jxwSj+KPw0T+O50OzYfrRNCX+bUI02mE+av8hqQdlyHHfm3sO+cGaeMTyG/5cS2
-        I41W7osD11RHLltQbPBAQc3nzFM4/8CLC51Elxcq+mawnd3L7k2iyODG79VWbPzxciknSi9K3SZpiRU2
-        jyOfOKF3ofC2C/JWN4paPRSOI6e5oMWFE4RM58SOvNa5DzbuX83+SIvW7VarMorvooDkY7pxSOnnyahM
-        Rnt+MwkCdGeQnHHyPtZmqSrITWYFiclL30/59AeNMb3gDqSNY1TiRF5TnFxhHkMuzRKtAzvlHSRX3yYv
-        hbmcfw6sJGlxynvvijIqqz77uT4mVnTh8BXbK3EM2Vdt2EW3Dfu1kZXbS3Io/w5zvMz1z+N1SSKRvHxD
-        9voPd5ZfEGWq+0VijZ/wfvJttXVl+tnzy1L3rKHMYiKByd45cC8B0oKaPyRsCA8AAAAASUVORK5CYII=
-</value>
-  </data>
-  <data name="barButtonItem1.LargeGlyph" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABp0RVh0VGl0
-        bGUARGVsZXRlO1JlbW92ZTs7TWludXMo+qM0AAAJfklEQVRYR5VWaVCV1xn+aBNNq0nTdtI2mWl+pE6T
-        mURNbRa1MyZtTGrFra6RGMWo6URUEBCRrSyiSWoRjeBVEARkl1UQZJPtLuyyL7IJl5174V4uIMjM2+c9
-        lw+ik7bjO/PMOXzfeZ/ned9zvsOV3MJVknuEWvKI1EieUSWSV1Sp5B1TJp2OLZdOx1dIvoybldKZhCrp
-        bOI9CWHxv+ATXyl5xVZIntHl4CyT3G+USq7hJdKpMLXkFKKSTgQrJYerxZKdogDLEa5hSqn74SNgRtJO
-        mdEz/TgQssCPgB8DzwDPPgF+xuD3vM5Cy5xA9+SM1AU8mJiROscfCcwZcLk+b+AxEwBCFhaizkHZK7xj
-        SrxRpdI3oarybGL1DMMnrqLKJ7ZC5R6hPG138dY7WLuA1wPCyLyBRwJswPbyrIGTIcV4OW9ANoGQK37W
-        JbRgp1dcecuF9DpKre6hil4D1QyaqHdqRqAW8/IeA6VUacnvVi15RJW2OCqyP0PuQkAY6UL1sngHcCwg
-        H48RTsFFwoCA6MQjfiyqPuKX8DuPyBKNIqsRAqMEY9Q2MUUNxodUb5ykipEJgTrM6w0Pqc00RV0PZ6gC
-        awMyG8g5VFlq5RzwBri4I6IbwoDpkXT00l38iXC4WiicySYQLP7M8UsZH7tHaPSZ9b3UOTlNNaOTpBky
-        UdnwOJXpGBNULkYAz0qGxkk9OE7KfhNV6iapfXyabtf00qlQlf6Ab8x6cHI3hIl2GLC5mIcpwl6RL3XO
-        7g1CiB85f+sTz6iyKU2XHpVNUnH/GCkHxiBgIg0DRliwZFZYI8RNQry4b4zye8Yor9tI1TCp6tSTy3X1
-        9F6vqDkTbOAr/1zWkyTbgLvCAEK03doz7A20bri0e4TKQFqAvS3sM1JRv3HOiHLAJAQZKsxVA+bKC3vH
-        qADI045RzgMD3ekYpeIerIMJFKrbdOTcUmiI7fjSL4c1Jemwf444FAhuzwK7wDxVWrWWNBDN6RpBJQa6
-        qzXAiBECMAKBIlRZ1GeCqTGYA2aF8yGci8qzHxgpE+K320boVoueCroMlFzRRf/wy9JAYzHAB5MLlqTP
-        T6fzIFp/8Oukz3xjyqgKrc1o04NET9mdIzAyCmKzkbtaI1o8D/77LoS55TldsriBbrdC/P4IJTfr6GbD
-        MJXAsEd4CX16Knw/tJ4DuGBJ2u6WzAP/sfCr89ktuc0DlN6qozQgvU1Hme16tHKEsjpHQQ6gmlwGDOVC
-        MAcjP8vqNGKdgTLaDchncT0lN+kooX6YYuuGKLZ2iDLr+sn6THortF4A5rogqt9xMmyd23UVFYEwsWGI
-        kpqHKbVlGERsRi/amQFwa3lv78AQz2VktI8K4TRUndKsp6RGHcWjchaOrB6kiMoByka+U1AxrT98cRM0
-        5a9CGFiw+UTU+eDsJiQOUVztINo2RImYs5HkFh3MwAiqYjM8pmNkQVk0dVaYq05kcVQeXWMWD4d4aHk/
-        hZcPkCKjkTYeD7sEzUUA37DCxXMbHeOUoQXtdFXdi6QBiqkZoLj6QfK/00jb3BJo9YHgp8JW1wTyy2ii
-        iKpBCoF4kKaXLhVpKayggzY6RPNh5G2YM/BTS8f44Wuqbjpzp4PO5XZRSFkvRVX308fHIuhcSB4l3i6n
-        lKwqSs+tpqyCOsotbqACdRMVlrRQcVkrKRkVbVRc3kaqyjaKTKsUuZH3Buiyqpf+Bc5vszopVKWlDSfi
-        dND8OcDnQLhYtN4+dvpyoZa809vJN6OTzt7ppPP53aIadVUHaQeNNDQ6QTpcTHpcxfqxKTMw1zHwfAi3
-        5QCu5j7cjkMj4yJXAfFvsrsE3+mMDlKgC5YOcdPQ/AXA/0WFgcV/tY2e/jarnTzT2skLJnjx2cxOQVLb
-        3CtI+/XjEIAQgwWBYcPEnHC/3izeg5txbGJa5F4s0NIZ8DAfF3cut4PW2cWwgV8+ZuAjm8hhr9Qmck+9
-        T/+81UreMOJzuwNtvEGJOXVkGJ8iI8DEPwQjA/e/ed00FVY9oE+Q65fXLXi8wOeZ3ko+aS209kgkb8Gc
-        AT4Diz78MlTlEl1Nbin3yZVNpLaKbnjE3aO1RyNENU8DzvFNrMV2doCnVfB5oDDX2Br64NC1UmjOnQE2
-        8JPV+wIvHrusJNek+3QquYVck++TG4ycyWwnRXEPBWMvg9V9AiEaoKSPQgEeBfDsGsZrGIPxJV1R9tDX
-        2HfupkdKK7mgMA/w2SqUtGqPvwKaj30FC//wd69NW52TyDWlhZxuNpFzQguMoBtIZCNcAZNxNdxOPie8
-        pzL4b9FmBosCbsjhfC7oZEIzuWO+9VQSLd/gsguafA+wtvkmBH622jq47XBQOTnFN9EJ4OTNZnJOahYE
-        LtwVNiMqMQsw2JSoEiZZUBbl9ZznnGQWZy6b4HJaZR3UAa1fAXwTWkjv7w3GaL4Llm/xObTeIZ6cEprI
-        Ia6RHGeNOCH5JDoiugJCJpZNfR/8jgV5Ha/nPM53jOOONpOl4016y9LNBlpy+y2kd/cEYRRd4BP54jtW
-        gWV7zuWTfWwT2cc0iJEJZDMnsD1OIGOIymarYzEzzGs4xwHr7VEIF/P5v/MJ3Py7fr56jj9aXZHUPSae
-        isP42p8Orly5L1h/8Gop2cGAbXSDGO1jGwWYzCGeR9mYuVPm5+aR1x0H7GKA2AY6BC5wjrz6rtUaaPDv
-        AXP1HCt2KyS11iSA4LOw+PdrHbet2h8ybR2gpmPR9XQsio3Uk92smeOPQRabf2fLwFrbmHr6Ahyr9l+b
-        XvLh0d3gfhHgTlus+PQKBsTbuxSSCuIMhLwVLyz58/EdK6yujO78Jk8YOBpZb0YUDIFcGAPYGIvNPcN7
-        XmOLnF3IXbH7iuG1NTZW4OSrl3+OWXCxrCti+c7LTxqQTTz/ytvb31u2zb9qzeFo2vudmo6wgRt1GJ9E
-        vRjNButo3yU1fYAc5Fa/vHTzanBx5UKcwVqsK2LZjkBJ2Q0Ds0DIJng7+Ft9aclHTjZLt3334P39oWTp
-        mkZ7LhSTdUAJ2UTUks2NWsw1tMdfSRvwbuUX12nZ1gtdS/7ieBS5vwGeB0TbGazFYF0RS7cHCmH5xRMm
-        +LDwieXP5tevrjyw8fW/eQe8ucWv+s0t55uRSwye87PX13kF/va9/Zux9mWAq+bfflzInLjoNkbWFfHW
-        toD/CsT3jXALuSNM/BLA1b0yC57z58X3O59yNj0n/EPcjKcJ2Qh/qkzMLWVDLMTgOT/jd7xGXv9/QpL+
-        AzIX4bNMm0EgAAAAAElFTkSuQmCC
-</value>
-  </data>
   <data name="ButtonDeviceKind.Glyph" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
@@ -326,62 +259,6 @@
         4dNgqHdKRzvoCQHBw7mH465ky8Ca8Ljy3qiUeopiV4pavqGWIvmmyOQLFJnEJF6giMQafpkwCUx8NYUn
         VNMOjmB7XJUitpK2xYAK2sb5Vo7C/gr6FUSXC1siivtYWz4N8a85vhrhbxKnEsDZu/DRO/Axg99h8bBl
         /wJFMIQs8XmmmQAAAABJRU5ErkJggg==
-</value>
-  </data>
-  <data name="barButtonItem5.Glyph" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
-        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAidEVYdFRpdGxlAEdyaWQ7U3ByZWFkc2hlZXQ7Um93
-        O0NvbHVtbjtpiW5hAAAC0ElEQVQ4T4XTWUhUYRQH8OuaSxohZFSUUYOtEthTT1ngBgqlYdOilVvuVmSZ
-        qaS4YKaDyzip6UzqFFm5lFuaOqYzmqPmhIILKj7UpGKjk85oD//OVWd6MTrw4zv33u/8uXyXy1AZERNi
-        +h9bNlZjYgCAYTFRgi5JdGEPogq7iQyRT2WIEEgRUbAunC9FWH4nQvPWBWW3dlCAiT6A3SSZVEEyoUI7
-        rYKWcbRRr5PbNI5WWnUCstppijHTB9zM/bS2UTwwQ34gtnwQFV9mUEE9K0Y0oO8rFbPwTW9mA8z1Af5Z
-        beDVja5tvCvsx8co+78i7dEcbo/IYjkiiuRIeTMEblIjG2ChD7ia1owPYz/xvE+Jsn4lWiLsoZ0qh3ZS
-        BM1EKeqDDmJevYL5RaLWIpEnYQMs9QEXHzWgYWQeIrkSQtIQdADLYwJoRvnQTIqheJEGlXoZi0srtK6g
-        5NUAG7CNsF/OiPF6+A7x4kEE5kgRwJOixtcOVZft8Ja7FwpxOvoex6I/wB9SngByxTQaJSOo9/TM6fby
-        nqtxcb3AeMRUo3Z4DsU939b4ZXZgVqXFDJlfWIKMewmrPS2Y5mVgMI+PpgcpmMpMw0pnI9qc3eYY1+jX
-        qPo6B2GvEqW93xFZ8BmzC2yAhl5Zg+rbcZB7ueB3YTL6wvwhD7mB1fwEyDzOIGPn7lTGKVjUfjbsJVhO
-        ISwx7iTX4VbSe+SJulDbNIhi31DI3E9Dm30fmsx76HI+hQQb2yd0BuaEMSNWxHoT7GHZlhxzFA77+UAd
-        eh6/gs9hiOuNZxwHPj2zXPsU/0JlWso5kasIvI6l+BBUnjyCSsfDUMcFYOAKF/w9h7I3HdShMhfvO744
-        G3UNZQ4cuBsa84hAdHQ/lME+KLXlqDYd1KEySbWx8y3ZwZlxMzBKo+utxMrFwIhXtN1OmWi9i7vpoA6V
-        ARtCLAj7OxtuYHu6x5j+AYtUTbR+QGtEAAAAAElFTkSuQmCC
-</value>
-  </data>
-  <data name="barButtonItem5.LargeGlyph" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        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
 </value>
   </data>
   <data name="ButtonPollingSetting.Glyph" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

+ 18 - 0
UAS_DeviceMonitor/UAS_DeviceMonitor.csproj

@@ -66,6 +66,18 @@
     <Compile Include="CustomerControl\AutoDataGridControl\AutoDataGridControl.Designer.cs">
       <DependentUpon>AutoDataGridControl.cs</DependentUpon>
     </Compile>
+    <Compile Include="CustomerControl\Button\ButtonAddRow.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="CustomerControl\Button\ButtonAddRow.Designer.cs">
+      <DependentUpon>ButtonAddRow.cs</DependentUpon>
+    </Compile>
+    <Compile Include="CustomerControl\Button\ButtonSaveGrid.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="CustomerControl\Button\ButtonSaveGrid.Designer.cs">
+      <DependentUpon>ButtonSaveGrid.cs</DependentUpon>
+    </Compile>
     <Compile Include="CustomerControl\PagingControl\PageControl.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -87,6 +99,12 @@
     <EmbeddedResource Include="CustomerControl\AutoDataGridControl\AutoDataGridControl.resx">
       <DependentUpon>AutoDataGridControl.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="CustomerControl\Button\ButtonAddRow.resx">
+      <DependentUpon>ButtonAddRow.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="CustomerControl\Button\ButtonSaveGrid.resx">
+      <DependentUpon>ButtonSaveGrid.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="CustomerControl\PagingControl\PageControl.resx">
       <DependentUpon>PageControl.cs</DependentUpon>
     </EmbeddedResource>

+ 41 - 2
UAS_MesInterface(4.0)/MesHelper.cs

@@ -13,9 +13,11 @@ namespace BenQGuru.eMES.DLLService
     [InterfaceType(ComInterfaceType.InterfaceIsDual)]
     public interface IMESHelper
     {
-        [DispId(14)]
+        [DispId(17)]
         bool CheckRoutePassed(string iSN, string iResCode, out string oErrMessage);
         bool GetRcardMOInfo(string iSN, out string oMoCode, out string oErrMessage);
+        bool GetMaster(out string Master);
+        bool SetMaster(string Master);
         bool CheckUserAndResourcePassed(string iUserCode, string iResCode, string iPassWord, out string oErrMessage);
         bool GetAddressRangeByMO(string iSN, out string oWIFI, out string oBT, out string oCode1, out string oCode2, out string oCdoe3, out string oErrMessage);
         bool SetAddressInfo(string iSN, string iWIFI, string iBT, string iCode1, string iCode2, string iCode3, out string oErrorMessage);
@@ -41,12 +43,14 @@ namespace BenQGuru.eMES.DLLService
         //用于存放批量执行的SQL
         List<string> sqls = new List<string>();
         //系统默认的的连接字符串
-        private string ConnectionStrings = "Data Source=192.168.230.200/orcl;User ID=MES_ZZ;PassWord=select!#%*(;";
+        private string ConnectionStrings = "Data Source=192.168.230.200/orcl;User ID=MES;PassWord=select!#%*(;";
         //用户选择的数据库的连接字符串
         private OracleConnection connection;
         //用户选择的数据库的连接字符串
         private OracleCommand command = null;
 
+        DataTable MasterDB;
+
         public MESHelper()
         {
             connection = new OracleConnection(ConnectionStrings);
@@ -1169,5 +1173,40 @@ namespace BenQGuru.eMES.DLLService
                 cmd.Connection.Open();
             }
         }
+
+        [Description("获取账套信息")]
+        public bool GetMaster(out string oMaster)
+        {
+            MasterDB = (DataTable)ExecuteSql("select ms_pwd,ma_user,ma_inneraddress from master", "select");
+            oMaster = "";
+            for (int i = 0; i < MasterDB.Rows.Count; i++)
+            {
+                if (i != MasterDB.Rows.Count - 1)
+                    oMaster += MasterDB.Rows[i]["ma_user"].ToString() + "|";
+                else
+                    oMaster += MasterDB.Rows[i]["ma_user"].ToString();
+            }
+            return true;
+        }
+
+        [Description("设置账套信息")]
+        public bool SetMaster(string iMaster)
+        {
+            DataTable dt = (DataTable)ExecuteSql("select ms_pwd,ma_user,ma_inneraddress from master where ma_user='" + iMaster + "'", "select");
+            if (dt.Rows.Count > 0)
+            {
+                ConnectionStrings = "Data Source=" + dt.Rows[0]["ma_inneraddress"].ToString() + "/orcl;User ID=" + iMaster + ";PassWord=" + dt.Rows[0]["ms_pwd"].ToString() + ";";
+                try
+                {
+                    connection = new OracleConnection(ConnectionStrings);
+                }
+                catch (Exception)
+                {
+                    return false;
+                }
+                return true;
+            }
+            return false;
+        }
     }
 }

+ 38 - 1
UAS_MesInterface/MESHelper.cs

@@ -15,6 +15,8 @@ namespace BenQGuru.eMES.DLLService
         [DispId(12)]
         bool CheckRoutePassed(string iSN, string iResCode, out string oErrMessage);
         bool GetRcardMOInfo(string iSN, out string oMoCode, out string oErrMessage);
+        bool GetMaster(out string Master);
+        bool SetMaster(string Master);
         bool CheckUserAndResourcePassed(string iUserCode, string iResCode, string iPassWord, out string oErrMessage);
         bool GetAddressRangeByMO(string iSN, out string oWIFI, out string oBT, out string oCode1, out string oCode2, out string oCdoe3, out string oErrMessage);
         bool SetAddressInfo(string iSN, string iWIFI, string iBT, string iCode1, string iCode2, string iCode3, out string oErrorMessage);
@@ -38,12 +40,14 @@ namespace BenQGuru.eMES.DLLService
         //用于存放批量执行的SQL
         List<string> sqls = new List<string>();
         //系统默认的的连接字符串
-        private string ConnectionStrings = "Data Source=192.168.230.200/orcl;User ID=MES_ZZ;PassWord=select!#%*(;";
+        private string ConnectionStrings = "Data Source=192.168.230.200/orcl;User ID=MES;PassWord=select!#%*(;";
         //用户选择的数据库的连接字符串
         private OracleConnection connection;
         //用户选择的数据库的连接字符串
         private OracleCommand command = null;
 
+        DataTable MasterDB;
+
         public MESHelper()
         {
             connection = new OracleConnection(ConnectionStrings);
@@ -1085,5 +1089,38 @@ namespace BenQGuru.eMES.DLLService
                 cmd.Connection.Open();
             }
         }
+
+        public bool GetMaster(out string oMaster)
+        {
+            MasterDB = (DataTable)ExecuteSql("select ms_pwd,ma_user,ma_inneraddress from master", "select");
+            oMaster = "";
+            for (int i = 0; i < MasterDB.Rows.Count; i++)
+            {
+                if (i != MasterDB.Rows.Count - 1)
+                    oMaster += MasterDB.Rows[i]["ma_user"].ToString() + "|";
+                else
+                    oMaster += MasterDB.Rows[i]["ma_user"].ToString();
+            }
+            return true;
+        }
+
+        public bool SetMaster(string iMaster)
+        {
+            DataTable dt = (DataTable)ExecuteSql("select ms_pwd,ma_user,ma_inneraddress from master where ma_user='" + iMaster + "'", "select");
+            if (dt.Rows.Count > 0)
+            {
+                ConnectionStrings = "Data Source=" + dt.Rows[0]["ma_inneraddress"].ToString() + "/orcl;User ID=" + iMaster + ";PassWord=" + dt.Rows[0]["ms_pwd"].ToString() + ";";
+                try
+                {
+                    connection = new OracleConnection(ConnectionStrings);
+                }
+                catch (Exception)
+                {
+                    return false;
+                }
+                return true;
+            }
+            return false;
+        }
     }
 }