壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2631|回复: 16

如何在Report里显示某个键弹性域的说明??(顺便附送预算入门资料一份)

[复制链接]
发表于 2008/8/20 22:24:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
客户需要在报表里某一栏显示 帐户的科目说明, 我不想一个个通过值集去找,
结果我做了个,,结果只出来第一段

我的做法如下
在Before Report里
function BeforeReport return boolean is
          l_set_of_book_id         number ;
          l_coaid                                         number ;
begin
  srw.user_exit('FND SRWINIT');
        l_set_of_book_id:=fnd_profile.VALUE('GL_SET_OF_BKS_ID');
         
          SELECT sob.chart_of_accounts_id
                        INTO l_coaid
                        FROM gl_sets_of_books         sob
                 WHERE sob.set_of_books_id = l_set_of_book_id ;
                 
                 :STRUCT_NUM := l_coaid;
                 srw.reference(:STRUCT_NUM);

  return (TRUE);
end;



然后定义个 Formula Column

function CF_ACCOUNT_DESCFormula return Char
is
  v_result varchar2(500);
begin
  srw.reference(:STRUCT_NUM);
  
        srw.reference(:CF_ACCOUNT_SEG);
        srw.user_exit('FND FLEXIDVAL CODE="GL#"
                        NUM=":STRUCT_NUM"
                       APPL_SHORT_NAME="SQLGL"
                       DATA=":CF_ACCOUNT_SEG"   --这个是科目段组合如 1212.0.0.1212.0
                       DESCRIPTION=":CF_ACCOUNT_DESC"  --这个是我要显示科目说明的Field
                       DISPLAY="ALL"
                       IDISPLAY="ALL"
                       SHOWDEPSEG="Y"
                       ');
                       
        RETURN(:CF_ACCOUNT_DESC);
end;

但是只显示第一段,,,,我的相关的Column 长度都是2000,足够的
啥原因啊



为了更容易让用户找到这个资料,已经转移了一份到:
http://bbs.erp100.com/forum-413-1.html


预算管理.rar (3.62 MB, 下载次数: 143)

评分

参与人数 1努力值 +5 收起 理由
纵横四海 + 5 为了更好的对资料进行分类,建议预算部分, ...

查看全部评分

发表于 2008/8/21 10:59:48 | 显示全部楼层
这个价钱比较值,内容不错,不过不知道离了oracle,是否有其他现成的预算系统
 楼主| 发表于 2008/8/21 19:07:48 | 显示全部楼层
不要光下载啊,帮我解决问题啊
发表于 2008/8/25 15:59:59 | 显示全部楼层
用userexit出口做的啊~~~这个我也不太会调
帮你看看。
你现在搞定了吗?如果搞定了我就不看了
发表于 2008/8/25 16:03:39 | 显示全部楼层
你在你的sql里添加词义变量了么?
如下:

在编写的SQL语句中添加词义变量(通过Placeholder实现);调用FND FLEXSQL用户出口函数来创建查询,并指定参数设定。
这样一来,报表在运行SQL查询运行之前根据用户出口函数的参数指定将词义变量替换为具体的数据库列,如编写了如下的查询语句:
SELECT &LEXICAL1 alias, column
FROM table
WHERE &LEXICAL2
如调用FND FLEXSQL用户出口函数的时候指定了弹性域有两个段组成,SEGMENT1的值小于2,即&LEXICAL1被替换为 "SEGMENT1||’\n’||SEGMENT2",&LEXICAL2被替换为 "SEGMENT1 < 2" 。这样实际的SQL查询语句则为:
SELECT SEGMENT1||’\n’||SEGMENT2 alias, column
FROM table
WHERE SEGMENT1 < 2
发表于 2008/8/25 16:04:07 | 显示全部楼层
有没有添加一个用户参数 P_CONC_REQUEST_ID(Number),这个参数是在用户出口函数初始化的时候需要使用。
 楼主| 发表于 2008/8/25 21:15:10 | 显示全部楼层
to chance :
我有P_CONC_REQUEST_ID

我的报表里 :CF_ACCOUNT_SEG 如果显示的话, 一定是对的, 只是是用Formula算出来的,没有在SQL列出来
难道这也有关系?
发表于 2008/8/26 14:13:40 | 显示全部楼层
好像是在报表触发器BeforeReport中调用用户出口函数 FND FLEXSQL来初始化SQL

要在sql中建立相应的词义变量的
发表于 2008/8/26 14:29:07 | 显示全部楼层
在before report里有这段程序,用来初始化sql.
srw.reference(:STRUCT_NUM);
srw.user_exit('FND FLEXSQL CODE="GL#" NUM=":STRUCT_NUM"
        APPL_SHORT_NAME="SQLGL"
        OUTPUT=":CONCATENATED_SEGS" TABLEALIAS="C"
        MODE="SELECT" DISPLAY="ALL"');

":CONCATENATED_SEGS" 这个是显示segments的占位符,跟
SELECT &concatenated_segs flex_data
  FROM gl_code_combinations c,
       gl_sets_of_books     sob
WHERE c.chart_of_accounts_id = sob.chart_of_accounts_id
   AND sob.set_of_books_id = 30
   AND c.segment2='1160'
的&concatenated_segs相同
发表于 2008/8/28 11:50:01 | 显示全部楼层
我寫過類似功能的 Function ,你看看是否用得上

   ------------------------------------------------------------------
   -- 傳回 彈性欄位
   ------------------------------------------------------------------
   function fs_get_flex_value_desc(
      ps_value_set_name  in   varchar2 ,
      ps_flex_value      in   varchar2 )
   return  varchar2
   is
      ls_flex_value_description   varchar2(200);
   begin
      select fva.description
        into ls_flex_value_description
        from fnd_flex_vset_v fvs,
             fnd_flex_values_vl fva
       where fvs.parent_value_set_name = ps_value_set_name
         and fvs.flex_value_set_id = fva.flex_value_set_id
         and fva.flex_value = ps_flex_value;
      return ls_flex_value_description;
   exception
      when others then
           ls_flex_value_description := '';
           return ls_flex_value_description;
   end fs_get_flex_value_desc;
发表于 2008/9/11 13:41:44 | 显示全部楼层

还不错

不错  谢谢
发表于 2009/2/18 16:19:26 | 显示全部楼层
好好看看
发表于 2009/2/20 09:37:37 | 显示全部楼层
刚开始琢磨预算,多谢资料了!
发表于 2009/7/1 14:54:23 | 显示全部楼层
我解决不了问题只能说谢谢了。
发表于 2010/7/26 13:51:37 | 显示全部楼层
多谢分享,支持
发表于 2010/7/26 17:37:54 | 显示全部楼层
學習一下,這些比較少用。
发表于 2010/9/1 14:46:18 | 显示全部楼层
急需预算资料
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 10:35 , Processed in 0.028004 second(s), 18 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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