楼主: iamma

请教ABAP老手, table control和可编辑ALV

[复制链接]
论坛徽章:
14
授权会员
日期:2008-02-26 09:06:11ITPUB元老
日期:2010-10-04 14:18:26
11#
发表于 2012-2-3 15:27 | 只看该作者
iamma 发表于 2012-2-3 15:16
1,是不是这种ALV只能用OO的方式,不能用REUSE_ALV_GRID_DISPLAY?OO的那个container好难看
2,我看了SAP标 ...

就你说描述的需求来看,REUSE_ALV_GRID_DISPLAY完全可以实现.

使用道具 举报

回复
论坛徽章:
10
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44奥运会纪念徽章:体操
日期:2012-06-20 14:52:212012新春纪念徽章
日期:2012-01-04 11:50:44ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28ITPUB季度 技术新星
日期:2011-06-16 10:10:122011新春纪念徽章
日期:2011-02-18 11:43:34ITPUB9周年纪念徽章
日期:2010-10-08 09:31:222010新春纪念徽章
日期:2010-03-01 11:07:23祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:37
12#
 楼主| 发表于 2012-2-3 15:56 | 只看该作者
本帖最后由 iamma 于 2012-2-3 16:09 编辑
sorrowlich 发表于 2012-2-3 15:27
就你说描述的需求来看,REUSE_ALV_GRID_DISPLAY完全可以实现.


我要做一个排班界面,在selection-screen里进去输入人员号和日期后(日期范围是动态的,所以还需要做成动态内表),比如10个人在2012年2月,执行进入展示和编辑界面,首先显示的是10行*29列的界面,每一格是系统默认的员工那天的日排班计划(数据类型ptpsp-tprog,CHAR4),在单元格里F4或者下拉列表可以另选一个来替换掉现有的排班,如果用户从F4 list新选的值和旧值不一样,则popup给用户确认更新,用户确认后,系统就去更新数据库(通过后台的标准function module进行),更新成功则成功,状态栏显示成功,单元格换成新的值,不成功则popup message告知原因,并且单元格还原成旧值。
一个界面可以多次修改,及时刷新。

其他还有一些锦上添花的功能,比如本次更新过的单元格就有不同的底色,更新不成功的也有不同的底色,或者限定一次更新后本格不可以在编辑,还可以在用户用F4选新值前后,加一些自己的类似PAI/PBO的东西。

给个feasibility analysis和quota?

使用道具 举报

回复
论坛徽章:
14
授权会员
日期:2008-02-26 09:06:11ITPUB元老
日期:2010-10-04 14:18:26
13#
发表于 2012-2-3 16:18 | 只看该作者
iamma 发表于 2012-2-3 15:56
我要做一个排班界面,在selection-screen里进去输入人员号和日期后(日期范围是动态的,所以还需要做成动 ...

请参照系统demo程序:BCALV*系列.
alv单元格F4的应用,还可以参考Jack Wu 在CSDN上的博客.

对于你的情况,我个人的意见是,如果abaper对alv熟悉,alv比较方便,因为需要的功能alv都已经集成了.
反之,就table control.

使用道具 举报

回复
论坛徽章:
2
2012新春纪念徽章
日期:2012-01-04 11:57:36茶鸡蛋
日期:2012-02-07 17:07:35
14#
发表于 2012-2-3 16:33 | 只看该作者
还真没研究过ALV的修改功能,落伍了。。。像楼主这种需求,常规都是用table control的,但是开发时间可能要比ALV长

使用道具 举报

回复
论坛徽章:
0
15#
发表于 2012-2-3 16:43 | 只看该作者
兩者均可實現編輯/維護
ALV  user_command  可以知道此行數據
判斷更改有個data_changed 吧

使用道具 举报

回复
论坛徽章:
2
ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:072013年新春福章
日期:2013-02-25 14:51:24
16#
发表于 2012-2-5 08:19 | 只看该作者
iamma 发表于 2012-2-3 15:56
我要做一个排班界面,在selection-screen里进去输入人员号和日期后(日期范围是动态的,所以还需要做成动 ...

日期范围是动态的,这里是指ALV的列标题是动态的还是列数是动态的?

如果标题是动态的,那很容易。

如果列数是动态的,不确定最大会有多少列(不是说固定50列,有数据就显示,没数据就显示空白,而是有数据就有列,没数据就没有列。),table control是不好控制的,我暂时没有见过系统里的哪一个例子的是用table control来实现这种动态列数的。或者有,帮忙举一个例子一个出来,我去想想。不过就算有,我想也不适合来做你这样的需求,你这个需求应该是不值那么多人天的。你什么附加的改色之类的,table control中也用的很少,大部分也是字体变色,单元格背景变色的也不多见,恕我孤陋。

所以,这里用ALV来控制会比较好。
但是不是用REUSE_ALV_GRID_DISPLAY,这个对各种事件的支持不是太友好,SAP仅建议这个用来做显示,虽然他支持编辑事件。而且,暂时没有看到REUSE_ALV_GRID_DISPLA这个可以控制到单元格的编辑,谁知道的话,帮忙把参数贴一个上来?

所以,建议你用OO 的ALV来处理,不会费太多时间。也就是一个F4,一个数据改变完成2个事件,已及对单元格进行编辑控制。可能你在生成动态内表的动态列时,可能需要费些时间,但也是可以实现的。

对了,如果你觉得那个container难看,你可以试一下SALV的OO方法。

使用道具 举报

回复
论坛徽章:
14
授权会员
日期:2008-02-26 09:06:11ITPUB元老
日期:2010-10-04 14:18:26
17#
发表于 2012-2-5 09:40 | 只看该作者
maycolour 发表于 2012-2-5 08:19
日期范围是动态的,这里是指ALV的列标题是动态的还是列数是动态的?

如果标题是动态的,那很容易。

1.不知道“对各种事件支持不太友好”是指哪些事件呢?没遇到过这种情况,请教一下。
2.OO能做到的绝大部分功能,REUSE_ALV_GRID_DISPLAY都可以,包括控制到单元格的内容编辑,颜色变化等等,我做过这种程序,所以敢肯定。jack wu的博客上也有不少现成的例子。现在手头没有系统,没法贴具体的代码。

使用道具 举报

回复
论坛徽章:
27
会员2007贡献徽章
日期:2007-09-26 18:42:102010广州亚运会纪念徽章:体育舞蹈
日期:2011-05-11 09:57:072010广州亚运会纪念徽章:棋类
日期:2011-05-13 16:29:13蜘蛛蛋
日期:2011-06-30 17:53:11紫蛋头
日期:2011-07-12 11:19:41复活蛋
日期:2011-07-21 22:31:43蜘蛛蛋
日期:2011-09-08 09:59:19ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15蛋疼蛋
日期:2011-11-15 22:29:342011新春纪念徽章
日期:2011-04-21 11:29:39
18#
发表于 2012-2-5 10:06 | 只看该作者
这种情况,我从来只有OO ALV,且可用动态内表实现

使用道具 举报

回复
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
19#
发表于 2012-2-5 14:57 | 只看该作者
功能上跟 se16n有些类似, 我不是abaper, 帮不了你

使用道具 举报

回复
论坛徽章:
0
20#
发表于 2012-5-25 14:32 | 只看该作者
maycolour 发表于 2012-2-5 08:19
日期范围是动态的,这里是指ALV的列标题是动态的还是列数是动态的?

如果标题是动态的,那很容易。

请问,table control里的标题如何在代码中修改,我定义了相同名称的变量,赋值后还是不变。

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表