皕杰技术社区

 找回密码
 立即加入

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1267|回复: 3

自定义函数java代码的简单实例

[复制链接]
发表于 2018-9-12 18:01:34 | 显示全部楼层 |阅读模式
1、接口介绍
自定义函数实现类需继承皕杰自定义函数接口bios.report.api.customize.CustomFunction。皕杰报表自定义函数返回为方法。

2、方法说明
getCellSize

语法:protected final int[] getCellSize()

用途:获取当前单元格的尺寸(单位:像素),一般用于创建图片时。

返回:int数组,第一个值为宽度,第二个值为高度

calc

语法:public abstract java.lang.Object calc(java.lang.Object[] params)

用途:用户实现该方法,即可完成自定义函数的计算功能。

参数:params - 参数列表,Object数组,与报表设计时表达式中该函数的参数一一对应

返回:该自定义函数的返回值。如果计算结果为图片,则返回byte数组类型的二进制数据
 楼主| 发表于 2018-9-12 18:02:44 | 显示全部楼层
本帖最后由 bijetsupport02 于 2018-9-12 18:05 编辑
  1. package bios.report.dev.examples.function;
  2. import java.util.*;
  3. import java.util.regex.*;
  4. import bios.report.api.customize.CustomFunction;
  5. public class TextNumber extends CustomFunction {
  6.         @Override
  7.         public Object calc(Object[] args) {
  8.                 String str=(String) args[0];
  9.                 //String s = "字符串123456哈哈441";
  10.                 Pattern p = Pattern.compile("[\\u4e00-\\u9fa5]+|\\d+");
  11.                 Matcher m = p.matcher( str );
  12.                 List<String> tempList = new ArrayList<String>();
  13.                 while(m.find()){
  14.                             tempList.add(m.group());  
  15.                 }
  16.                 String str1=tempList.toString();
  17.                 str1=str1.substring(0,str1.length() - 1);
  18.                 str1=str1.substring(1,str1.length());
  19.                 return str1;
  20.         }
  21. }
复制代码

回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-12 18:06:59 | 显示全部楼层
上层代码是写文字数字拆分的一个自定义函数实例。
输入参数"字符串123456哈哈441",返回结果是"字符串,123456,哈哈,441"
回复 支持 反对

使用道具 举报

发表于 2018-9-29 17:10:04 | 显示全部楼层
多谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ|小黑屋|手机版|皕杰软件 ( 京ICP备14050931号 )

GMT+8, 2024-11-1 07:48 , Processed in 1.100437 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表