通用查询功能第三版EasyQueryVer3使用说明

通用查询功能第三版EasyQueryVer3使用说明

1.演示模板:... 2
2.相关文件... 2
3.功能说明:... 2
3.1.查询功能... 2
3.1.1.easyQueryVer3(strSql, synchronization, useCache, strStart)2
3.1.2.decodeEasyQueryResult(strResult, notUseEasyQuery, notUseTurnPage,otherTurnPage)3
3.1.3.easyExecSql(strSql, synchronization, useCache, strStart,notUseEasyQuery, notUseTurnPage)3
3.1.4.turnPage.queryModal(strSql, multilineGrid)3
3.2.显示功能... 4
3.2.1.displayMultiline(arrDisplayData, multilineGrid, otherTurnPage)4
3.3.翻页功能... 4
3.3.1.turnPageClass()4
3.3.2.turnPage.getData(arrDataSet, arrDataIndex, pageRecordNum)5
3.3.3.turnPage.firstPage()5
3.3.4.turnPage.previousPage()5
3.3.5.turnPage.nextPage()5
3.3.6.turnPage.lastPage()5
3.3.7.自动控制显示翻页按钮... 5
3.4.其他辅助功能函数... 6
3.4.1.getWherePart(fieldName, controlName, strOperate, fieldType)6
3.4.2.clearArrayElements(arrData)6
3.4.3.chooseArray(dataArray, filterArray)6
4.复杂应用实例... 7
4.1.虚拟数据源的MultiLine显示和翻页操作... 7
4.2.在一个页面中显示一个MultiLine,并多次使用查询、拆分等功能...7
4.3.在一个页面中显示多个MultiLine. 7



1.演示模板: l\ui\easyQueryVer3Example\EasyQueryVer3ExampleInput.jsp
l\ui\easyQueryVer3Example\EasyQueryVer3ExampleInit.jsp
l\ui\easyQueryVer3Example\EasyQueryVer3Example.js
运行:http://localhost:8900/ui/easyQueryVer3Example/EasyQueryVer3ExampleInput.jsp
注意:localhost是你的主机名
2.相关文件 请确认以下相关文件存在于对应的目录中:
\ui\common\easyQueryVer3\EasyQueryVer3.js
\ui\common\easyQueryVer3\EasyQueryCache.js
\ui\common\easyQueryVer3\EasyQueryKernel.jsp
\ui\common\easyQueryVer3\EasyQueryVer3Window.jsp
3.功能说明: 必须在使用如下功能的页面中包含(注意:不要直接从这里拷贝语句到代码中!):


3.1.查询功能 3.1.1. easyQueryVer3(strSql, synchronization, useCache, strStart)
l功能说明:输入一个SQL语句,返回约定格式的查询结果字符串。
l输入参数说明
1)strSql(String类型):SQL语句字符串。
2)synchronization(1为同步,0为异步):默认情况为1。同、异步查询方式设置。同步为查询出数据后才继续执行程序;异步为发出查询请求后继续执行程序,查询结果会在其他地方进行反馈。
3)useCache(1为缓存结果,0为不缓存):默认情况为0。设置查询结果缓存。需要进行页面缓存设置,即在需要保存结果的页面包含(注意,该页面刷新后缓存将被清空):

