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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3505|回复: 22

[OAF] OAF中 多行能否实现合并

  [复制链接]
发表于 2010/9/27 08:55:51 | 显示全部楼层 |阅读模式

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

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

x

OAF中能否像EXCEL中多行合并的功能
发表于 2010/9/27 09:06:33 | 显示全部楼层
可以实现如图所示的功能,类似excel,但不是完全一样
Untitled-1 copy.jpg
 楼主| 发表于 2010/9/27 09:25:54 | 显示全部楼层
这个是用高级表实现的吗?
发表于 2010/9/27 09:41:24 | 显示全部楼层
页面上用到的table,应该都使用advancedTable的。

至于上述的功能,是使用SQL来实现的。
 楼主| 发表于 2010/9/27 09:53:04 | 显示全部楼层
能给我一段简单的SQL例子吗,对插入没有影响的吧
发表于 2010/9/27 10:01:59 | 显示全部楼层
你写一段简单的SQL吧,

我按照你的思路来改写,你比较容易理解。
 楼主| 发表于 2010/9/27 10:12:34 | 显示全部楼层
select a.line_id
      ,a.header_id
      ,a.vendor_id
      ,tpav.vendor_name
      ,a.inventory_item_id
      ,msiv.segment1 materialnum
      ,msiv.description      
      ,a.material_name
      ,a.material_origin
      ,a.material_mark
  from tg_purchase_acc_sj_line a
      ,tg_purchase_acc_vendors tpav
      ,mtl_system_items_vl     msiv
where a.vendor_id = tpav.vendor_id
   and msiv.inventory_item_id = a.inventory_item_id
发表于 2010/9/27 10:28:52 | 显示全部楼层
SELECT DECODE(t.rank_number, 1, t.vendor_name, '') vendor_name,
       DECODE(t.rank_number, 1, t.segment1, '') material_num,
       DECODE(t.rank_number, 1, t.description, '') description,
       t.line_id,
       t.header_id,
       t.vendor_id,
       t.material_name,
       t.material_origin,
       t.material_mark
  FROM (SELECT a.line_id,
               a.header_id,
               a.vendor_id,
               tpav.vendor_name,
               a.inventory_item_id,
               msiv.segment1,
               msiv.description,
               a.material_name,
               a.material_origin,
               a.material_mark,
               RANK() OVER(PARTITION BY tpav.vendor_name, msiv.segment1, msiv.description
                           ORDER BY tpav.vendor_name, msiv.segment1, msiv.description) rank_number
          FROM tg_purchase_acc_sj_line a,
               tg_purchase_acc_vendors tpav,
               mtl_system_items_vl     msiv
         WHERE a.vendor_id = tpav.vendor_id
           AND msiv.inventory_item_id = a.inventory_item_id) t
 楼主| 发表于 2010/9/28 08:46:20 | 显示全部楼层
回复 sumury 的帖子

执行了这段代码,还是不能合并,是不是有需要其他的设置
发表于 2010/9/28 09:13:48 | 显示全部楼层
本帖最后由 sumury 于 2010/9/28 09:17 编辑

在SQL的SELECT中追加t.rank_number

然后把SQL的结果,贴出来看看。

并且,把你这张表,所要表示的业务逻辑简单的描述一下。
 楼主| 发表于 2010/9/28 10:51:46 | 显示全部楼层
回复 sumury 的帖子



查询结果.JPG
这就是在Sqplus中执行的结果

对应的是一个供应商的一种物料,这种物料是有多种原材料组成的

存放在明细表中
发表于 2010/9/28 11:01:41 | 显示全部楼层
本帖最后由 sumury 于 2010/9/28 11:10 编辑

我要看t.rank_number的值,

请把t.rank_number放在select的第一个位置。

另外,把SQL的相应位置的语句,替换如下

RANK() OVER(PARTITION BY a.vendor_id, msiv.segment1
                           ORDER BY msiv.description) rank_number
 楼主| 发表于 2010/9/28 11:40:33 | 显示全部楼层
发表于 2010/9/28 12:08:48 | 显示全部楼层
能不能把SQL的内容截屏截全了,

数据都看不完整,怎么做?
 楼主| 发表于 2010/9/28 12:23:06 | 显示全部楼层
 楼主| 发表于 2010/9/28 12:24:31 | 显示全部楼层
图片有点模糊,需要把它们分开吗
发表于 2010/9/28 12:33:48 | 显示全部楼层
另外,把SQL的相应位置的语句,替换如下

RANK() OVER(PARTITION BY a.vendor_id, msiv.segment1
                           ORDER BY msiv.description) rank_number
 楼主| 发表于 2010/9/28 12:42:42 | 显示全部楼层
回复 sumury 的帖子

SELECT  t.rank_number,
       DECODE(t.rank_number, 1, t.vendor_name, '') vendor_name,
       DECODE(t.rank_number, 1, t.segment1, '') material_num,
       DECODE(t.rank_number, 1, t.description, '') description,
       t.line_id,
       t.header_id,
       t.vendor_id,
       t.material_name,
       t.material_origin,
       t.material_mark
  FROM (SELECT a.line_id,
               a.header_id,
               a.vendor_id,
               tpav.vendor_name,
               a.inventory_item_id,
               msiv.segment1,
               msiv.description,
               a.material_name,
               a.material_origin,
               a.material_mark,
               RANK() OVER(PARTITION BY a.vendor_id, msiv.segment1
                           ORDER BY msiv.description) rank_number
          FROM tg_purchase_acc_sj_line a,
               tg_purchase_acc_vendors tpav,
               mtl_system_items_vl     msiv
         WHERE a.vendor_id = tpav.vendor_id
           AND msiv.inventory_item_id = a.inventory_item_id
           and  msiv.organization_id = 103 ) t

是改成这样吧?
发表于 2010/9/28 12:50:48 | 显示全部楼层
对的,把运行结果截图出来看看。

SELECT中加上rank_number
 楼主| 发表于 2010/9/28 12:57:52 | 显示全部楼层
回复 sumury 的帖子

执行结果如图
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025/11/29 22:37 , Processed in 0.032726 second(s), 15 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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