修改动态报表的时候,尝尝需要根据当前设计里指定的数据源,然后打开AOT去查找,相当的不方便。

于是产生写了一个方法,可以根据传过来的数据源名,去AOT找到TABLE或者VIEW, 直接打开,以便修改。

static void sml_openRefTable(ACT_DynamicRpt      dyRpt)
{
TreeNode treeNode; #Define.ViewsPath("\\Data Dictionary\\views\\")
#Define.TablesPath("\\Data Dictionary\\tables\\")
; if( !dyRpt || !dyRpt.RefTableName)
{
throw error(strfmt("%1 cannot open Reference table/view", dyRpt.RefTableName));
} treenode = treenode::findNode(#ViewsPath + "\\" + dyRpt.RefTableName); if( !treenode)
treenode = treenode::findNode(#TablesPath+ "\\" + dyRpt.RefTableName); if( treenode)
treenode.AOTnewWindow(); //相当于在Node上右击打开新窗口展示
}

然后在相应FORM上面加个button,展示。

void clicked()
{
;
super(); ACT_DynamicReportCompiler::sml_openRefTable( ACT_DynamicRpt);
}

发散一下,可以在FORM\sysFormSetup加上相似功能。

实现代码

void fillQueryTreeQueryDatasource(QueryBuildDataSource queryBuildDataSource, int rootId, boolean top = false)
{
//....省略n行代码
//formTreeItem = new FormTreeItem(nodeText,imagelist.image(#ImageDataSource),-1,null);
formTreeItem = new FormTreeItem( nodeText,imagelist.image(#ImageDataSource),-1,
tableid2name(queryBuildDataSource.table()) ); //....省略n行代码
}
void clicked()
{ FormTreeItem formTreeItem;
TableName tablename;
TreeNode treeNode;
#Define.TablePath("\\Data Dictionary\\tables\\")
;
formTreeItem = queryTree.getItem( queryTree.getSelection()); if( formTreeItem.data())
{
tablename = formTreeItem.data(); treeNode = treeNode::findNode( #TablePath + "\\" + tablename); if( treeNode)
treeNode.AOTnewWindow();
} }

  

  

用代码打开FORM里面用到的数据源的更多相关文章

  1. 【原】Oracle EBS 11无法打开Form及Form显示乱码的解决

    问题:Oracle EBS 11无法打开Form及Form显示乱码 解决: 1.尝试使用jre1.5或1.6安装目录下jre/bin/server目录里的jvm.dll替换JInitiator安装目录 ...

  2. Dev中控件的js事件代码放在form标签中存在问题

    Dev中控件的js事件代码放在form标签中会获取不到(head标签中有其他js代码,未验证是否是这个问题)

  3. 用代码打开通知中心(statusbar、通知栏、消息中心)

    我想用代码来打开android的消息中心,也叫做statusbar.通知栏.通知栏其实就是一个常驻的服务,至于原理这里就不多说了,简单说下思路和问题. 思路:API中没有实现的方法,那么就利用反射机制 ...

  4. 解决myeclipse打开.form文件报错

    症状: 打开AutoEKPMainFrm.form文件的时候出现如下问题:

  5. 使用java代码打开特定网页

    第一种方法的代码如下所示: import java.io.File; public class Test04 { public static void main(String[] args) { // ...

  6. 分享一个经验,代码打开mysql链接,执行存储过程时,提示:Table 'mysql.proc' doesn't exist

    先说说的场景 老项目,因为服务器升级了mysql数据库版本,从5.7.13升到8.0.15 然而代码里面有直连数据的访问,通过执行存储过程来查询数据的业务,此时抛出异常   Table 'mysql. ...

  7. 后台返回的HTML整个页面代码打开方法

    后台返回的html代码片段,需要插入html标签中,而返回的整个html文档,则需要重写整个页面. 解决方法: 需要一个中转页面,用document.write()方法重写整个页面: // POST任 ...

  8. 用js代码打开新场口 关于window.open()方法的参数

    应用window.open,可以弹出新窗口, window.open('path', 'windowName', 'windowSetting' ) window.open("./a.htm ...

  9. AX 用代码创建FORM动态加控件,重载动态添加的控件的方法。

    eg. 范例:class\RFIDReadWriteForm/Build方法. formRun.controlMethodOverload(true); formRun.controlMethodOv ...

随机推荐

  1. HTTP协议下保证登录密码不被获取更健壮方式

    说到在http协议下用户登录如何保证密码安全这个问题:    小白可能第一想法就是,用户在登录页面输入密码进行登录时,前台页面对用户输入的密码进行加密,然后把加密后的密码作为http请求参数通过网络发 ...

  2. spark1.4加载mysql数据 创建Dataframe及join操作连接方法问题

    首先我们使用新的API方法连接mysql加载数据 创建DF import org.apache.spark.sql.DataFrame import org.apache.spark.{SparkCo ...

  3. PLSQL_Oracle Logon Trigger的建立

    20150609 Created By BaoXinjian

  4. C#绘制立体三维饼状图

    转载自原文 C#绘制立体三维饼状图(超酷) 内容原文地址:LINK [翻译]Julijan Sribar著3D Pie Chart一个用于绘制立体三维饼状图的C#类库[简介]本文的想法就是创建一个独立 ...

  5. 安装Nginx+uWSGI+Django环境

    Ubuntu Server 12.04 安装Nginx+uWSGI+Django环境 今天要介绍的是利用APT源直接apt-get install安装配置我们所需要的环境,首先按惯例先安装MySQL和 ...

  6. php 消息队列

    本消息队列用于linux下,进程通信 #根据路径和后缀创建一个id $key = ftok(__DIR__, 'R'); #获取队列中的消息 $q = msg_get_queue($key); #删除 ...

  7. 30天轻松掌握JavaWeb_使用beanutils

    导入commons-beanutils-1.8.3.jar及commons-logging-1.1.3.jar 使用commons-beanutils-1.8.3.jar包时需要同时使用commons ...

  8. Windows下cwRsync搭建步骤

    文章(一) CwRsync是基于cygwin平台的rsync软件包,支持windows对windows.windows对Linux.Linux对windows高效文件同步.由于CwRsync已经集成了 ...

  9. js面向过程改写成面向对象--通用方法

    响亮的标题:一个万能的,保底的.面向过程改写成面向对象的方法 前提朗读:很多刚接触js面向对象的时候都不知道如何能快速的写出一个面向对象的程序,这个是必然的现象,不是每一位学js的一上来就会写面向对象 ...

  10. 使用virtualbox安装centos虚拟机,以及VirtualBox无法安装64位Linux CentOS的解决办法

    之前一直用vmware的虚拟机,好吧,其实一直盗版挺不好的,然后想用centos搭点东西,结果在vmare上安装centos总是有些问题,看了人给的建议换用virtualbox,虽然virtualbo ...