4)strStart(int类型):默认情况为1。设置查询开始记录位置。
StrSql为必填参数,其他可以不填。
l输出参数说明
1)查询成功返回查询结果字符串:由记录和字段拼成,记录以‘^’分隔,字段以‘|’分隔,字段首是查询出的所有记录的数量。
2)查询失败返回false
l使用范例
strSql ="select SysVar, SysVarType, SysVarValue from ldsysvar where 1=1 ";
strQueryResult = easyQueryVer3(strSql, 1, 1, 1);
strQueryResult值为:“ 总记录数^ 记录1字段1 | 记录1字段2 | …… ^ 记录2字段1 | 记录2字段2 …… ”
3.1.2. decodeEasyQueryResult(strResult, notUseEasyQuery, notUseTurnPage,otherTurnPage)
l功能说明:将约定格式的字符串拆分成二维数组。
l输入参数说明
1)strResult:约定格式的字符串。主要与easyQueryVer3函数配套使用,输入查询返回的结果字符串。
2)notUseEasyQuery:非easyQueryVer3查询结果字符串标记。非约定格式字符串。
3)notUseTurnPage: 不使用翻页功能。“1”非,“0”是,默认非。
4)otherTurnPage: 使用其它的翻页对象,而不是默认的turnPage对象,必须是一个turnPageClass的对象。
l输出参数说明
1)拆分成功返回二维数组:行(一维)为记录,列(二维)为字段。
2)拆分失败返回null
3.1.3. easyExecSql(strSql, synchronization, useCache, strStart,notUseEasyQuery, notUseTurnPage)
l功能说明:将easyQueryVer3和decodeEasyQueryResult结合使用。输入一个SQL语句,返回一个查询结果的二维数组。
l输入参数说明(同easyQueryVer3)
1)notUseEasyQuery:非easyQueryVer3查询结果字符串标记。非约定格式字符串。
2)notUseTurnPage: 不使用翻页功能。“1”非,“0”是,默认非。
l输出参数说明(同decodeEasyQueryResult)
3.1.4. turnPage.queryModal(strSql, multilineGrid)
l功能说明:快速查询显示接口,只能使用默认的turnPage翻页对象,一个页面只能使用一次。方法会根据传入的SQL语句查出数据,并显示在传入的MultiLine对象中,省去easyQueryVer3->decodeEasyQueryResult->turnPage.getData->displayMultiline等详细控制代码。
l输入参数说明
1)strSql(String类型):SQL语句字符串。
2)multilineGrid:初始化过的Multiline对象。
l输出参数说明(无)
3.2.显示功能 3.2.1.displayMultiline(arrDisplayData,multilineGrid, otherTurnPage)
l功能说明:调用Multiline功能模块显示二维数组。Multiline使用部分详见侯志敏编写的使用文档。
l输入参数说明
1)arrDisplayData:一个二维数组。维数需要与Multiline初始化时的二维数组一致。
2)multilineGrid:初始化过的Multiline对象。
3)otherTurnPage: 使用其它的翻页对象,而不是默认的turnPage对象,必须是一个turnPageClass的对象。
l输出参数说明(无)
3.3.翻页功能 该功能必须配合Multiline和displayMultiline使用
3.3.1. turnPageClass()
l功能说明:使用翻页功能首先要建立turnPageClass对象,必须建立为全局变量,名称不能改变,必须为var turnPage= new turnPageClass(); (水平有限,找不到自动检测出对象类型的方法)所有的翻页方法均以该对象的方法调用,即页面中调用翻页方法需要写成:




l输入参数说明
1)turnPage.strQueryResult:easyQueryVer3的查询结果。
2)turnPage.arrDataCacheSet:decodeEasyQueryResult拆分后的二维数组。
3)turnPage.pageDisplayGrid:初始化过的Multiline对象。
4)turnPage.strQuerySql:查询的SQL语句。
5)turnPage.pageIndex:查询结果显示起始页。从0开始记数,第一页为0。默认0。
6)turnPage.useSimulation:使用模拟数据源,必须在拆分字符串前付值。为1表示使用,为0表示不使用。默认为0。
7)turnPage.queryAllRecordCount:查询结果的记录总数。在拆分函数中获取。
8)turnPage.blockPageNum:一个数据块的页面数。默认为common.js文件中定义的MAXMEMORYPAGES。
9)turnPage.pageLineNum:一个页面要显示的记录数。默认为common.js文件中定义的MAXSCREENLINES。
l输出参数说明(无)
3.3.2.turnPage.getData(arrDataSet, arrDataIndex, pageRecordNum)
l功能说明:在查询结果数组中取出符合页面显示大小设置的数组。是翻页控制的基础。(注意:Common.js中定义的MAXMEMORYPAGES * MAXSCREENLINES不能大于查询块的大小,查询块大小在SysConst.java中的同名变量进行设置)
l输入参数说明
1)arrDataSet:要进行数据显示的二维数组。
2)arrDataIndex:当前要显示数据在数组中的索引
【通用查询功能第三版EasyQueryVer3使用说明】3)pageRecordNum:当前页面要显示的记录数
l输出参数说明
1)成功则返回符合页面显示容量的二维数组。
2)失败返回null
3.3.3. turnPage.firstPage()
l功能说明:从第一个查询结果块的第一条记录开始显示。
l输入参数说明(无)
l输出参数说明(无)
3.3.4. turnPage.previousPage()
l功能说明:当查询结果超出一页的显示容量时,查找上一页数据并显示。
l输入参数说明(无)
l输出参数说明(无)
3.3.5. turnPage.nextPage()
l功能说明:当查询结果超出一页的显示容量时,查找下一页数据并显示。
l输入参数说明(无)
l输出参数说明(无)
3.3.6. turnPage.lastPage()
l功能说明:从最后一个查询结果块的最后一条记录开始显示。
l输入参数说明(无)
l输出参数说明(无)
3.3.7. 自动控制显示翻页按钮
l功能说明:在JSP页面中自动控制显示翻页按钮。使用该设置后,如果查询结果数量大于页面设置的显示行数,就会显示翻页按钮,否则不显示。设置方法为:在翻页代码的外边加上如下DIV标签:






l输入参数说明(无)
l输出参数说明(无)
3.4.其他辅助功能函数 3.4.1. getWherePart(fieldName, controlName, strOperate, fieldType)
l功能说明:获取页面指定控件的值,并按照指定类型拼成SQL语句的尾串。作者为HST。
l输入参数说明
1)fieldName:SQL中要使用的字段名称。
2)controlName:控件名称。默认取与字段相同名称的控件。
3)strOperate:操作符。默认为“=”号操作。
4)fieldType( 0为字符型,1为数字型 ):字段类型。默认为0。
l输出参数说明
1)返回可直接拼至SQL语句WHERE以后的尾串。
l使用范例
strSql = "select SysVar, SysVarType, SysVarValue from ldsysvarwhere 1=1 "
+getWherePart( 'SysVar' )
+getWherePart( 'SysVarType' )
+getWherePart( 'SysVarValue' );
3.4.2. clearArrayElements(arrData)
l功能说明:清空数组函数。
l输入参数说明
1)arrData:数组。
l输出参数说明
1)返回空数组。
3.4.3. chooseArray(dataArray, filterArray)
l功能说明:过滤二维数组,获取需要的字段。
l输入参数说明
1)dataArray:二维数组。
2)dataArray:包含过滤索引的一维数组,存放需要的字段的位置,从0开始记数。
l输出参数说明
1)返回二维数组。
l使用范例
chooseArray({ {1,2},{3,4} },{0} ) returns{{1},{3}}
4.复杂应用实例 在演示模板中均有以下情况的详细实现方法。
4.1.虚拟数据源的MultiLine显示和翻页操作 虚拟数据源的意思是不通过easyQueryVer3(strSql)方法获取数据库的数据,而是通过其它手段(一般是自己写java后台或者直接写死在代码中)获得符合规则的字符串,并将该字符串中的数据显示在MultiLine中加以显示和操作。
使用的关键点:
1. 将数据字符串保存进turnPage的查询结果属性中:turnPage.strQueryResult=strData;
2. 设置使用虚拟数据源标记:turnPage.useSimulation=1;
3. 必须将所有数据设置为一个数据块:turnPage3.blockPageNum = turnPage3.queryAllRecordCount /turnPage3.pageLineNum;
4. 接着可进行拆分字符串到二维数组、过滤二维数组字段等操作,过滤功能只能用在这个地方。
4.2.在一个页面中显示一个MultiLine,并多次使用查询、拆分等功能 早期版本不支持这个功能,属于设计上的缺陷,因为在拆分功能(decodeEasyQueryResult)中设置了公共属性,所以当一个查询被成功执行并显示在MultiLine中后,再次执行拆分操作会导致记数混乱,必须重新再执行前一个查询。
解决方案是扩充decodeEasyQueryResult方法的接口,增加了第三个参数notUseTurnPage,使与翻页无关的查询不会修改公共属性。
使用的关键点:
1. decodeEasyQueryResult(strResult,0, 1); 第二个参数必须用0
2. easyExecSql(strSql, 1, 0, 1, 0,1); 参数必须这样写
4.3.在一个页面中显示多个MultiLine 早期版本也不支持这个功能,也属于设计上的缺陷,也是因为共用属性的问题造成的。
解决方案是扩充decodeEasyQueryResult方法和displayMultiline方法的接口,增加指定turnPage对象的参数。
使用的关键点:
1. 为每个MultiLine建立一个turnPage对象,给属性付值时注意不要弄错对象名
2. 在JSP页面中设置翻页按钮时注意Div标签的命名和翻页函数
divPage2" align=centerstyle= "display: 'none' ">





    推荐阅读