关于ALV双击 调用事务的一个例子

转载 2014年06月06日 15:41:29

源地址:http://www.itpub.net/thread-1483525-1-9.html

 

有经验的ABAPER都知道下面一个标准程序:
我以前开发一个财务报表,用ALV的形式表现。其中每个行项目的“公司代码、年度、凭证号”是唯一的,这样可以实现点击行项目查看凭证。我使用了这个:
  CASE rf_ucomm.
    WHEN '&IC1'.
      READ TABLE IT_OUTPUT INDEX rs_selfield-tabindex ASSIGNING <FS_OUTPUT>.
      IF SY-SUBRC = 0.
        SET PARAMETER ID: 'BLN' FIELD <FS_OUTPUT>-BELNR.
        SET PARAMETER ID: 'BUK' FIELD <FS_OUTPUT>-BUKRS.
        SET PARAMETER ID: 'GJR' FIELD <FS_OUTPUT>-GJAHR.
        CALL TRANSACTION 'zfxx03' AND SKIP FIRST SCREEN .
      ENDIF.
  ENDCASE.
                    "USER_CALLBACK
以上是调用了事务zfxx03。对参数的传递都是单值,现在我想传递一批参数,也就是bukrs(公司代码)的选项是多选的,是这样定义的,见下:
“SELECT-OPTIONS s_bukrs FOR t001-bukrs OBLIGATORY”
我将公司代码选项的内表传递到zfirxxxx,这样使用ID就无效了(GET PARAMETER ID 'BUK' field P_BUKRS 无效),我怎么传递为好呢,使用什么语句呢?尤其是一个变量下有多个参数的。

 

 

我已经找到一种方法了,但还没有具体应用呢,现在发布出来让朋友们借鉴一下。(以下内容即为方法,已发布在我们公司内部论坛上了)


要开发综合查询程序,一定会多次调用ALV报表,报表之间的参数传递就显得异常重要。
目前公司自行开发的多次(层)调用报表(事务)的程序不多。调用的层次越多,使用的逻辑越复杂,参数值传递就越繁琐。这样的程序即使开发出来也需要长时间的测试才能保证数据的准确,往往忽略了一个微小的逻辑环节就导致整张报表数据的表现错误。
在准备开发公司的综合报表之前,列举2个非常重要的例子,它就是程序间的调用内表并通过设置ID传输。

    举例1.(标准)

    主程序:

REPORT ZTEST_LHA07.

DATA : BEGIN OF W_DATA,

FID1 TYPE STRING,

NUM1 TYPE I ,

NUM2 TYPE I ,

END OF W_DATA.

DATA : T_OUT LIKE W_DATA OCCURS 0 WITH HEADER LINE .

DO 10 TIMES .

IF SY-INDEX < 4 .

T_OUT-FID1 = 'A' .

T_OUT-NUM1 = SY-INDEX .

T_OUT-NUM2 = SY-INDEX + 1 .

ELSEIF SY-INDEX < 7 .

T_OUT-FID1 = 'B' .

T_OUT-NUM1 = SY-INDEX + 1 .

T_OUT-NUM2 = SY-INDEX + 2 .

ELSE .

T_OUT-FID1 = 'C' .

T_OUT-NUM1 = SY-INDEX .

T_OUT-NUM2 = SY-INDEX - 1 .

ENDIF .

APPEND T_OUT.

ENDDO .

EXPORT T_OUT TO MEMORY ID 'T_OUT' .

SUBMIT ZTEST_LHA08 AND RETURN .

    被调用的程序:

REPORT ZTEST_LHA08.

data : begin of w_data, "这里定义一个跟调用程序一样的内表结构

fid1 type  string,

num1 type i ,

num2 type i ,

end of w_data.

data : t_out like w_data occurs 0 with header line .

import t_out from memory id 'T_OUT' .

FREE MEMORY ID 'T_OUT' .

WRITE : '从调用程序取到的数据如下:' .

LOOP AT T_OUT.

write : / ' ' ,t_out-fid1, t_out-num1, t_out-num2.

ENDLOOP .

    举例2.(结合我公司实际)

    主程序:

REPORT ZTEST_LHA07.

tables: t001.

SELECT-OPTIONS s_bukrs FOR t001-bukrs memory ID T_OUT . "公司代码

EXPORT s_bukrs TO MEMORY ID 'T_OUT' .

SUBMIT ZTEST_LHA08 AND RETURN .

    被调用的程序:

REPORT ZTEST_LHA08.

tables: t001.

SELECT-OPTIONS s_bukrs FOR t001-bukrs . "公司代码

import s_bukrs from memory id 'T_OUT' .

FREE MEMORY ID 'T_OUT' .

loop at s_bukrs.

write:/ s_bukrs-sign,s_bukrs-option,s_bukrs-low,s_bukrs-high.

endloop.
 

abap中如何通过双击事件调用事务码

比如,通过普通屏幕,使用定制控制,显示了一个alv表格,表格中列举的信息包括物料编号,物料名称等信息 现在希望双击物料编号,直接调用事务码MM03显示物料信息,用哪个函数呢? 创建过程如下: 一、. ...
  • charliefromkansas
  • charliefromkansas
  • 2016年04月26日 10:06
  • 2025

sap转换成基本订单单位

源码:   function zcf_ut_unit_conversion. *"---------------------------------------------------------...
  • zhongguomao
  • zhongguomao
  • 2015年06月29日 14:42
  • 1184

Magento后台订单详情页,Items Ordered处, 添加跳转到网站前台的产品url

1.打开 app\design\adminhtml\default\default\template\sales\order\view\items\renderer\default.phtml  2...
  • github_26672553
  • github_26672553
  • 2015年04月02日 09:21
  • 520

ALV OO:单击事件-双击事件-自定义按钮事件(示例)

ALV OO事件示例,包含单击事件、双击事件、自定义按钮事件……
  • rztyzxzy
  • rztyzxzy
  • 2015年08月09日 16:45
  • 2795

ALV表格数据双击事件

ALV表格数据双击事件这个功能,财务部门的人需要的REPORT,大多都需要这个功能。 我从《SAP工程师突击》抄下这段代码来,运行调试通过。 效果如下图: 代码如下: ...
  • szlaptop
  • szlaptop
  • 2012年12月03日 15:51
  • 6519

SAP内部订单的使用过程(F-04)

1.创建内部订单 2.使用内部订单对费用进行归集 3.统计 重点是第二步,使用内部订单归集费用 使用事务码 事务码 F-04 记账码填写40  科目填写50504002 填好必填项 回车进入下...
  • charliefromkansas
  • charliefromkansas
  • 2016年11月14日 09:14
  • 3490

订单

主类 public class MainActivity extends AppCompatActivity implements View.OnClickListener {     privat...
  • qq_40531965
  • qq_40531965
  • 2018年01月14日 19:44
  • 29

ALV双击弹出新ALV,并响应新ALV事…

一个需求,ALV展示后,双击某行,再弹出一个ALV 某些信息,然后,响应弹出ALV的事件。 然后做了个demo 执行显示spfli数据,双击某行,根据carrid 获取sflight 表数据,弹出al...
  • senlinmu110
  • senlinmu110
  • 2016年07月27日 10:02
  • 911

ALV双击跳转事件

*&---------------------------------------------------------------------* *&     Form  set_pf_status...
  • zhongguomao
  • zhongguomao
  • 2011年11月24日 09:27
  • 2300

SAP销售订单到外向发货

SAP创建销售订单(va01),创建外向交货(vl01n),涉及发票凭证(vf01),会计凭证的创建(vf02),SAP坑太多了,一踩一个好心塞...
  • Kang_xiong
  • Kang_xiong
  • 2017年03月29日 15:51
  • 2842
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于ALV双击 调用事务的一个例子
举报原因:
原因补充:

(最多只允许输入30个字)