复杂 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最新资讯: