反馈已提交

网络繁忙

定时调度程序模板

  • 文档创建者:柿子树
  • 历史版本:6
  • 最近更新:柿子树 于 2022-12-13
  • 1. 概述

    1.1 版本

    报表服务器版本插件版本
    11.0.5V1.0.1

    1.2 应用场景

    数据决策管理系统中的定时调度,在“调度对象”设置的步骤,可以选择程序报表执行。

    说明1.png

    2. 插件介绍

    2.1 插件安装

    点击下载插件:下载

    设计器插件安装方法请参见:设计器插件管理

    服务器安装插件方法请参见:服务器插件管理

    2.2 操作方法

    1. 程序模板:安装定时调度程序模板插件后,打开数据决策管理系统,进入“管理系统->定时调度”页面,添加任务后,可以看到在“调度对象”界面,出现了“程序模板”选择界面,如下图所示:

    说明2.png

    原“模板选择”位置出现“选择程序”下拉框,可以选择一个放置在WEB-INF/classes中的自定义java类程序模板,以便在任务中执行。

    其中,java类继承自com.fr.form.main.Form、com.fr.web.core.Reportlet、com.fr.main.impl.WorkBook三个系统类(请参考程序报表java API

    其他配置和“报表模板”配置相同。文件名称默认使用java类的全名。

    2、多选程序模板:安装定时调度程序模板插件后,打开数据决策管理系统,进入“管理系统->定时调度”页面,添加任务后,可以看到在“调度对象”界面,出现了“多选程序模板”选择界面,如下图所示:

    此时,可以选择多个程序报表模板和多个普通模板,以便在任务中执行。其他配置和“多选报表模板”配置相同。程序报表模板文件名称默认使用java类的全名。

    3. 示例

    3.1 设计报表

    1. 继承com.fr.web.core.Reportlet:

      public class MyReportlet extends Reportlet {
      @Override
      public TemplateWorkBook createReport(ReportletRequest req) {
      WorkBook workbook = new WorkBook();
      ReportWebAttr web = new ReportWebAttr();
      web.setTitle(getClass().getSimpleName());
      workbook.setReportWebAttr(web);
      WorkSheet sheet = new WorkSheet();

      //p1为模板参数,可在调用时传递
      DefaultTemplateCellElement cell = new DefaultTemplateCellElement(0, 0, "Hello World, " + req.getParameter("p1"));
      sheet.addCellElement(cell);

      Formula f = new Formula("now()");
      // 设置导出编辑结果时是否保留公式
      f.setReserveInResult(false);
      // 设置填报时计算后是否保留公式
      f.setReserveOnWriteOrAnaly(true);
      cell = new DefaultTemplateCellElement(1, 1, f);
      sheet.addCellElement(cell);

      workbook.addReport(sheet);
      return workbook;
      }
      }
    2. 继承com.fr.main.impl.WorkBook:

      public class MyTemplateWorkBook extends WorkBook {
      public MyTemplateWorkBook() {
      super();

      ReportWebAttr web = new ReportWebAttr();
      web.setTitle(getClass().getSimpleName());
      setReportWebAttr(web);
      WorkSheet sheet = new WorkSheet();

      DefaultTemplateCellElement cell = new DefaultTemplateCellElement(0, 0, "Hello World, ");
      sheet.addCellElement(cell);

      Formula f = new Formula("now()");
      // 设置导出编辑结果时是否保留公式
      f.setReserveInResult(false);
      // 设置填报时计算后是否保留公式
      f.setReserveOnWriteOrAnaly(true);
      cell = new DefaultTemplateCellElement(1, 1, f);
      sheet.addCellElement(cell);

      addReport("sheet", sheet);
      }
      }
    3. 继承com.fr.form.main.Form

      public class MyForm extends Form {
      public MyForm() {
      super();

      WBorderLayout layout = new WBorderLayout();
      layout.setWidgetName("form");

      WFitLayout body = new WFitLayout();
      layout.addCenter(body);
      body.setWidgetName("body");
      body.setLayoutType(WBodyLayoutType.FIT);

      /*
       * 图表
       */
      ChartEditor chartEditor = new ChartEditor();
      chartEditor.setWidgetName("chart0");
      chartEditor.getBorderStyle().setBackground(ColorBackground.getInstance(Color.white));
      PiePlot4VanChart plot = new PiePlot4VanChart();
      plot.setRoseType(ChartRoseType.PIE_DIFFERENT_ARC);
      OneValueCDDefinition data = new OneValueCDDefinition();
      data.setTableData(new NameTableData("ds1"));
      data.setCategoryName("无");
      data.setSeriesColumnName("产品类型");
      data.setValueColumnName("销量");
      data.setDataFunction(new SumFunction());
      VanChart chart = new VanChart(plot);
      chart.setFilterDefinition(data);
      chart.getTitle().setTitleVisible(false);
      chartEditor.resetChangeChartCollection(new ChartCollection(chart));
      WTitleLayout chartLayout = new WTitleLayout();
      chartLayout.setWidgetName("chart0");
      chartLayout.addBody(chartEditor, new Rectangle(0, 0, 400, 180));
      com.fr.form.ui.Label titleLabel = new com.fr.form.ui.Label();
      titleLabel.setWidgetName("Title_chart0");
      titleLabel.setWidgetValue(new WidgetValue(""));
      chartLayout.addTitle(titleLabel, new Rectangle(0, 20, 400, 20));
      BorderPacker borderStyle = chartEditor.getBorderStyle();
      borderStyle.setType(LayoutBorderStyle.TITLE);
      TitlePacker t = borderStyle.getTitle();
      t.setTextObject("测试图表");
      t.setPosition(Constants.CENTER);

      body.addWidget(new WAbsoluteLayout.BoundsWidget(chartLayout, new Rectangle(0, 0, 400, 200)));

      setContainer(layout);

      // 模板数据集
      DBTableData db = new DBTableData(new NameDatabaseConnection("FRDemo"), "select * from 销量");
      putTableData("ds1", db);
      }
      }

    3.2 效果预览

    结果见下图:

    4. 模板下载

    custom.zip


    5. 注意事项

    java类更新后需重启管理系统


    附件列表


    主题: 数据决策系统
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持