金蝶插件开发

article/2025/8/26 20:41:55

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;/*** Description* 表单学习插件* @author zwt* @ClassName FormStudyPlugin* @date 2021-09-15*/
public class FormStudyPlugin  extends AbstractReportListDataPlugin {/**1、设置需要查询的字段 **/private final String[] fields = new String[]{"goods_id",  "amount", "order_no", "tax_amount"};/*** 2、获取过滤字段值,通过reportQueryParam获取到fiter对象,遍历赋值给过滤字段* @param reportQueryParam* @param o* @return* @throws Throwable*/@Overridepublic DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {List<FilterItemInfo> 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()){/** 2.1、开始日期 **/case "rm_createtime":Date createtime  = (Date)filter.getValue();if(ObjectUtil.isNotNull(createtime)){start_time = createtime;}break;/** 2.2、结束日期 **/case "rm_endtime":Date  endtime  = (Date)filter.getValue();if(ObjectUtil.isNotNull(endtime)){end_time = endtime;}break;/** 2.3、商品编码 **/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;}
}


http://chatgpt.dhexx.cn/article/05n8c6t5.shtml

相关文章

金蝶BOS开发入门

金蝶BOS开发入门 金蝶BOS开发工具介绍 解决方案相当于一个JAVA项目&#xff0c;而BOS开发工具是开发解决方案的技术平台。它可以新建一个解决方案&#xff0c;或者从本地或者远程导入一个已有的解决方案&#xff0c;具体操作后续会讲到。 界面介绍和简单使用 简单&#xff…

金蝶EAS开发笔记

1.界面介绍 1. 新建业务单位&#xff0c;若无需求&#xff0c;默认选用财务组织。 2. 在项目路径下的\metadata\com\kingdee\eas\custom\bill 可改单据名称。 3. 标准&#xff1a;默认先在用户自定义下面建立报表(rpt)、基础资料(basedata)和业务单据(bill)&#xff0c;即在…

测试用例设计方法——因果图法

1.因果图  1.1考虑所有输入/输出条件的相互制约关系以及组合关系  1.2考虑输入条件之间的依赖关系&#xff1b;  1.3再根据分析的关系来转化为判定表的规则 2.条件与结果之间的关系  2.1恒等  2.2非&#xff08;~&#xff09;  2.3或&#xff08;V&#xff09;  2.4与 3…

实验4、黑盒测试:因果图法及测试用例设计

实验4、黑盒测试&#xff1a;因果图法及测试用例设计 一、实验目的 1、掌握因果图的概念。 2、掌握因果图测试用例设计法。 二、实验任务 以下三个任务、至少完成一个 1、某软件规格说明书包含这样的要求&#xff1a;第一列字符必须是A或B&#xff0c;第二列字符必须是一…

【测试入门】测试用例经典设计方法 —— 因果图法

01、因果图设计测试用例的步骤 1、分析需求 阅读需求文档&#xff0c;如果User Case很复杂&#xff0c;尽量将它分解成若干个简单的部分。这样做的好处是&#xff0c;不必在一次处理过程中考虑所有的原因。没有固定的流程说明究竟分解到何种程度才算简单&#xff0c;需要测试…

【测试】根据因果图法设计饮料售卖机的测试用例

【测试】根据因果图法设计饮料售卖机的测试用例 因果法设计测试用例的步骤&#xff1a; ① 分析所有可能的输入和可能的输出 ② 找出输入与输出之间的对应关系 ③ 画出因果图 ④ 把因果图转换成判定表 ⑤ 把判定表对应到每一个测试用例 产品说明&#xff1a; 有一个处理单价为…

软件测试用例设计方法-因果图法

边界值法是等价类划分法的补充&#xff0c;所以&#xff0c;它们是一对搭档。 那么&#xff0c;判定表法有没有它的搭档呢&#xff1f; 答案是&#xff0c;有的。那就是本篇文章分享的用例设计方法—— 因果图法 。 定义 因果图法&#xff1a; 用来处理等价类划分和边界值考…

测试用例设计方法---因果图法

学习目标 掌握因果图法的核心 掌握因果图的基本符号了解因果图的画法 1、什么是因果图法 因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适用于检查程序输入条件的各种组合情况 2、因果图法的核心 因 、 果 1、所谓的原因就是输入,所谓的结果就…

因果图法设计测试用例

等价类划分法、边界值分析法及错误推断法在对输入条件的考虑中并未重视输入条件的组合。事实上&#xff0c;当输入条件存在若干种可能的组合时&#xff0c;必须对这些组合加以考虑&#xff0c;以证实测试程序在某种输入组合的情况下恩能否完成规格说明书中预先规定的功能&#…

通俗的讲,Java后端到底是干什么的?语言工程师到底是啥?你是工程师吗?

新手程序员通常会走入一个误区 就是认为学习了一门语言&#xff0c;就可以称为是某某语言工程师了。但事实上真的是这样吗&#xff1f;其实并非如此。 今天我们就来聊一聊&#xff0c;Java 开发工程师到底开发的是什么东西。准确点来说&#xff0c;Java后端到底在做什么&…

Web开发从前端、后端、编程语言、到框架的初学指南

[导读] 作为一篇Web开发初学者指南&#xff0c;本文从学习什么出发到如何专攻。从前端、后端&#xff0c;到编程语言&#xff0c;再到框架&#xff0c;或许对打算进军Web开发的您有所帮助。如果你正在阅读这篇文章&#xff0c;你可能是对Web开发有某种兴趣&#xff0c;甚至你开…

数据库与后端语言

什么是数据库 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期储存在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 什么是后端语言 后端语言&#xff0c;在Web应用中实际上就是向前端提供需要显示网页内容的数据&#xff0c;这些数据大多…

前端和后端分别是什么?

从技术工具来看&#xff1a; 前端&#xff1a;常见的 html5、JavaScript、jQuery... 后端&#xff1a;spring、tomcet、JVM&#xff0c;MySQL... 毕竟&#xff0c;如果这个问题问一个老后端&#xff0c;他掰掰手指可以给你罗列出一堆的名词来&#xff0c;比如设计模式、数据库…

前端 语言

前端语言 名称简介用法网址CSSCSS 是一种描述 HTML 文档样式的语言。CSS 描述应该如何显示 HTML 元素https://www.w3school.com.cn/css/index.aspCSS3CSS3 是最新的 CSS 标准。操作https://www.runoob.com/css3/css3-tutorial.htmlScss/SassScss是CSS的预处理器&#xff0c;一…

前后端语言简析

目录 什么HTML语言? 什么是CSS语言&#xff1f; 什么是Javascript语言&#xff1f; 什么是PHP语言&#xff1f; 什么是Mysql语言&#xff1f; 什么HTML语言? 作用&#xff1a;定义的是【网站显示的内容】。 表现形式&#xff1a;<标签名>内容</标签名> …

聊聊开发中经历的几种后端语言

前言 谈这个话题&#xff0c;没有任何语言之争&#xff0c;只是个人开发的经历。 适合 开发语言的选择只是当时条件下适合每个项目或者每个团队乃至每个公司的最佳选择&#xff0c;并不是说XXX公司也用这个我们用这个肯定没问题。 当时还在某手机公司&#xff0c;有次跟某公…

服务器后端的编程语言

本文为 csdn cedricliang 编纂翻译&#xff0c;如有转载&#xff0c;请于原文篇头出标明译者及原文出处&#xff0c;以示尊重&#xff01; 翻译&#xff1a;cedricliang 原文&#xff1a;http://blog.csdn.net/cedricliang/article/details/48437437 对于那些需要web服务的初创…

这么多语言,究竟哪个适合写后端,Java还是?

温馨提示 请拖动到文章末尾&#xff0c;长按识别「抽奖」小程序。现金红包等你来拿。 【公众号回复“1024”&#xff0c;送你一个特别推送】 9:10约会&#xff0c;真爱&#xff0c;请“星标” 前言 作为开发者我们都知道&#xff0c;开发后台语言可选择的方向会很多&#xff0c…

【编程语言】盘点当前主流的后端语言,随便选哪一种都能月薪过万!

当前主流后端开发语言如下&#xff1a; Java 笔者目前是Java开发工程师。Java一般用来做应用的&#xff0c;它作为热门服务端语言活跃多年了&#xff0c;很多公司都有找Java程序员&#xff0c;市场有很多需求。所以说&#xff0c;选择学习Java&#xff0c;也许不是最好的&…

2021最热门的后端编程语言排行榜出炉!

三足鼎立 截止2020年底&#xff0c;后端编程语言中&#xff0c;java依然是市场的王者&#xff0c;C/C、python和go占据一部分江山&#xff0c;从2021年开始&#xff0c;未来十年&#xff0c;在后端编程语言中&#xff0c;各位觉得哪个编程语言会越来越流行&#xff0c;java会一…