以对话框的方式超链接到子报表,但是子报表能拖动超出父报表,导致无法关闭子报表,

父报表以对话框的形式超连接到子报表,但是子报表的对话框可以拖动如下图,将子报表的表头甚至数据都能隐藏,这样就无法关闭子报表,下一页等操作,如何设置子报表的位置不能超过父报表

image.png

FineReport 周晴 发布于 2020-5-8 17:01 (编辑于 2020-5-9 14:26)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
周晴Lv2见习互助
发布于2020-5-9 16:08

(function (f) {

        function c(m) {

                var i = f.data(m.data.target, "draggable");

                var h = i.options;

                var g = i.proxy;

                var l = m.data;

                var k = l.startLeft + m.pageX - l.startX;

                var j = l.startTop + m.pageY - l.startY;

                if (g) {

                        if (g.parent()[0] == document.body) {

                                if (h.deltaX != null && h.deltaX != undefined) {

                                        k = m.pageX + h.deltaX

                                } else {

                                        k = m.pageX - m.data.offsetWidth

                                }

                                if (h.deltaY != null && h.deltaY != undefined) {

                                        j = m.pageY + h.deltaY

                                } else {

                                        j = m.pageY - m.data.offsetHeight

                                }

                        } else {

                                if (h.deltaX != null && h.deltaX != undefined) {

                                        k += m.data.offsetWidth + h.deltaX

                                }

                                if (h.deltaY != null && h.deltaY != undefined) {

                                        j += m.data.offsetHeight + h.deltaY

                                }

                        }

                }

                if (m.data.parent != document.body) {

                        k += f(m.data.parent).scrollLeft();

                        j += f(m.data.parent).scrollTop()

                }

                if (h.axis == "h") {

                        l.left = k

                } else {

                        if (h.axis == "v") {

                                l.top = j

                        } else {

                                l.left = k;

                                l.top = j<0?0:j

                        }

                }

        }

        function e(j) {

                var i = f.data(j.data.target, "draggable");

                var h = i.options;

                var g = i.proxy;

                if (!g) {

                        g = f(j.data.target)

                }

                g.css({

                        left : j.data.left,

                        top : j.data.top

                });

                f("body").css("cursor", h.cursor)

        }

        function a(k) {

                f.fn.draggable.isDragging = true;

                var j = f.data(k.data.target, "draggable");

                var i = j.options;

                var g = f(".droppable").filter(function () {

                                return k.data.target != this

                        }).filter(function () {

                                var l = f.data(this, "droppable").options.accept;

                                if (l) {

                                        return f(l).filter(function () {

                                                return this == k.data.target

                                        }).length > 0

                                } else {

                                        return true

                                }

                        });

                j.droppables = g;

                var h = j.proxy;

                if (!h) {

                        if (i.proxy) {

                                if (i.proxy == "clone") {

                                        h = f(k.data.target).clone().insertAfter(k.data.target)

                                } else {

                                        h = i.proxy.call(k.data.target, k.data.target)

                                }

                                j.proxy = h

                        } else {

                                h = f(k.data.target)

                        }

                }

                h.css("position", "absolute");

                c(k);

                e(k);

                i.onStartDrag.call(k.data.target, k);

                return false

        }

        function b(i) {

                var h = f.data(i.data.target, "draggable");

                c(i);

                if (h.options.onDrag.call(i.data.target, i) != false) {

                        e(i)

                }

                var g = i.data.target;

                h.droppables.each(function () {

                        var k = f(this);

                        if (k.droppable("options").disabled) {

                                return

                        }

                        var j = k.offset();

                        if (i.pageX > j.left && i.pageX < j.left + k.outerWidth() && i.pageY > j.top && i.pageY < j.top + k.outerHeight()) {

                                if (!this.entered) {

                                        f(this).trigger("_dragenter", [g]);

                                        this.entered = true

                                }

                                f(this).trigger("_dragover", [g])

                        } else {

                                if (this.entered) {

                                        f(this).trigger("_dragleave", [g]);

                                        this.entered = false

                                }

                        }

                });

                return false

        }

        function d(n) {

                f.fn.draggable.isDragging = false;

                b(n);

                var j = f.data(n.data.target, "draggable");

                var g = j.proxy;

                var i = j.options;

                if (i.revert) {

                        if (k() == true) {

                                f(n.data.target).css({

                                        position : n.data.startPosition,

                                        left : n.data.startLeft,

                                        top : n.data.startTop

                                })

                        } else {

                                if (g) {

                                        var m,

                                        l;

                                        if (g.parent()[0] == document.body) {

                                                m = n.data.startX - n.data.offsetWidth;

                                                l = n.data.startY - n.data.offsetHeight

                                        } else {

                                                m = n.data.startLeft;

                                                l = n.data.startTop

                                        }

                                        g.animate({

                                                left : m,

                                                top : l

                                        }, function () {

                                                h()

                                        })

                                } else {

                                        f(n.data.target).animate({

                                                left : n.data.startLeft,

                                                top : n.data.startTop

                                        }, function () {

                                                f(n.data.target).css("position", n.data.startPosition)

                                        })

                                }

                        }

                } else {

                        f(n.data.target).css({

                                position : "absolute",

                                left : n.data.left,

                                top : n.data.top

                        });

                        k()

                }

                i.onStopDrag.call(n.data.target, n);

                f(document).unbind(".draggable");

                setTimeout(function () {

                        f("body").css("cursor", "")

                }, 100);

                function h() {

                        if (g) {

                                g.remove()

                        }

                        j.proxy = null

                }

                function k() {

                        var o = false;

                        j.droppables.each(function () {

                                var q = f(this);

                                if (q.droppable("options").disabled) {

                                        return

                                }

                                var p = q.offset();

                                if (n.pageX > p.left && n.pageX < p.left + q.outerWidth() && n.pageY > p.top && n.pageY < p.top + q.outerHeight()) {

                                        if (i.revert) {

                                                f(n.data.target).css({

                                                        position : n.data.startPosition,

                                                        left : n.data.startLeft,

                                                        top : n.data.startTop

                                                })

                                        }

                                        f(this).trigger("_drop", [n.data.target]);

                                        h();

                                        o = true;

                                        this.entered = false;

                                        return false

                                }

                        });

                        if (!o && !i.revert) {

                                h()

                        }

                        return o

                }

                return false

        }

        f.fn.draggable = function (g, h) {

                if (typeof g == "string") {

                        return f.fn.draggable.methods[g](this, h)

                }

                return this.each(function () {

                        var j;

                        var l = f.data(this, "draggable");

                        if (l) {

                                l.handle.unbind(".draggable");

                                j = f.extend(l.options, g)

                        } else {

                                j = f.extend({}, f.fn.draggable.defaults, g || {})

                        }

                        var k = j.handle ? (typeof j.handle == "string" ? f(j.handle, this) : j.handle) : f(this);

                        f.data(this, "draggable", {

                                options : j,

                                handle : k

                        });

                        if (j.disabled) {

                                f(this).css("cursor", "");

                                return

                        }

                        k.unbind(".draggable").bind("mousemove.draggable", {

                                target : this

                        }, function (n) {

                                if (f.fn.draggable.isDragging) {

                                        return

                                }

                                var m = f.data(n.data.target, "draggable").options;

                                if (i(n)) {

                                        f(this).css("cursor", m.cursor)

                                } else {

                                        f(this).css("cursor", "")

                                }

                        }).bind("mouseleave.draggable", {

                                target : this

                        }, function (m) {

                                f(this).css("cursor", "")

                        }).bind("mousedown.draggable", {

                                target : this

                        }, function (p) {

                                if (i(p) == false) {

                                        return

                                }

                                f(this).css("cursor", "");

                                var m = f(p.data.target).position();

                                var q = f(p.data.target).offset();

                                var o = {

                                        startPosition : f(p.data.target).css("position"),

                                        startLeft : m.left,

                                        startTop : m.top,

                                        left : m.left,

                                        top : m.top,

                                        startX : p.pageX,

                                        startY : p.pageY,

                                        offsetWidth : (p.pageX - q.left),

                                        offsetHeight : (p.pageY - q.top),

                                        target : p.data.target,

                                        parent : f(p.data.target).parent()[0]

                                };

                                f.extend(p.data, o);

                                var n = f.data(p.data.target, "draggable").options;

                                if (n.onBeforeDrag.call(p.data.target, p) == false) {

                                        return

                                }

                                f(document).bind("mousedown.draggable", p.data, a);

                                f(document).bind("mousemove.draggable", p.data, b);

                                f(document).bind("mouseup.draggable", p.data, d)

                        });

                        function i(u) {

                                var n = f.data(u.data.target, "draggable");

                                var s = n.handle;

                                var q = f(s).offset();

                                var o = f(s).outerWidth();

                                var w = f(s).outerHeight();

                                var x = u.pageY - q.top;

                                var m = q.left + o - u.pageX;

                                var v = q.top + w - u.pageY;

                                var p = u.pageX - q.left;

                                return Math.min(x, m, v, p) > n.options.edge

                        }

                })

        };

        f.fn.draggable.methods = {

                options : function (g) {

                        return f.data(g[0], "draggable").options

                },

                proxy : function (g) {

                        return f.data(g[0], "draggable").proxy

                },

                enable : function (g) {

                        return g.each(function () {

                                f(this).draggable({

                                        disabled : false

                                })

                        })

                },

                disable : function (g) {

                        return g.each(function () {

                                f(this).draggable({

                                        disabled : true

                                })

                        })

                }

        };

        f.fn.draggable.defaults = {

                proxy : null,

                revert : false,

                cursor : "move",

                deltaX : null,

                deltaY : null,

                handle : null,

                disabled : false,

                edge : 0,

                axis : null,

                onBeforeDrag : function (g) {},

                onStartDrag : function (g) {},

                onDrag : function (g) {},

                onStopDrag : function (g) {}

        };

        f.fn.draggable.isDragging = false

})(jQuery);


  • twshe twshe 加载这个代码后,上方是不会超了,但是左右下还是会超哦
    2020-05-10 19:47 
最佳回答
0
飞段Lv6初级互助
发布于2020-5-8 17:14

能说的详细点吗?

  • 周晴 周晴(提问者) 你看那个图片,就是拖动子报表一直向上,就会遮挡住子报表的表头,导致无法将子报表关闭,下一页等操作
    2020-05-08 17:17 
  • 飞段 飞段 回复 周晴(提问者) 有没有试过换一个浏览器
    2020-05-08 17:24 
  • 飞段 飞段 回复 周晴(提问者) 你或者可以设置弹窗小一点
    2020-05-08 17:24 
  • 周晴 周晴(提问者) 回复 飞段 主要是这个对话框可以拖动
    2020-05-08 17:25 
  • 2关注人数
  • 491浏览人数
  • 最后回答于:2020-5-9 16:08
    请选择关闭问题的原因
    确定 取消
    返回顶部