Marmot Framework中的高级查询包含下列功能:
§ 将用户当前输入的查询条件保存为一套查询方案,以便于今后的快速取用和查询.
§ 将部分查询方案共享给其他人.利用此功能也可实现系统级的查询方案的定制.
§ 定义默认查询方案,使页面在进入时自动执行指定的查询方案.
§ 提供对SqlDataset和AutoSqlDataset的万能查询功能,用户可以利用Marmot Framework中万能查询定制界面定制查询方式,包括复杂的数据匹配规则和排序规则.
§ 支持查询字段的模版,并提供专用的维护界面,以便于定义万能查询界面中的可查询字段的列表,以及各字段的数据类型、支持的比较符列表、匹配值的编辑方式等.
§ 提供对SqlDataset和AutoSqlDataset的自定义SQL查询功能(此功能可能导致安全性问题、故对很多系统并不适用).
1.1 高级查询的定义方法
l 定义MarmotQuery组件
在一个查询页面中植入高级查询功能的方法是在ViewModel中添加一个MarmotQuery组件。该组件有下列一些重要的属性:
§ category(必须定义) - 用以区分各种查询方案的字符串。该字符串可以任意的定义,建议使用类似java package的命名方式。
§ queryDataset(必须定义) - 被查询的Dataset的id。
§ conditionDataset - 被用作管理查询条件的Dataset的id。该属性并不是必须定义的,只有当我们希望直接将用户在页面中输入的查询条件保存为查询方案时,才需要用到。
§ queryButton - 将被初始化为可下拉查询方案的按钮。此过程只为按钮初始化下拉菜单,并不会改变按钮的onClick动作,如果希望点击按钮时能够弹出高级查询对话框,可以在按钮的onClick事件中调用MarmotQuery的showQueryBox方法。例如:marmotQuery1.showQueryBox();。下拉菜单的表形形式如下: