修改动态报表的时候,尝尝需要根据当前设计里指定的数据源,然后打开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. DBA_Oracle数据库运维监控(案例)

    2014-07-27 Created By BaoXinjian

  2. javascript中标签与break和continue的配合使用

    var num = 0; outermost: for (var i=0; i<10; i++) { for (var j=0; j<10; j++) { if (j==5 || i==5 ...

  3. Spring中PropertyPlaceholderConfigurer的使用

    Spring中PropertyPlaceholderConfigurer的使用     在使用Spring配置获取properties文件时,在网上查到相关的资料,分享哈!! (1)获取一个配置文件 ...

  4. DedeTag Engine Create File False提示的种种原因及解决方法

    DedeTag Engine Create File False提示的种种原因及解决方法 第一种情况:站点.文件夹权限不足造成无法建立文件 这种情况的出现,一方面可能是Apache设置的读写权限较严格 ...

  5. DimDate

    CREATE TABLE [dbo].[DimDate]( [DateKey] int NOT NULL , [FullDate] DATE NOT NULL , [MonthNumberOfYear ...

  6. Quartz.net一个简要示例

    下面描述了一个Quartz.net最常用的应用场景,按特定秒数触发执行特定任务. 1.任务要继承自:IJob,在Execute方法中填入自己需要执行的任务. public virtual void E ...

  7. sql server Geometry 类型操作 笔记

    sqlGeometry 类型为sql server 2008之后的版本 新加的一种CLR扩展数据类型,为广大sql server开发人员存储几何类型及空间运算提供极大的便利,下面说明geometry类 ...

  8. 收缩sql server2008 数据库

    USE DATABASENAME; GO -- Truncate the log by changing the database recovery model to SIMPLE. ALTER DA ...

  9. Realtek 8168 安装 VMware ESXi 提示没有驱动

    设备描述 Realtek RTL8168/8111 PCI-E Gigabit Ethernet Adapter   第一次安装提示: vmware esxi 5.5 install no netwo ...

  10. poj 3295 Tautology

    点击打开链接 Tautology Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8127   Accepted: 3115 ...