1/7用友股份-LE支持服务业务本部技术方案--《查询引擎穿透的应用》建立日期:2013-10-20修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-JS-2013-01062/7文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围发布人姓名所属部门发布时间内部员工伙伴客户日期作者所属部门邮件地址版本2013-10-20冯海涛技术支持部V1.0版本领域模块备注3/7目录查询引擎穿透的应用................................................................................................44/7查询引擎穿透的应用以查询公司穿透到部门为例。首先制作查询A(公司目录)再制作查询B(部门)参数设置:5/7设置穿透规则6/7Stringvalue=getPeneValue("PK_CORP");getHashParam().put("corp",newParamVO(value));StorageDataSetds=ModelUtil.getQueryResult("NewID31",getHashParam(),getEnvInfo().getAccountDsn());setId("NewID31");setDataSet(ds);穿透字段:设置查询A中查询字段,需要设置字段别名。目标查询ID:穿透到的目标查询B,的ID参数名:在目标查询中B的参数编码。用来接收从A穿透过来的参数值。保存后,需要语法验证。这时会在nc代码中生成一段java代码,然后编译为class文件,在执行穿透时后台会调用执行这段程序。需要注意的是在生成的代码中有一段getHashParam(),getEnvInfo().getAccountDsn()会取得当前帐套默认定义的数据源。如果数据源设置错误,在查询时也会报错,查询不出结果集。7/7这样保存后,在查询A时,选择行,然后点穿透,后台会把所选行,穿透字段的值,传递到查询B的参数中,然后执行查询B,这样就在查询B时按照参数值来过滤结果集了。