連載:(三)循序漸進,通過XML配置,實現通用於WinForm(.Net)、WebForm(Asp.Net+JQuery+EasyUI)表單、報表--控制檔案

來源:互聯網
上載者:User

標籤:報表   表單   asp.net   jquery   .net快速開發   

連載:(三)循序漸進,通過XML配置,實現通用於WinForm(.Net)、WebForm(Asp.Net+JQuery+EasyUI)表單、報表--XML控制檔案

長江支流

 

    本章,將給出控制檔案相關類的C#.Net原始碼,包括控制檔案主控類WebMisController、以及控制檔案的組成部分表單及清單過濾欄位Field類、回呼函數類CallbackFun。

 

控制檔案

控制檔案由WebMIS.ServiceModel.WebMisController/ WebMisControllerSerializer類去描述和解析。

                           

 

 

       

 

控制項檔案格式參考如下:

 

<?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 [email protected]</value>             </UpdateWhere>             <DeleteWhere>                       <value>Where [email protected] </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; }        }    }


 

 

聲明:本文著作權為長江支流周方勇所有,如需轉載,請保留完整的內容及出處。

長江支流[email protected]:winxin8001234567

連載:(三)循序漸進,通過XML配置,實現通用於WinForm(.Net)、WebForm(Asp.Net+JQuery+EasyUI)表單、報表--控制檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.