金蝶插件开发

金蝶插件开发,第1张

金蝶插件开发 1、报表开发

报表开发需要表头表体两个插件,表头继承AbstractReportFormPlugin类,表体继承AbstractReportListDataPlugin类,其中列表的数据需要显示,则主要靠的是AbstractReportListDataPlugin子类实现query()方法,返回值为datasate类型,将查出来的值显示在报表查询的列表上

1.1、表头插件的书写规范:

表头插件只要继承AbstractReportFormPlugin就可以,里面可以不用写任何东西,但是必须得有,注册位置:(可以写多个插件)可以控制报表过滤控件里面的字段和工具栏里面的按钮

 1.2、列表插件的书写规范:

继承AbstractReportListDataPlugin类,同时需要实现 query() 方法,返回值为DataSet类型,返回的数据名称和列名一致,显示在列表上面,注册位置:(一个报表只有一个列表插件,用来给列返回数据)

 列表插件示例:

import kd.bos.algo.DataSet;
import kd.bos.algo.Row;
import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.report.AbstractReportListDataPlugin;
import kd.bos.entity.report.FilterItemInfo;
import kd.bos.entity.report.ReportQueryParam;
import cn.hutool.core.util.ObjectUtil;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.QueryServiceHelper;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;


public class FormStudyPlugin  extends AbstractReportListDataPlugin {
    
    private final String[] fields = new String[]{"goods_id",  "amount", "order_no", "tax_amount"};

    
    @Override
    public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
        List filterItems =  reportQueryParam.getFilter().getFilterItems();
        DataSet dataSet =null;
        Date start_time = null;
        Date end_time = null;
        Long goods_id= null;

        for(FilterItemInfo filter :filterItems){
            switch (filter.getPropName()){
                
                case "rm_createtime":
                    Date createtime  = (Date)filter.getValue();
                    if(ObjectUtil.isNotNull(createtime)){
                        start_time = createtime;
                    }
                    break;
                
                case "rm_endtime":
                    Date  endtime  = (Date)filter.getValue();
                    if(ObjectUtil.isNotNull(endtime)){
                        end_time = endtime;
                    }
                    break;
                
                case "rm_goods_id":
                    DynamicObject goodsId  = (DynamicObject)filter.getValue();
                    if(ObjectUtil.isNotNull(goodsId)){
                        Object o1 =  goodsId.getPkValue();
                        int q =1;
                        goods_id = (Long) goodsId.getPkValue();
                    }
                    break;
            }
        }
        QFilter qFilter = new QFilter("rm_sc_pur_in_dtl.goods_id",QCP.equals,goods_id);
        DataSet dataSet1 =QueryServiceHelper.queryDataSet(this.getClass().getName(),
                "rm_sc_pur_in",
                "rm_sc_pur_in_dtl,billno,rm_sc_pur_in_dtl.goods_id,rm_sc_pur_in_dtl.qty",
                qFilter.toArray(),
                null);

        
        if(start_time !=null && end_time != null ){
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String start = simpleDateFormat.format(start_time);
            String end = simpleDateFormat.format(end_time);
//            QFilter filter = new QFilter("rm_sc_pur_in_dtl.manu_date", QCP.large_equals,start);
//            filter.and("rm_sc_pur_in_dtl.manu_date", QCP.less_equals,end);
            QFilter filter = new QFilter("rm_sc_pur_in_dtl.goods_id", QCP.equals,goods_id);
            if(goods_id != null){
//                QFilter filter = new QFilter("rm_sc_pur_in_dtl.goods_id", QCP.equals,goods_id);
            }
            dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(),
                    "rm_sc_pur_in",
                    "rm_sc_pur_in_dtl,rm_sc_pur_in_dtl.goods_id  as "+fields[0]+
                              ",rm_sc_pur_in_dtl.amount as "+fields[1]+ ",rm_sc_pur_in_dtl.order_no as "+fields[2]+",rm_sc_pur_in_dtl.tax_amount as "+fields[3]
                    ,filter.toArray(),
                    null);

        }
        return dataSet;
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5697157.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存