反馈已提交

网络繁忙

JS实现双击对话框标题栏最大化

  • 文档创建者:cherishdqy
  • 历史版本:6
  • 最近更新:Fay 于 2022-10-25
  • 1. 概述

    1.1 预期效果

    报表中添加超链接,点击超链接弹出一个对话框,对话框大小固定,没有最大化功能。

    那如何实现最大化功能呢,如双击对话框标题栏,对话框实现最大化;最大化情况下,双击标题栏返回默认大小。如下图所示:

    对话框最大化.gif

    1.2 实现思路

    使用 JS 获取对话框初始大小,为对话框标题栏添加双击事件,用 clicktype 参数标记对话框是否最大化。

    • 当 clicktype=0 时,获取父页面的大小,重置对话框的大小为父页面大小

    • 当 clicktype=1 时,恢复对话框的大小为初始大小

    注:不支持决策报表。

    2. 示例

    2.1 模板准备

    准备两个模板,主模板和子模板。

    主模板选择 %FR_HOME%\webroot\WEB-INF\reportlets\ 路径下内置模板 GettingStarted.cpt 。

    制作一个子模板 对话框最大化.cpt,存在%FR_HOME%\webroot\WEB-INF\reportlets\ 路径下。

    1)新建模板对话框最大化.cpt,添加数据集ds1,SQL语句为:SELECT * FROM 销量 WHERE 地区='${地区}'  如下图所示:

    image.png

    2)将 「ds1.销售员」和「ds1.销量」字段拖入 A1 、 B1单元格中,B1单元格数据设置为汇总求和。如下图所示:

    2020-11-05_9-28-35.png

    2.2 主模板添加超链接

    打开主模板 GettingStarted.cpt,点击 A4 单元格,添加「超级链接-网络报表」,网络报表选择 对话框最大化.cpt,设置链接打开于「对话框」,添加参数地区,值为公式 $$$ 。如下图所示:

    2020-11-05_9-34-51.png

    2.3 子模板添加 JS 事件

    为子模板添加 JS 事件,实现双击标题栏使窗口最大化。

    打开子模板,点击菜单「模板>模板Web属性>分页预览设置」,选择「为该模板单独设置」,添加「加载结束」事件,如下图所示:

    2020-11-05_9-39-42.png

    JavaScript 代码如下:

    var frwidth = "";
    var frheight = "";
    var frleft = "";
    var frtop = "";
    var clicktype = 0; //标记对话框最大化状态
    var parenthtml = parent;

    setTimeout(function() {
    //获取对话框初始大小
    frwidth = parenthtml.$('.fr-core-window').css('width');
    frheight = parenthtml.$('.fr-core-window').css('height');
    frleft = parenthtml.$('.fr-core-window').css('left');
    frtop = parenthtml.$('.fr-core-window').css('top');

    //对话框标题栏双击事件
    parenthtml.$('.fr-core-panel-header-inner').dblclick(function() {
    //clicktype=0:初始状态,clicktype=1:最大化
    if (clicktype == 0) {
    clicktype = 1;
    parenthtml.$('.fr-core-window').css('left', '0px');
    parenthtml.$('.fr-core-window').css('top', '0px');
    parenthtml.$('.fr-core-window,.fr-core-window-header,.fr-core-panel-header-inner,.fr-core-window-body').css('width', $(parent).width());
    parenthtml.$('.fr-core-window').css('height', $(parenthtml).height());
    parenthtml.$('.fr-core-window-body').css('height', (parseInt($(parenthtml).height()) - 30) + 'px');
    } else {
    clicktype = 0;
    parenthtml.$('.fr-core-window').css('left', frleft);
    parenthtml.$('.fr-core-window').css('top', frtop);
    parenthtml.$('.fr-core-window,.fr-core-window-header,.fr-core-panel-header-inner,.fr-core-window-body').css('width', frwidth);
    parenthtml.$('.fr-core-window').css('height', frheight);
    parenthtml.$('.fr-core-window-body').css('height', (parseInt(frheight) - 30) + 'px');
    }

    });
    }, 100)

    2.4 预览效果

    保存模板,点击「分页预览」,效果如 1.1 节所示。

    注:不支持决策报表和移动端。

    3. 模板下载

    点击下载子模板 对话框最大化.cpt

    点击下载主模板 GettingStarted.cpt

    附件列表


    主题: 二次开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

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

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

    不再提示

    10s后关闭



    AI

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