通用查询按钮客户化-报表展现标签与API
目录

通用查询按钮客户化

通用查询展现时,默认显示“查询”和“重置”两个按钮。

在实际使用时,用户可能会需要修改默认按钮。比如需要重写查询方法,以便在方法中处理业务需求,或者用户需要使用自定义的按钮实现查询和重置的功能等等。

开发者可以利用产品提供的接口,对通用查询上的按钮进行客户化,例如:

js方法说明

通用查询默认生成的“查询”和“重置”按钮,在页面中的默认元素id分别为“queryBtn”和“resetBtn”,对应的click事件方法默认分别为submit2()和reset()。

submit2()

语法:submit2(iqs, callback)

参数说明:

    {
        "querys":{"args":"参数","macros":"宏,"sql":"SQL条件"},
        "condition":{条件1:值1, 条件2:值2, ...}
     }

返回值:

reset()

语法:reset()

参数:

返回值:

客户化方法

在自定义的jsp页面中使用通用查询标签commtag调用通用查询时,必须在标签中配置jsObjectName标签属性的值。

该属性为commtag标签的唯一标识,如果一个页面有多个commtag也就是多个通用查询,则会根据jsObjectName属性值判断是调用哪一个通用查询的“查询”和”重置”方法。

标签中设置jsObjectName属性的方式可参考下面代码:

<commTag:commQryTag
       jsObjectName="myCQ"
       jsonContent="<%=commonQueryText%>"
       params="<%=commonQueryParams%>"
    />

设置了jsObjectName属性后,页面上会根据该属性的值生成js对象。

比如按上面的设置,就会生成一个名为”myCQ”的js对象,该对象提供“查询”和“重置”两个对外方法。

这两个js方法的调用规则为:jsObjectName指定的js对象名.对外方法名。

比如按上面的配置时,调用方法为:myCQ.submit2(iqs)和myCQ.reset()。

此时,如果需要对按钮进行客户化,可按以下不同情况进行处理:

重写按钮默认方法

如果仍然使用默认的查询和重置按钮,但需要将查询和重置操作客户化,执行一些指定的业务操作,可以将默认的查询和重置按钮的click方法重写。

例如重写查询按钮click方法:

  $("#queryBtn").click(function(){ //重写默认的查询按钮click方法,在方法中执行指定的业务操作
         query.submit2(false,function(data){
            … //用data进行查询
         });
   }); 

使用自己的按钮

如果需要使用自定义的按钮进行查询和重置,可以按照通用查询按钮显示与隐藏中的客户化方法,将默认的查询和重置按钮隐藏,然后为页面中自定义的按钮添加触发方法。

例如,在页面中自定义了一个id名为“myResetButton”的按钮,点击该按钮可以将通用查询的条件值重置清空:

$(myResetButton).click(function(){
         myCQ.reset();
    });

注意:通用查询标签如果使用参数属性(params标签属性)设置了查询条件的默认值,由于是在生成页面内容之前用params属性中的值替换了条件默认值,此时调用reset()方法重置后,条件值将仍为params属性中指定的值。params标签属性的使用,可参考:通用查询条件默认值设置

 

场景示例一:使用自定义按钮调用查询和重置方法

示例1

调用query.submit2(false),获得查询条件内容,进行后续处理。

注意此处通用查询标签指定的jsObjectName属性为query,自定义按钮id为mySubmitButton。

示例代码:

  $("#mySubmitButton").click(function(){
      query.submit2(false,function(data){
          … // 用data进行查询
      });
  });

上面代码中,返回的queryStr格式为:{args:参数值, macros:宏值, sql:SQL条件}

例如:{"args":"","macros":[],"sql":[{"dsName":"demo_sales","value":"订购日期='2009-01-08' and 城市='上海'"}]}

示例2

调用query.reset()方法,重置条件值。

注意此处通用查询标签指定的jsObjectName属性为query,自定义按钮id为myResetButton。

示例代码:

$("#myResetButton").click(function(){
        query.reset();
    });

注意:此方式添加的按钮不能添加在通用查询面板上,可添加至SR工具条中或者自定义的报表展现页面中。

 

场景示例二:重写默认查询和重置按钮的click方法,并做其他客户化处理

示例

重写查询按钮click方法:

  $("#queryBtn").click(function(){   
      query.submit2(false,function(data){
          … //执行客户化处理
      });
  }); 

重写重置按钮click方法:

$("#resetBtn").click(function(){
        query.reset();
        … // 执行客户化处理
    });

参考DEMO

可将以下url地址中的ip、port端口号更改为应用实际部署的地址和端口后,进行访问查看对应demo。

http://ip:port/reportmis /mis2/commonQuery/demo/demo_query.jsp