Dorado 5 : 08.HelloWorld-4 查询 (T1)

 

HelloWorld-4 查询

设置查询匹配条件

在之前的helloWorld视图模型中,首先我们需要设置datasetEmployee的查询匹配条件MatchRules。步骤:【Datasets】—>【右键datasetEmployee】—>【Modify...】。

图8-01
在【Add the Join Table】窗口设置Where查询条件。选中选项卡【Where】

图8-02
在【Where】选项卡内左边的列表中,选中需要添加的查询条件【EMPLOYEE_ID】,添加至右边的列表框中。步骤:【Where选项卡】—>【左栏EMPLOYEE_ID】—>【 > 】—>【右栏EMPLOYEE.EMPLOYEE_ID】。

图8-03
调整右栏中的宽度,设置【Operation】为"="。

图8-04
设置【Value】为":EMPLOYEE_ID"。

图8-05
同样的办法设置。

Description

Operation

Value

DataType

EMPLOYEE.EMPLOYEE_ID

=

:EMPLOYEE_NAME

string

EMPLOYEE.SALARY

>=

:SALARYMin

double

EMPLOYEE.SALARY

<=

:SALARYMax

double



图8-06
点击【Add the Join Table】窗口中的【Finish】,完成查询条件的设置。

图8-07
保存全部修改,刷新JSP页面查看效果。

图8-08
我们会发现页面中没有数据,在ViewModel中调整MatchRule的属性,设置escapeEnabled的属性值为true。

图8-09
保存修改之后,刷新JSP页面再次查看效果,这时所有的控件中的数据都已经全部显示出来。如图8-10所示。

图8-10

新增条件数据集对象

新增Dataset数据集对象,用于接受用户输入的查询条件。步骤:【Datasets】—>【Insert】—>【FormDataset】。

图8-11
修改新建FormDataset的id值为datasetConditions,在datasetConditions下新建4个Field对象。步骤:【datasetConditions】—>【Fields】—>【Insert】—>【BaseField】。

图8-12
修改新建的Field对象的name属性值为"EMPLOYEE_ID",dataType属性值为"string"。

图8-13
同样的方法,继续新增Field。

name

dataType

备注

EMPLOYEE_NAME

string

查询条件:雇员名称

SALARYMin

double

查询条件:最低薪水值

SALARYMax

double

查询条件:最高薪水值



图8-14

添加表单控件绑定条件数据集对象

添加AutoForm控件,设置绑定datasetConditions。步骤:【Controls】—>【Insert】—>【Form】—>【AutoForm】,设置dataset属性值为datasetConditions。

图8-15
设置【Auto create elements】为√,点击【Finish】完成设置。

图8-16
拷贝formConditions标签,粘贴至hello-world.jsp页面中。步骤:【右键formCondition】—>【Copy】,然后在hello-world.jsp中粘贴标签代码。

图8-17

添加查询命令

添加QueryCommand查询命令控件。步骤:【Constrols】—>【Insert】—>【Commands】—>【QueryCommand】。

图8-18
设置conditionDataset属性值为datasetConditions,queryDataset属性值为datasetEmployee。

图8-19
点击【Finish】完成配置。如图8-20所示。

图8-20

添加查询按钮

添加Button按钮控件并绑定QueryCommand。步骤:【Controls】—>【Insert】—>【Button】,设置按钮的Value属性值为"查询",command属性值为commandConditions。

图8-21
同样的办法,在hello-world.jsp页面上添加button2控件标签。

图8-22
保存全部修改之后刷新JSP页面,查看效果。

图8-23
在EMPLOYEE_ID编辑框输入"ANLIN",点击【查询】,此时会有一个对话框闪过,这是进行后台查询的状态提示,之后可以查看查询效果。

图8-24
删除刚才输入的"ANLIN",在SALARYMin输入"3000",SALARYMax输入"5000",按照之前的设置,应该查询出的结果是">=3000"并且"<=5000"之间的记录集。点击【查询】,查看结果。

图8-25

实现模糊查询

最后,我们测试EMPLOYEE_NAME的模糊查询(操作符为"like")。删除之前输入的查询条件,在EMPLOYEE_NAME框输入"张",点击【查询】,查看结果。

图8-26
奇怪的是,我们并没有查询到任何结果。原来,由于模糊查询的条件匹配一般需要以"like '%%'"的形式,所以需要编辑相关处理事件进行改造。在commandConditions的beforeExecute事件中编写JavaScript脚本代码。
事件代码:

var record=datasetConditions.getCurrent(); 
if(record){ 
	 var employee_name=record.getValue("EMPLOYEE_NAME"); 
	 if(employee_name!=""&&employee_name!=null){ 
	 	command.parameters().setValue("EMPLOYEE_NAME","%"+employee_name+"%"); 
	 } 
}


图8-27
保存之后刷新JSP页面,在EMPLOYEE_NAME框重新输入"张",点击【查询】,查看结果。

