Web控件使用--引入引出原创
金蝶云社区-余路生
余路生
7人赞赏了该文章 639次浏览 未经作者许可,禁止转载编辑于2022年09月13日 19:39:51

相关链接:https://waf2.kingdee.com:6999/waf2help/webviews/webframework/ctrls/import/readme

https://waf2.kingdee.com:6999/waf2help/webviews/webframework/ctrls/export/readme


关键词:web引入引出、引入、引出

1引入

1.1配置模板

先配置引入引出模板,如下图(配置过程略)

1.png


1.2添加按钮

添加引入按钮

1.png


1.3配置参数


1.png



配置参数参考:

http://waf2.kingdee.com:6888/waf2help/webviews/webframework/ctrls/import/readme

1.png示例参数:[{solu:'purchase001',soluName:'采购申请单引入',seq:1}]

 

完成:

1.png

2引出

2.1添加按钮


1.png



2.2配置参数


1.png



配置参数参考:

http://waf2.kingdee.com:6888/waf2help/webviews/webframework/ctrls/import/readme

1.png

[{solu:'purchase001',soluName:'采购申请单引出'}]

 

2.3设置过滤条件

    默认是没有根据查询条件来引出数据,如果要按查询结果引出,有两种方法实现。

第一种方法:

(1)添加引出前方法

1.png

(2)实现方法

  8.5及以上版本:

1.png

脚本:

exportDataBerfore:function(e){
        var filterMap = {};   
         //从通用查询组件获取过滤条件
	var filterItems = waf("#bizCommonQuery").bizCommonQuery("getCurrentFilter"); 
         if(filterItems) { 
                //转换格式
                filterItems = waf.parseSql.reTransFilter(filterItems);
                filterMap["mainQuery"] = filterItems
         }
         //设置引出参数,注:下面的country是引入引出模板的编码
         waf("#dataExport").dataExport("option", "bizParamMap", waf.toJSONString({"country": filterMap}));
}

 

8.2版本:

1.png

脚本:

exportDataBerfore:function(e){
       var filterItems = waf("#bizCommonQuery").bizCommonQuery("getCurrentFilter");
	if (filterItems) {
                  //下面的country是模板编码
		  var bizParamMap= "{country:{";
                  filterItems = filterItems.replace(/'/g, "'");
		  bizParamMap = bizParamMap+"'mainQuery':'"+filterItems+"'";
		  bizParamMap = bizParamMap+"}}";
		  waf("#dataExport").dataExport("option", "bizParamMap", bizParamMap);
        }
 }


注意:如果没有com.kingdee.eas.tools.datatask.task.MultitaskExportExcelRunner.getMainQuery()方法就要打补丁方可使用,(861版本:PT160659,850版本:PT162193,8.2版本:PT108437)

 目前只有8.6.1版本有waf.parseSql.reTransFilter()方法,8.5版本需要出补丁(补丁后续更新),没有waf.parseSql.reTransFilter()这个方法,可使用本文附件提供的方法


 第二种方法:

           第二种方法是传参到实现类,在实现类里获取前台传过来的过滤条件再拼接条件

自定义引入引出:
新建一个类继承AbstractDataTransmission

转换过滤条件:

可参考:https://vip.kingdee.com/article/162247871076018432

1.png

脚本:

@Override
    public FilterInfo getExportFilterForQuery(Context ctx) {
       String filterItmesStr = (String) getContextMap().get("filterItems");
       FilterInfo filterInfo;
       SqlExpr sqlExpr;
       if (filterItmesStr != null) {
            filterInfo = null;
            sqlExpr = null;
       }
       try {
           if (filterItmesStr.contains("{\"subject\"")) {
                 String filterItems = FilterSqlUtils.getFilterItems(ctx,filterItmesStr); 
                 filterInfo = new FilterInfo(filterItems);
           } else {
                 sqlExpr = ViewParseUtils.parseFilterExpr(filterItmesStr);
                 filterInfo = new FilterInfo(sqlExpr);
           }
           return filterInfo;
       } catch (Exception e) {
            try {
                   throw new TaskExternalException("", e);
            } catch (TaskExternalException e1) {
                   e1.printStackTrace();
            }
       }
       return null;
}

 

完成:

1.png



赞 7