连载:(三)循序渐进,通过XML配置,实现通用于WinForm(.Net)、WebForm(Asp.Net+JQuery+EasyUI)表单、报表--控制文件

连载:(三)循序渐进,通过XML配置,实现通用于WinForm(.Net)、WebForm(Asp.Net+JQuery+EasyUI)表单、报表

--XML控制文件

作者:长江支流

 

    本章,将给出控制文件相关类的C#.Net源代码,包括控制文件主控类WebMisController、以及控制文件的组成部分表单及清单过滤字段Field类、回调函数类CallbackFun。

 

控制文件

控制文件由WebMIS.ServiceModel.WebMisController/ WebMisControllerSerializer类去描述和解析。

                           

 

 连载:(三)循序渐进,通过XML配置,实现通用于WinForm(.Net)、WebForm(Asp.Net+JQuery+EasyUI)表单、报表--控制文件

       

 

控件文件格式参考如下:

 

<?xmlversion="1.0"encoding="utf-8"?>

<WebMisControllerSerializerxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <Controller>

    <!--注意,Select中的字段大小写,所以Field中的Name节点,要与之一样。大小写敏感-->

    <Select>Select ID,DM,MC Fromtest_EntityAccessORM</Select>

    <TableName> test_EntityAccessORM </TableName>

 

<!—可选-->

          <UpdateWhere>

                       <value>Where ID=@ID</value>

             </UpdateWhere>

             <DeleteWhere>

                       <value>Where ID=@ID </value>

             </DeleteWhere>

 

             <CallbackFun>

           <AfterLoad></AfterLoad>

           <AfterDeleted></AfterDeleted>

             </CallbackFun>

 

    <Fields>

      <Field>

        <ID>ID</ID>

        <Name>id</Name>

        <Title>标识ID</Title>

        <Align>right</Align>

        <Width>20</Width>

      </Field>

      <Field>

       <!--ID节点表示WinForm/WebForm中控件的ID属性或标准html元素的name属性,大小写要一致-->

        <ID>Code</ID>

       <!--Name节点表示Select中指定的字段名,大小写要一致-->

        <Name>DM</Name>

        <Title>代码</Title>

      </Field>

      <Field>

        <ID>Name</ID>

        <Name>MC</Name>

        <Title>代码</Title>

      </Field>

    </Fields>

  </Controller>

</WebMisControllerSerializer>


Field的属性描述,还有很多,例如:

            

                 <Field>

                           <ID>Code</ID>

                           < Name > mc</ Name >

                           <Title>代码</Title>

                           <Type>String</Type>

                           <Save></Save>

                           <Visible></Visible>

                           <Sql></Sql>

                           <Value></Value>

                           <Excel></Excel>

                          <UserInputValue></UserInputValue>

                                <null>false</null>

                                <nulltitle>代码不能为空,请输入!</nulltitle>

                 </Field>

控制文件命名空间

namespace WebMIS.ServiceModel
{


}


 

  • 控制文件主类
    /// <summary>
    /// 表示UI表单元素到查询字段的映射控制关系。
    /// </summary>
    [System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
    [System.Serializable]
    public class WebMisController
    {
        //查询SQL
        private string _Select = "";

        private string _TableName = "csm_DefineMaintenance";          //表明,查询表及表单用
        private string _PrimaryKey = "ID";                            //主键字段,例如ID,查询表的某条数据用于绑定到网页。
        private string _PrimaryKeyValue = "";                        //主键字段查找值

        private string _UpdateWhere = "";                            //更新条件
        private string _DeleteWhere = "";                            //删除条件

        private CallbackFun _CallbackFun = null;                    //回调函数

        
        private Field[] _Fields = null;                             //查询字段映射关系
        private Field[] _Filter = null;                             //字段过滤映射关系

        //其它未尽描述
       // private System.Collections.Hashtable _Other = new System.Collections.Hashtable();

        #region 属性...

        /// <summary>
        /// 查询语句。
        /// </summary>
        public string Select
        {
            get { return _Select; }
            set { _Select = value; }
        }

        /// <summary>
        /// 数据库表名。
        /// </summary>
        public string TableName
        {
            get { return _TableName; }
            set { _TableName = value; }
        }

        /// <summary>
        /// 主键名。
        /// </summary>
        public string PrimaryKey
        {
            get { return _PrimaryKey; }
            set { _PrimaryKey = value; }
        }

        /// <summary>
        /// 主键值。
        /// </summary>
        public string PrimaryKeyValue
        {
            get { return _PrimaryKeyValue; }
            set { _PrimaryKeyValue = value; }
        }

        /// <summary>
        /// 更新条件。
        /// </summary>
        public string UpdateWhere
        {
            get { return _UpdateWhere; }
            set { _UpdateWhere = value; }
        }

        
        /// <summary>
        /// 删除条件。
        /// </summary>
        public string DeleteWhere
        {
            get { return _DeleteWhere; }
            set { _DeleteWhere = value; }
        }

        /// <summary>
        /// 获取或设置回调函数。
        /// </summary>
        public CallbackFun CallbackFun
        {
            get { return _CallbackFun; }
            set { _CallbackFun = value; }
        }

        /// <summary>
        /// 获取或设置字段。
        /// </summary>
        public Field[] Fields
        {
            get { return _Fields; }
            set { _Fields = value; }
        }

        /// <summary>
        /// 获取或设置字段。
        /// </summary>
        public Field[] Filter
        {
            get { return _Filter; }
            set { _Filter = value; }
        }

        /*
        /// <summary>
        /// 其它没描述完的。
        /// </summary>
        public System.Collections.Hashtable Other
        {
            get { return _Other; }
            set { _Other = value; }
        }
        */

        #endregion 属性...

    }

  •     /// <summary>
        /// 表示UI表单元素到查询字段的映射控制关系。
        /// </summary>        
        [System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
        [System.Serializable]
        public class Field
        {
            #region 属性字段...
    
            private string _ID = "";            //表单元素ID
    
            //数据库
            private string _Name = "";          //映射字段或查询字段名
            private string _Type = "";          //数据保存时的数据类型
            private bool _Save = true;          //是否保存
    
            //UI
            private string _Title = "";         //自动输出时的标签
            private string _FormType = "";      //表单类型,如Input、Select,默认Input。
    
            private string _Align = "";         //列对齐
            private string _Width = "";         //列宽。
    
            private bool _Visible = true;       //界面元素是否可见
            private bool _Null = true;          //界面元素表单提交时是否允许为空。
            private string _NullTitle = "";     //界面元素为空时,表单提交时提示。
    
            //初始值
            private string _Sql = "";           //通过SQL语句初始值
            private string _Value = "";         //直接初始值
            private string _Excel = "";         //EXCEL操作时,对应的行列,用半角英逗号文分隔,可以初始UI值。
            private string _UserInputValue = "";//用户输入的值,强制优先于界面。。
    
    
            //其它未尽描述
            //private System.Collections.Hashtable _Tag = new System.Collections.Hashtable();
    
            #endregion 属性字段...
    
            #region 属性...
    
            /// <summary>
            /// 获取或设置表单元素ID。
            /// </summary>
            public string ID
            {
                get { return _ID; }
                set { _ID = value; }
            }
    
            #region DB...
    
            /// <summary>
            /// 获取或设置映射字段或查询字段名。
            /// </summary>
            public string Name
            {
                get { return _Name; }
                set { _Name = value; }
            }
    
            /// <summary>
            /// 获取或设置数据保存时的数据类型。
            /// </summary>
            public string Type
            {
                get { return _Type; }
                set { _Type = value; }
            }
    
            /// <summary>
            /// 获取或设置数据是否保存。
            /// </summary>
            public bool Save
            {
                get { return _Save; }
                set { _Save = value; }
            }
    
            #endregion DB...
    
            #region UI...
    
            /// <summary>
            /// 获取或设置自动输出时的标签。
            /// </summary>
            public string Title
            {
                get { return _Title; }
                set { _Title = value; }
            }
    
            /// <summary>
            /// 获取或设置表单类型,如Input、Select,默认Input。
            /// </summary>
            public string FormType
            {
                get { return _FormType; }
                set { _FormType = value; }
            }
    
            /// <summary>
            /// 获取或设置界面元素是否可见。
            /// </summary>
            public bool Visible
            {
                get { return _Visible; }
                set { _Visible = value; }
            }
    
            /// <summary>
            /// 获取或设置界面元素列对齐。
            /// </summary>
            public string Align
            {
                get { return _Align; }
                set { _Align = value; }
            }
    
            /// <summary>
            /// 获取或设置界面元素宽度。
            /// </summary>
            public string Width
            {
                get { return _Width; }
                set { _Width = value; }
            }
    
    
            /// <summary>
            /// 获取或设置界面元素是否允许不输入。
            /// </summary>
            public bool Null
            {
                get { return _Null; }
                set { _Null = value; }
            }
    
            /// <summary>
            /// 获取或设置界面元素必须输入或选择时提示语。
            /// </summary>
            public string NullTitle
            {
                get { return _NullTitle; }
                set { _NullTitle = value; }
            }
    
            #endregion UI...
    
            #region 初始...
            /// <summary>
            /// 获取或设置初始值的SQL语句。
            /// </summary>
            public string Sql
            {
                get { return _Sql; }
                set { _Sql = value; }
            }
    
            /// <summary>
            /// 获取或设置初始值的默认值。
            /// </summary>
            public string Value
            {
                get { return _Value; }
                set { _Value = value; }
            }
    
            /// <summary>
            /// 获取或设置EXCEL操作时,对应的行列,用半角英逗号文分隔,可以初始UI值。
            /// </summary>
            public string Excel
            {
                get { return _Excel; }
                set { _Excel = value; }
            }
    
            /// <summary>
            /// 获取或设置用户输入值,强制优先于界面。
            /// </summary>
            public string UserInputValue
            {
                get { return _UserInputValue; }
                set { _UserInputValue = value; }
            }
    
            #endregion 初始...
    
            /*
            /// <summary>
            /// 其它没描述完的。
            /// </summary>
            public System.Collections.Hashtable Tag
            {
                get { return _Tag; }
                set { _Tag = value; }
            }
            */
    
            #endregion 属性...
    
            #region 构造函数...
    
            /// <summary>
            /// 创建类的新实例。 
            /// </summary>
            public Field()
            { }
    
    
            /// <param name="elementID">元素ID,如果不指定字段名,默认与元素名相同。</param>
            public Field(string elementID):this()
            {
                _ID = elementID;
                _Name = elementID;
                _Title = elementID;
            }
    
            /// <param name="name">查询字段名,如果不指定字段名,默认与元素名相同。</param>
            public Field(string elementID, string name)
                : this()
            {
                _ID = elementID;
                _Name = name;
                _Title = name;
            }
    
            #endregion 构造函数...
    
        }

  • 控制文件回调函数类
    /// <summary>
    /// 表示回调函数。
    /// </summary>        
    [System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
    [System.Serializable]
    public class CallbackFun
    {
        private string _AfterLoad;
        private string _AfterDelete;

        /// <summary>
        /// 获取或设置加载成功后回调函数名。
        /// </summary>
        public string AfterLoad
        {
            get { return _AfterLoad; }
            set { _AfterLoad = value; }
        }

        /// <summary>
        /// 获取或设置删除数据成功后回调函数名。
        /// </summary>
        public string AfterDelete
        {
            get { return _AfterDelete; }
            set { _AfterDelete = value; }
        }


    }


 

 

声明:本文版权为长江支流周方勇所有,如需转载,请保留完整的内容及出处。

作者:长江支流flygoldfish@163.com微信:winxin8001234567

连载:(三)循序渐进,通过XML配置,实现通用于WinForm(.Net)、WebForm(Asp.Net+JQuery+EasyUI)表单、报表--控制文件

上一篇:QT从入门到入土(九)——TCP/IP网络通信(以及文件传输)


下一篇:[LAMP]Apache虚拟主机