TKCORE框架学习之初级篇(二)--复杂 EasySearch 介绍

复杂 EasySearch 介绍

配置树形 EasySearch

配置 EasySearch 的 Xml 文件请放入项目 Xml 文件夹的 Decoder 目录下,并以*EasySearch.xml的文件名形态存在。

目前树形 EasySearch 支持两种形式:一种是以 Id 主键和 ParentId 所属父主键来确定树形归属关系,第二种是以代码编码呈现出 Level 层级(例:浙江行政编码 330000,杭州行政编码 330100,330100 归属 330000)关系来确定树形归属关系。

Id/ParentId 方式

现有组织机构表,Id 为主键,ParentId 为父级机构 Id。具体的描述文件在 Xml/Data/UserManager/Organization.xml 文件夹中:

<?xml version="1.0" encoding="UTF-8"?>
<tk:Toolkit version="5.0" xsi:schemaLocation="http://www.qdocuments.net ..\..\schema\v5\DataXml.xsd" xmlns:tk="http://www.qdocuments.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <tk:Table TableName="SYS_ORGANIZATION" NameField="Name">
    <tk:TableDesc>
      <tk:Content>组织机构表</tk:Content>
    </tk:TableDesc>
    <tk:FakeDeleteInfo FieldName="Active" Value="0"/>
    <tk:Tree/>
    <tk:Field DataType="string" IsKey="true" IsEmpty="false">
      <tk:FieldName>ORG_ID</tk:FieldName>
      <tk:NickName>Id</tk:NickName>
      <tk:DisplayName>
        <tk:Content>机构ID</tk:Content>
      </tk:DisplayName>
      <tk:Length>64</tk:Length>
      <tk:Layout Layout="PerUnit" UnitNum="1"/>
      <tk:Control Control="Hidden" Order="10" DefaultShow="All"/>
    </tk:Field>
    <tk:Field DataType="string">
      <tk:FieldName>ORG_PARENT_ID</tk:FieldName>
      <tk:NickName>ParentId</tk:NickName>
      <tk:DisplayName>
        <tk:Content>上级机构</tk:Content>
      </tk:DisplayName>
      <tk:Length>64</tk:Length>
      <tk:EasySearch RegName="ORG"/>
      <tk:Layout Layout="PerUnit" UnitNum="1"/>
      <tk:Control Control="Label" Order="70" DefaultShow="All"/>
    </tk:Field>
    <tk:Field DataType="string">
      <tk:FieldName>ORG_NAME</tk:FieldName>
      <tk:NickName>Name</tk:NickName>
      <tk:DisplayName>
        <tk:Content>机构名称</tk:Content>
      </tk:DisplayName>
      <tk:Length>100</tk:Length>
      <tk:Layout Layout="PerUnit" UnitNum="1"/>
      <tk:Control Control="Text" Order="20" DefaultShow="All"/>
    </tk:Field>
  </tk:Table>
</tk:Toolkit>

在此基础上我们在 Xml/Decoder/ UserManager 文件夹下创建 UserEasySearch.xml 文件:

采用Tk5TreeEasySearch标签

<?xml version="1.0" encoding="utf-8"?>
<tk:Toolkit version="5.0" xsi:schemaLocation="http://www.qdocuments.net ..\..\schema\v5\EasySearch.xsd" xmlns:tk="http://www.qdocuments.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <tk:Tk5TreeEasySearch DataXml="UserManager/Organization.xml" RegName="ORG" Author="YJC" CreateDate="2014-07-12" Description="机构"/>
</tk:Toolkit>

DataXml 配置具体 Data 描述信息的 xml 文件路径

RegName 为以后在使用过程中的注册名

Author 为作者

CreateDate 为创建时间

Description 为描述

页面效果如下

在这里插入图片描述

在这里插入图片描述

Level 层级方式

数据库中有 CD_SX(全国市县的代码表,带有代码表标准的 CODE_VALUE,CODE_NAME,CODE_DEL,CODE_PY,CODE_SOR 五个字段),表中具体内容:例:浙江行政编码 330000,杭州行政编码 330100,330100 归属 330000。这样很容易观察出来,每两位编码就是一个层级,6位编码就是3个层级。

此基础上我们在 Xml/Decoder/ UserManager 文件夹下创建 UserEasySearch.xml 文件:

由于编码采用0补码,所以采用Tk5Level0CodeTableEasySearch标签

<?xml version="1.0" encoding="utf-8"?>
<tk:Toolkit version="5.0" xsi:schemaLocation="http://www.qdocuments.net ..\..\schema\v5\EasySearch.xsd" xmlns:tk="http://www.qdocuments.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <tk:Tk5Level0CodeTableEasySearch TableName="CD_SX" RegName="SX" Author="YJC" CreateDate="2014-07-12" Description="地区">
    <tk:Level>2</tk:Level>
    <tk:Level>2</tk:Level>
    <tk:Level>2</tk:Level>
  </tk:Tk5Level0CodeTableEasySearch>
</tk:Toolkit>


如果 CD_SX 中具体值,例:浙江行政编码 33,杭州行政编码 3301,3301 归属 33,(没有采用0补码)则需采用Tk5LevelCodeTableEasySearch标签

<?xml version="1.0" encoding="utf-8"?>
<tk:Toolkit version="5.0" xsi:schemaLocation="http://www.qdocuments.net ..\..\schema\v5\EasySearch.xsd" xmlns:tk="http://www.qdocuments.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <tk:Tk5LevelCodeTableEasySearch TableName="CD_SX" RegName="SX" Author="YJC" CreateDate="2014-07-12" Description="地区">
    <tk:Level>2</tk:Level>
    <tk:Level>2</tk:Level>
    <tk:Level>2</tk:Level>
  </tk:Tk5LevelCodeTableEasySearch>
</tk:Toolkit>

TableName 为数据库中标明

RegName 为以后在使用过程中的注册名

Author 为作者

CreateDate 为创建时间

Description 为描述

Author,CreateDate,Description三个属性不参与任何程序(不写也行,但是不推荐)。只是会在TracePage中显示,便于跟踪相关的信息。

Level标签为每一个层级字符创的长度(例如:浙江行政编码 330000,杭州行政编码 330100,3301 归属 33,省级为第一级长度为 2,地市为第二级长度也为 2,区县市为第三级长度也为 2)

页面效果如下

在这里插入图片描述

在这里插入图片描述

SQL 作为数据源的 EasySearch

有时,EasySearch的数据源用表不合适,可以考虑使用视图来支持。不过有时,有些人懒得建视图,那么可以考虑直接用 SQL 语句的结果集作为 EasySearch 的数据源。例子如下:

采用SqlEasySearch标签

<?xml version="1.0" encoding="utf-8"?>
<tk:Toolkit version="5.0" xsi:schemaLocation="http://www.qdocuments.net ..\..\schema\v5\EasySearch.xsd" xmlns:tk="http://www.qdocuments.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <tk:SqlEasySearch RegName="SQL" IdField="Id" NameField="Name">
    <tk:Sql>SELECT ORG_ID AS Id,ORG_NAME AS Name FROM SYS_ORGANIZATION</tk:Sql>
  </tk:SqlEasySearch>
</tk:Toolkit>


RegName 为以后使用的注册名

IdField 为 Id 字段,必须指定Sql语句的对应字段

NameField 为 Name 字段,必须指定Sql语句的对应字段

Sql标签为具体的一个符合语法的数据库 Sql 语句(本例中只是示例,真实情况可能需要用join语句将几个表联合起来)

页面效果

在这里插入图片描述

关于TKCore的更多信息请点击: http://www.tkcore.net
关注微信公众号获取TKCore最新资讯:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TkCore

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值