程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 個人開發框架總結(四)

個人開發框架總結(四)

編輯:關於C#

BaseQueryForm 提供數據查詢的窗體

屬性

DisplayResultList:是否查詢後在後面顯示查詢結果列表

MultiResult:是否返回多條數據

QueryBuilder:查詢後返回的查詢構造器

ResultList:返回的結果List

ConfigFileName:配置文件

保護的方法

GetInfoFields:得到結果列表的列字段數組

重載方法

CreateListInstance:創建IList

BuildLists:根據查詢器查詢出數據

FormatValue:格式化數據

GetSelectedInfo:返回選定行的信息

GetItemValue:參見BaseTreeListForm中的相關介紹

QuerySetTypeListData:參見BaseTreeListForm中的相關介紹

QuerySetTypeTreeData:參見BaseTreeListForm中的相關介紹

事件

SetTypeListData:相同於QuerySetTypeListData

SetTypeTreeData:相同於QuerySetTypeTreeData

現在來看一個例子:

        public frmMemberQuery()
        {
            InitializeComponent();
            //要顯示查詢結果列表
            DisplayResultList = true;
        }

        /// <summary>
        /// 創建一個實體集合
        /// </summary>
        /// <param name="type"></param>
        protected override void CreateListInstance(Type type)
        {
            base.CreateListInstance(typeof(TMembers));
        }

        /// <summary>
        /// 獲取選定節點對應的實體信息
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        protected override BaseModel GetSelectedInfo(Node node)
        {
            try
            {
                ATMember objDAL = (ATMember)DAFactory.CreateDA(typeof(ATMember));
                TMember info = objDAL.Get(node.Tag);
                objDAL.Dispose();
                return info;
            }
            catch (System.Exception e)
            {
                Utility.ShowErrorMessage(e.Message);
            }
            return null;
        }

        /// <summary>
        /// 構造信息集合
        /// </summary>
        /// <param name="queryArgs"></param>
        /// <param name="isFull"></param>
        /// <returns></returns>
        protected override IList BuildLists(QueryBuilder qb)
        {
            try
            {
                ATMember da = (ATMember)DAFactory.CreateDA(typeof(ATMember));
                qb.Append(QueryRelation.And, QueryCompare.Equal, TMember._MemerState, MemberState.Normal.ToString("D"));
                return da.Select(qb, GetInfoFields());
            }
            catch (System.Exception e)
            {
                Utility.ShowErrorMessage(e.Message);
            }
            return null;
        }

查詢字段的配置可在Config下建立 窗體類名.pcs 文件:

配置文件(Config/*.pcs)

<PropertyColumnConfig>
  <Columns> //這節是查詢結果列字段配置列表
    <Column>
      <Type> TreeList的Column的類別
      <Text> 列頭上顯示的文本
      <Width> 寬度
      <Align> 對齊
      <ImageIndex> 圖標索引
      <Visible> 是否可見
      <Key> 對應的表字段
      <Formater> 格式,當Type為NumberColumn或DateTimeColumn時設置
      <CustomFormat> 自定義格式
    </Column>
  </Columns>
  <Properties> //此節為查詢界面上字段的列表
    <Property>
      <PropertyName> 對應的表字段
      <DisplayName> 顯示的標簽名稱
      <ImeMode> 輸入法狀態
      <Type> 查詢的類別
      <EnumType> 如果Type為Enum則指定Enum類別名
    </Property>
  </Properties>
</PropertyColumnConfig>

如以上窗體對應的配置文件內容如下:

<?xml version="1.0" encoding="utf-8" ?>
<PropertyColumnConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Columns>
    <Column>
      <Type>Column</Type>
      <Text>卡號</Text>
      <Width>100</Width>
      <Align>Left</Align>
      <ImageIndex>0</ImageIndex>
      <Visible>true</Visible>
      <Key>Card</Key>
      <Formater />
    </Column>
    <Column>
      <Type>Column</Type>
      <Text>姓名</Text>
      <Width>80</Width>
      <Align>Left</Align>
      <ImageIndex>0</ImageIndex>
      <Visible>true</Visible>
      <Key>Name</Key>
      <Formater />
    </Column>
    <Column>
      <Type>NumberColumn</Type>
      <Text>積分</Text>
      <Width>80</Width>
      <Align>Right</Align>
      <ImageIndex>0</ImageIndex>
      <Visible>true</Visible>
      <Key>Score</Key>
      <Formater />
    </Column>
    <Column>
      <Type>NumberColumn</Type>
      <Text></Text>
      <Width>0</Width>
      <Align>Right</Align>
      <ImageIndex>0</ImageIndex>
      <Visible>false</Visible>
      <Key>Id</Key>
      <Formater />
    </Column>
  </Columns>
  <Properties>
    <Property>
      <PropertyName>Name</PropertyName>
      <DisplayName>姓名</DisplayName>
      <ImeMode>On</ImeMode>
      <Type>String</Type>
    </Property>
    <Property>
      <PropertyName>Card</PropertyName>
      <DisplayName>卡號</DisplayName>
      <ImeMode>Off</ImeMode>
      <Type>String</Type>
    </Property>
    <Property>
      <PropertyName>Score</PropertyName>
      <DisplayName>總積分</DisplayName>
      <Type>Decimal</Type>
    </Property>
    <Property>
      <PropertyName>IdCard</PropertyName>
      <DisplayName>身份證號</DisplayName>
      <ImeMode>Off</ImeMode>
      <Type>String</Type>
    </Property>
    <Property>
      <PropertyName>Mobile</PropertyName>
      <DisplayName>手機</DisplayName>
      <ImeMode>Off</ImeMode>
      <Type>String</Type>
    </Property>
    <Property>
      <PropertyName>Address</PropertyName>
      <DisplayName>地址</DisplayName>
      <ImeMode>On</ImeMode>
      <Type>String</Type>
    </Property>
  </Properties>
</PropertyColumnConfig>

下節該講報表 BaseReportForm 了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved