在开发过程中调试报表插件详细教程

背景说明

目前插件开发调试非常麻烦,需要修改代码,编译出class,重新打插件包。然后删除以前的,安装最新的。过程繁杂,而且不能调试,十分不方便。那么我就来教会大家如何可以调试插件。

需要工具:eclipse,finereport报表工具

具体说明

1、 新建工程

新建java工程,在此不赘述

2、 添加依赖,启动设计器

若要能启动设计器需要依赖的jar包很多。具体如下:

A、 jetty相关的jar包

B、 设计器相关的jar包

C、 其他相关的jar包

选中如图所示jar包

3、 添加main函数

主函数代码为:

import com.fr.start.Designer;

public class MainFrame {

publicstatic void main(String[] args) {

newDesigner(args);

}

}

4、 启动设计器

效果如下:

注:会有一些报错,不用关心,这个是缺少某些插件所依赖的包导致的

比如如上图,就是缺少文本框身份证验证插件导致的问题。如果你有强迫症,可以把插件相关的包也全都添加进来。

5、 开发插件

将代码添加进工程,

ActualLocaleFinder.java  的代码为:

package com.fr.plugin.designer;

import com.fr.stable.fun.impl.AbstractLocaleFinder;

public class ActualLocaleFinder extends AbstractLocaleFinder {

@Override
    /**
     * 返回路径
     * @return 同上
     */
    public String find() {
        return "com/fr/plugin/designer/resource/locale/search";
    }
}

SearchTemplateAction.java 的代码为:

package com.fr.plugin.designer;

import com.fr.base.BaseUtils;
import com.fr.design.actions.UpdateAction;
import com.fr.general.Inter;

import javax.swing.*;
import java.awt.event.ActionEvent;

/**
 * Created by Administrator on 2015/7/22 0022.
 */
public class SearchTemplateAction extends UpdateAction{

public SearchTemplateAction(){
        //国际化文件配置在search.properties中
        this.setName(Inter.getLocText("FR-Designer_Template-Tree-Search"));
        this.setSmallIcon(BaseUtils.readIcon("/com/fr/plugin/designer/resource/search.png"));

}

@Override
    public void actionPerformed(ActionEvent e) {
        JOptionPane.showMessageDialog(null, "This is Search Demo");
        //TemplateFileTree继承JTree, 可通过setSelectedTemplatePath选中模板, 可以用遍历JTree的方法来遍历该tree.
        //TemplateFileTree tree = TemplateTreePane.getInstance().getTemplateFileTree();

}
}

如图中代码,设计器效果如下图:

也可以进行debug调试,比如在代码中加断点。

若java debug不会使用,可自行百度。

时间: 2024-10-12 11:17:33

在开发过程中调试报表插件详细教程的相关文章

在Android Studio中调试Gradle插件

个人博客 http://www.milovetingting.cn 在Android Studio中调试Gradle插件 前言 在开发Gradle插件时,经常会需要通过调试来排查问题,如果只使用日志输出来定位的话,效率不高,可以通过单步调试来定位问题.关于调试插件的资料,网上比较多,最终经过实践,参照这一篇文章 https://juejin.im/post/5dc8d947e51d455523170b7f 的方法,实现了插件的调试.在此也记录一下具体步骤.至于Gradle插件的开发,可以参照其它

PHPStorm 配置XDebug 调试PHP代码 详细教程

[PHP配置] 为PHP安装xdebug,方法略. 配置文件php.ini [XDebug] zend_extension = "C:\xampp\php\ext\php_xdebug.dll" ;开启自动跟踪 xdebug.auto_trace = On ;开启异常跟踪 xdebug.show_exception_trace = On ;开启远程调试自动启动 xdebug.remote_autostart = On ;开启远程调试 xdebug.remote_enable = 1 ;

vue中使用axios最详细教程

前提条件:vue-cli 项目 安装: npm npm 在main.js导入: // 引入axios,并加到原型链中 import axios from 'axios'; Vue.prototype.$axios = axios; import QS from 'qs' Vue.prototype.qs = QS; 封装好的axios,拿走不送:(最好是在main.js同级目录创建一个 https.js 文件,复制粘贴下面代码,改 接口地址 就可以用) import axios from 'ax

OPPO Realme C1在哪里打开USB调试模式的详细教程

每次我们使用pc链上安卓手机的时候,如果手机没有开启USB调试模式,pc则没能成功识别我们的手机,因此我们需要找处理方法将手机的USB调试模式开启,以下资料我们介绍OPPO Realme C1如何开启USB调试模式的步骤.接着,在OPPO Realme C1应用程序界面启动<设置>icon,进入OPPO Realme C1系统<设置>界面.然后,点击设置界面上的"系统"一栏,并进入"关于手机"一栏.接下来找到版本号这一行,连续点击版本号这一行

2Unity3D教程宝典之插件篇:Unity3D插件详细评测及教学下载

转载自风宇冲Unity3D教程学院 http://blog.sina.com.cn/s/blog_471132920101crh3.html 引言:想用Unity3D制作优秀的游戏,插件是必不可少的.工欲善其事必先利其器.本文主旨是告诉使用Unity3D引擎的同学们如何根据需求选择适当的工具.为此我写了插件的经验及理论讲解,涉及插件的 学习/辨别/选择/配合.也写了插件的 评测/教程/下载.关于评测,带有一定的主观性,仅供参考.关于教程,热门插件网上已经有很多教程了,本文提供链接,网上资料少的插

PYTHON 学习入门--Eclipse中安装pydev插件及调试

运行程序 运行 Python 源程序,有两种方法,以 example.py 为例: example.py代码: [python] view plaincopyprint? #!/usr/bin/env python # -*- coding:utf-8 -*- # ithomer.net a = 1 def display(): print("hello ithomer") global a print("a = %d" % a) a = 2 print("

VM中安装centos详细教程

VM中安装centos详细教程 图片讲解: 原文地址:https://www.cnblogs.com/kingle-study/p/9269718.html

在SRAM、FLASH中调试代码的配置方法(附详细步骤)

因为STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试.除此之外,SRAM 存储器的写入速度比在内部 FLASH 中要快得多,所以下载程序到SRAM中的速度较快. 所以我们很有必要建立两个版本的工程配置,在SRAM中调试程序完毕后,再把代码下载到FLASH中即可.这篇笔记主要分享在keil5中配置FLASH调试与SRAM调试的详细配置方法及如何切换两种配置. 本篇笔记以STM32F103ZET6为例.其FLASH大

详细解密FineReport中的报表执行过程

在报表开发工具FineReport中,报表的执行过程大体可分为两步:1.报表计算:2.页面转换. 报表计算过程:先读取我们的sql语句,将完整的sql语句传至数据库服务器,由数据库返回数据给报表服务器,报表服务器进行数据列的扩展.汇总.关联.公式运算等计算,最终生成报表结果. 页面转换过程:报表计算完成后生成xml页面,需要转换为html页面才能在浏览器中查看. 针对这一过程FineReport是可以实时监控的.监控方法是将服务器的log输出级别设为“普通信息”,就能在控制台上看到每一步使用的时