图8-28
最终,我们实现了EMPLOYEE_NAME的模糊查询效果。

开发步骤

dorado中AutoSqlDataset的查询开发,首先需要设置AutoSqlDataset中的MatchRules查询匹配规则,之后新建接受输入条件的FormDataset对象,最后用QueryCommand控件将条件数据集对象FormDataset和AutoSqlDataset进行关联设置,从而最终实现查询的功能。

开发步骤

 


第一步:设置MatchRules匹配条件。


第二步:添加FormDataset用于接收条件输入。


第三步: 添加AutoForm控件绑定FormDataset。


第四步:添加QueryCommand控件并设置属性。

第五步:添加Button控件,绑定QueryCommand。













第六步:保存全部修改,刷新JSP页面。


详细步骤图

 

 

小测验

1.关于AutoSqlDataset中的MatchRules,下面说法正确的是()【多选】
A) 可以新建多个MatchRule条件进行查询设置。
B) MatchRules中的where条件表达式关键字可以不用和FormDataset中的Field列名保持一致。
C) AutoSqlDataset的MatchRules中所有的escapeEnabled属性值如果为false,一般情况下,AutoSqlDataset不会加载数据。
D) AutoSqlDataset的MatchRules中所有的escapeEnabled属性值如果为true,一般情况下,AutoSqlDataset不会加载数据。

小结

dorado中的查询有多种方式,本章主要讲解利用FormDataset(表单数据集)+QueryCommand(查询命令控件)实现基础的自动查询功能。其他类型的查询,我们会在之后的章节中专门讲解。

Attachments:

worddavc0dc0e408e38a29f2171ba37ad1b87b8.png (image/png)
worddav7d332b6f8855f4ef37208af3271c1ef7.png (image/png)
worddavb7242b595bf115324ebfc27b5afaaf16.png (image/png)
worddav6d018a40301f2af80402e8eee98b44ea.png (image/png)
worddavf73d2ab885f8a1801ec1d60c69d6809a.png (image/png)
worddav42b912d178eae2e5dcf11be0c523d65e.png (image/png)
worddav28001f42808513db74a530db88f19592.png (image/png)
worddavc3fad0a7a3d29a9b749f9bb3a0a715b4.png (image/png)
worddaveaaa38475b59a965644e5954bc3c47b7.png (image/png)
worddav117612709163f53d17dd3bd6e668e08a.png (image/png)
worddavadef7cc52e565411476998acc70aa928.png (image/png)
worddavc4c1dd3a16fec0f6663b3f7fe8cc748c.png (image/png)
worddavb39c35b87b6c9edd295b544b576e9507.png (image/png)
worddav67a533dc23d7d4bed876da174cbb838f.png (image/png)
worddav49b70b3e14c7d87536337acd254d9bd1.png (image/png)
worddavccaa8d04343c316488e3446ffc06fa34.png (image/png)
worddav08cfed4b62a2220ce076c24b9dab0f85.png (image/png)
worddavcafde81403a24db6363b4f57fa51957c.png (image/png)
worddav10d22d69e5cb76e5f7d2a4c75b4312da.png (image/png)
worddav49f7639bea1287ce5b45e4a6851903ee.png (image/png)
worddav2ce3c4edb238d67376775ff24080eb48.png (image/png)
worddav1303d875bf9b529ae1e71fda52f9f8a3.png (image/png)
worddavae675be17161210efb8f8d654e469212.png (image/png)
worddav798a99c00aa6cf4f36ad0eac57568fa9.png (image/png)
worddave2aebc0fba4ebaa512c9d3355998dd0b.png (image/png)
worddavb6d47527ee02954dc4b9ce62d6bb4024.png (image/png)
worddav2c97cb63ee68d6391bc55ca2acfc738b.png (image/png)
worddava483d961d7c1ca61b854044fc3954fd9.png (image/png)
worddavba72c0a1f40fa7e2f66a31ed77e9db13.png (image/png)
worddav0461497aaa07b8f9d009488d834e7cdd.png (image/png)
worddavba4451e784bbee669c4f531b6273c417.png (image/png)
worddav6471f5b42cad4636f8d3b37595cbd02b.png (image/png)
worddava3459b8b2b03d861686269a798cad701.png (image/png)
worddav5e060821630b7623d0c570539d597550.png (image/png)
worddavbb15d71c8935de95f22ed3d1b4d7e12a.png (image/png)
worddav397a0a18812ba582b8c60dd2d21267cf.png (image/png)
worddav76480d2a5cdda7467cc7e21eb8f64199.png (image/png)
worddav7ee8e93b82c50659f2b26cde181d0a9b.png (image/png)
worddav02d1f5af5cc4105e7274967e6c021f81.png (image/png)
worddavecdae1a4dfe635574fd38ed63ca93cfa.png (image/png)