在表单虚拟字段渲染一个报表,并且可以根据条件筛选报表数据

介绍

在表单虚拟字段渲染一个报表,并且可以根据表单上某个字段值改变并筛选报表数据

详情

1.根据已有数据源创建一个普通报表,并配置好查询参数

2.在表单中加虚拟字段,并且写事件将报表渲染出来

const {
    $func,   // 功能对象
    $form,   // 功能表单对象
    $display,// 展示字段对象
    field,   // 字段详细配置
    model,   // 表单数据
    value,   // 当前值
} = EventOptions;
return(container, options) => {
     // 异步事件,需要返回,用于加载完组件后,刷新panel布局
    const admin = JE.useAdmin();
    return admin?.emitMicroEvent(
        'JE_PLUGIN_REPORT_MODULE',
        'report-renderer',
        container,{
            code:'DCBB',// 报表code
            //querys:{TEST_QJLX_CODE:model.TEST_QJLX_CODE}
        }
    ).then((report)=>{
        $form.$report = report;
    });
};

3.表单字段值改变中编写事件,值改变就刷新报表,当前案例使用的是请假类型字段

const {
    $func, // 功能对象
    field, // 字段详细配置
    model, // 表单数据
    type,  // 类型:column(列表字段)|form(表单字段)
    $form, // 功能表单对象(表单编辑起效)
    $grid, // 功能列表对象(列表编辑起效)
    value, // 当前值
    valueOptions, // 当前值对应的选项数据
} = EventOptions;

//值改变事件加载报表,条件是请假类型
$form.$report?.value.load({TEST_QJLX_CODE:value});

4.表单激活事件中,有值的情况下进表单刷新报表

/**
 * 功能每次进入到表单界面后,全会触发本事件
 */
const {
    $func, // 功能对象
    $form, // 功能表单对象
} = EventOptions;
//获取请假类型
const TEST_QJLX_CODE = $form.getValues('TEST_QJLX_CODE');
//传参并刷新报表  如果没有加载的情况下 可以加延时
$form.$report?.value.load({TEST_QJLX_CODE:TEST_QJLX_CODE});
最后编辑: 呼丽华  文档更新时间: 2025-01-15 16:00   作者:呼丽华