统计图钻取的明细报表在非模态窗口中显示

润乾报表的统计图可以在图例 / 图形上设置超链接,从而实现钻取到明细报表的操作,钻取得到的报表可以在新窗口或者当前窗口中打开。关于如何在统计图的图形 / 图例上设置超链接,在用户手册中有常用示例的介绍。
今天小编要给大家介绍的是如何在非模态窗口中打开图形超链接钻取得到的报表。
首先创建一张带有统计图的报表,报表文件名为 planWorkView2.rpx。
增加数据集 ds1, 下面是 ds1 的数据:


在 A2 单元格中增加一个柱形图,统计图的分类和系列值数据分别来源于数据集 ds1 的 ORG_NAME 和 PLAN_CON。

在显示外观的选项卡中,设置图形超链接的表达式:=“javascript:showModal(’showReport.jsp?rpx=/planItemsInfo.rpx&reportType=2&arg3=”+ @orgId + “’, 800, 350)”,在超链接目标窗口中设置 =“_self”。

一张明细报表 planItemsInfo.rpx,明细报表中定义参数,可接收数据报表传递过来的参数。

在报表展现的页面 showReport.jsp 中增加 js 方法,调用非模态窗口来展现报表。

下面通过 showReport.jsp 访问 planWorkView2.rpx, 点击图形,看下在非模态窗口展现的效果吧!

由于使用的是非模态窗口展现明细报表,因此不会在关闭前强制焦点一直停留这个窗口上,而是可以进行任意切换,不会影响用户的其他操作。如果换成模态弹窗的话,则需要用户进行功能操作后,关闭窗口,才可进行其他操作。

原文地址:https://www.cnblogs.com/xiaohuihui-11/p/12041810.html

时间: 2024-11-06 00:56:43

统计图钻取的明细报表在非模态窗口中显示的相关文章

模态窗口和非模态窗口

对话框一般分为两种类型:模态类型(modal)与非模态类型(modeless).所谓模态对话框,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框.非模态对话框则不会强制此种特性,用户可以在当前对话框以及其他窗口间进行切换.本文介绍如何使用JavaScript语言来创建这两种类型的对话框.控制其大小和位置.改变其外观以及在对话框间的数据传递.(引用) 一.创建模态和非模态对话框 创建模态对话框:(会缓存最近一次页面的值,通过一些设置可绕过系统的判断) vReturn

MFC 模态、非模态窗口引发的系列事件及函数

标题一:创建模态窗口 CAdditionDlg dlg; // 定义对话框类CAdditionDlg的对象dlg INT_PTR nResponse = dlg.DoModal();//获取子窗口的结束方式 switch(nResponse) { case IDOK: case IDCANCEL: case IDDESTROY: } 标题二:创建非模态子窗口(完美解决非模态窗口单例问题) 步骤一:创建子窗口指针类型的公有成员 public: CMyTip* m_mytip; 步骤二:父类通过按钮

模态对话框与非模态窗口

模态对话框就是在没有关闭它之前,不能再与同一个应用程序的其他窗口进行交互,比如新建项目时弹出的对话框. #include "dialog.h" #include "ui_dialog.h" Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); QDialog dialog; dialog.setWindowTitle("模态

C#.NET中使用BackgroundWorker在模态对话框中显示进度条

这里是一个示例,其中展示了如何使用Backgroundworker对象在模态对话框中显示后台操作的实时进度条. 首先是主窗体代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;

Android在非UI线程中显示Toast

[java] view plaincopyprint? public void showToast(String msg){ Looper.prepare(); Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); Looper.loop(); } public void showToast(String msg){ Looper.prepare(); Toast.makeText(getApplicat

非模态窗口的创建方法

粘贴一些关键代码(IN  FILE_MYBOLE): CMyboleView窗口类中 void CMyboleView::OnMenuDialog() { // TODO: 在此添加命令处理程序代码 //非模态对话框的使用,要更改 OnOK 这个虚函数 if(m_pDlg) { m_pDlg->SetActiveWindow(); } else { m_pDlg = new CTestDlg(this); m_pDlg->Create(IDD_ONE_DLG, this); m_pDlg-&g

MFC非模态窗口gdi+自绘图片

新建 Dialog based MFC项目DrawImage 在资源中新添加一个Dialog,IDD_PICBOXDLG 在此dialog上添加Pictre Contrl shift+ctrl+x 添加对应的类:CPicBoxDlg DrawImage.cpp中加入: CPicBoxDlg* g_Dlg=NULL; DrawImageDlg.cpp中: extern CPicBoxDlg* g_Dlg; 在资源面板找到DrawImage窗口添加按钮,双击添加事件 void CDrawImgDlg

js - get-the-value-from-the-url-parameter(可以在非模态对话框中使用)

ref: http://stackoverflow.com/questions/979975/how-to-get-the-value-from-the-url-parameter 函数: function getQueryParams(qs) { qs = qs.split("+").join(" "); var params = {}, tokens, re = /[?&]?([^=]+)=([^&]*)/g; while (tokens = r

MFC非模态添加进程控件方法一(线程方法)

由于非模态对话框的自己没有消息循环,创建后无法进行消息处理.需要和父窗口共用消息循环.如果单独在子窗口进行控件由于自己没有单独的消息循环,更新是无法进行的. 如果在父窗口更新控件会造成程序假死.如以下代码在主窗口更新子窗口消息,界面进入假死状态.因为主界面对主进程进行了sleep(100),如下代码所示 void CModelessDlg::OnBnClickedOk() { DLGModeLess *pDlg = new DLGModeLess(); pDlg->Create(IDD_DG_M