起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 150|回复: 6

【结贴】多公司跨库取系统表的问题

[复制链接]
发表于 2009-2-26 15:59:55 | 显示全部楼层 |阅读模式
组织机构级别为:总公司-区域-子公司,现在,在同一个数据集里,为了总公司可以看到每个区域下的所有子公司数据,区域只能看到本区域下所有子公司数据,在数据集中用了以下的语句:
SELECT  b.FSPACE FSPACE,b.FID FID
FROM HRYGB
inner join  TORGSYSTEM b on HRYGB.GS=b.FID
where charindex(
(select distinct TORGSYSTEM.FSPACE from  TORGSYSTEM    where TORGSYSTEM.FID=&[Biz:\SYSTEM\ORGPARAMS.PARAMGROUP\OrganID.Param] and left(FSPACE,6)='\ROOT\'),b.FSPACE)>0 and b.FKIND = '.OGN'
在多公司的情况下,平台数据库为A,本系统的数据库为B,本系统数据库不包括平台自带的系统表,在这种情况下,点击报表出现下面的出错提示:
创建业务对象“业务模型\人事管理\人事管理\员工报表查看\员工统计报表\员工统计报表(BIZ:\RSDAGL\YGDAGL\YGBBCK\YGTJBB.FUNC.dir\MAINFORM.Form)”时发生了错误。错误信息:DocView打开文档失败,错误原因:error occur during invoke getRecords method, 对象名 'TORGSYSTEM' 无效。
错误的意思大体是说B里没有系统表TORGSYSTEM,请问这个应该怎么解决?
回复

使用道具 举报

发表于 2009-2-26 16:04:28 | 显示全部楼层
做一个视图。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-26 16:06:05 | 显示全部楼层
你的意思是跨库建视图吗?
回复 支持 反对

使用道具 举报

发表于 2009-2-26 16:14:33 | 显示全部楼层
对。
平台里面是不能跨库查询的,但可以用视图。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-26 16:20:26 | 显示全部楼层
那我想问一下,这种功能用加语义策略的方法可以实现吗?请帮忙提供点思路啊,谢谢!
回复 支持 反对

使用道具 举报

发表于 2009-2-26 16:30:46 | 显示全部楼层
如果公司的id是有规则的编码就很容易处理了。
比如010101    前2位是总公司  ,中间两位是分公司   ,后2位是子公司。
策略里面可以取出登录人的部门编号 比如01
然后策略过滤业务数据的单位字段  HRYGB.GS like('01____')
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-27 08:29:24 | 显示全部楼层
问题已经按你说的跨库建视图的方法解决,下一个项目可能考虑你说的规律公司id的方法,请结贴,谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-27 12:23 , Processed in 0.039847 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表