注销凭证与自定义屏幕

注意注销凭证FB03    (事务代码SHDB)

自定义屏幕的功能代码与标准程序要对应一致

SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF }
.L0S31 { font-style: italic; color: #808080 }
.L0S32 { color: #3399FF }
.L0S33 { color: #4DA619 }
.L0S52 { color: #0000FF }
.L0S55 { color: #800080 }
.L0S70 { color: #808080 }

REPORT ZWGX006.

TABLES BKPF.

DATA OK_CODE TYPE OKCODE.

TYPES: BEGIN OF TY_TAB,

CHECKBOX TYPE CHAR01.

INCLUDE TYPE BKPF.

TYPES END OF TY_TAB.

DATA LT_TAB TYPE STANDARD TABLE OF TY_TAB.

DATA LS_TAB LIKE LINE OF LT_TAB.  ""**屏幕中的复选框

DATA: LT_FCAT TYPE LVC_T_FCAT,

LS_FCAT TYPE LVC_S_FCAT,

I_LAYO  TYPE LVC_S_LAYO.

DATA:G_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

G_GRID      TYPE REF TO CL_GUI_ALV_GRID.

DATA LT_MSG TYPE STANDARD TABLE OF BDCMSGCOLL.

DATA BDCDATA TYPE TABLE OF BDCDATA WITH HEADER LINE.

START-OF-SELECTION.

PERFORM GET_DATA.

PERFORM SET_LAYO.

PERFORM SET_FCAT.

CALL SCREEN 2017.

*&---------------------------------------------------------------------*

*&      Module  STATUS_2017  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE STATUS_2017 OUTPUT.

*  SET PF-STATUS ‘xxxxxxxx‘.

*  SET TITLEBAR ‘xxx‘.

ENDMODULE.

*&---------------------------------------------------------------------*

*&      Module  USER_COMMAND_2017  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE USER_COMMAND_2017 INPUT.

CASE OK_CODE.

WHEN‘ANN01‘.

LEAVE PROGRAM.

WHEN ‘ANN02‘.

PERFORM SET_WRITE-OFF.

WHEN OTHERS.

ENDCASE.

ENDMODULE.

*&---------------------------------------------------------------------*

*&      Form  GET_DATA

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM GET_DATA.

SELECT * FROM BKPF INTO CORRESPONDING FIELDS OF

TABLE LT_TAB UP TO 50 ROWS.

ENDFORM.

*&---------------------------------------------------------------------*

*&      Form  SET_LAYO

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM SET_LAYO .

I_LAYO-ZEBRA = ‘X‘.

I_LAYO-CWIDTH_OPT = ‘X‘.

ENDFORM.

*&---------------------------------------------------------------------*

*&      Form  SET_FCAT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM SET_FCAT .""复选框

CALL FUNCTION ‘LVC_FIELDCATALOG_MERGE‘

EXPORTING

*     I_BUFFER_ACTIVE        =

I_STRUCTURE_NAME       = ‘BKPF‘

*     I_CLIENT_NEVER_DISPLAY = ‘X‘

*     I_BYPASSING_BUFFER     =

*     I_INTERNAL_TABNAME     =

CHANGING

CT_FIELDCAT            = LT_FCAT[]

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR          = 2

OTHERS                 = 3.

IF SY-SUBRC <> 0.

* Implement suitable error handling here

ENDIF.

LS_FCAT-FIELDNAME = ‘CHECKBOX‘.

LS_FCAT-CHECKBOX = ABAP_TRUE.

LS_FCAT-EDIT = ABAP_TRUE.

LS_FCAT-SCRTEXT_S = ‘冲销凭证‘.

APPEND LS_FCAT TO LT_FCAT.

ENDFORM.

*&---------------------------------------------------------------------*

*&      Module  DISPLAY  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE DISPLAY OUTPUT.

DATA G_FIRST(1) TYPE C.

IF NOT G_CONTAINER IS BOUND.

CREATE OBJECT G_CONTAINER

EXPORTING

*       PARENT                      =

CONTAINER_NAME              = ‘CONTAINER1‘

*       STYLE                       =

*       LIFETIME                    = lifetime_default

*       REPID                       =

*       DYNNR                       =

*       NO_AUTODEF_PROGID_DYNNR     =

EXCEPTIONS

CNTL_ERROR                  = 1

CNTL_SYSTEM_ERROR           = 2

CREATE_ERROR                = 3

LIFETIME_ERROR              = 4

LIFETIME_DYNPRO_DYNPRO_LINK = 5

OTHERS                      = 6.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

IF NOT G_GRID IS BOUND.

CREATE OBJECT G_GRID

EXPORTING

*       I_SHELLSTYLE      = 0

*       I_LIFETIME        =

I_PARENT          = G_CONTAINER

*       I_APPL_EVENTS     = space

*       I_PARENTDBG       =

*       I_APPLOGPARENT    =

*       I_GRAPHICSPARENT  =

*       I_NAME            =

*       I_FCAT_COMPLETE   = SPACE

EXCEPTIONS

ERROR_CNTL_CREATE = 1

ERROR_CNTL_INIT   = 2

ERROR_CNTL_LINK   = 3

ERROR_DP_CREATE   = 4

OTHERS            = 5.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

IF G_FIRST = SPACE.

G_FIRST = ‘x‘.

CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY

EXPORTING

*       I_BUFFER_ACTIVE               =

*       I_BYPASSING_BUFFER            =

*       I_CONSISTENCY_CHECK           =

*       I_STRUCTURE_NAME              =

*       IS_VARIANT                    =

*       I_SAVE                        =

*       I_DEFAULT                     = ‘X‘

IS_LAYOUT                     = I_LAYO

*       IS_PRINT                      =

*       IT_SPECIAL_GROUPS             =

*       IT_TOOLBAR_EXCLUDING          =

*       IT_HYPERLINK                  =

*       IT_ALV_GRAPHICS               =

*       IT_EXCEPT_QINFO               =

*       IR_SALV_ADAPTER               =

CHANGING

IT_OUTTAB                     = LT_TAB[]

IT_FIELDCATALOG               = LT_FCAT[]

*       IT_SORT                       =

*       IT_FILTER                     =

EXCEPTIONS

INVALID_PARAMETER_COMBINATION = 1

PROGRAM_ERROR                 = 2

TOO_MANY_LINES                = 3

OTHERS                        = 4.

IF SY-SUBRC <> 0.

*       Implement suitable error handling here

ENDIF.

ENDIF.

ENDMODULE.

*&---------------------------------------------------------------------*

*&      Form  SET_WRITE-OFF

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

form set_write-off.

clear ls_tab.

clear lt_fcat[].

clear ls_fcat.

CALL METHOD G_GRID->CHECK_CHANGED_DATA.

LOOP AT LT_tab into ls_tab.

if ls_tab-checkbox = ‘x‘.

*    perform bdc_dynpro      using ‘SAPMF05A‘ ‘0100‘.

*perform bdc_field       using ‘BDC_CURSOR‘

*                              ‘RF05A-NEWKO‘.

*perform bdc_field       using ‘BDC_OKCODE‘

*                              ‘/00‘.

*perform bdc_field       using ‘BKPF-BLDAT‘

*                              ‘2017.08.09‘.

*perform bdc_field       using ‘BKPF-BLART‘

*                              ‘SA‘.

*perform bdc_field       using ‘BKPF-BUKRS‘

*                              Ls_TAB-BUKRS.

*perform bdc_field       using ‘BKPF-BUDAT‘

*                              ‘2017.08.09‘.

*perform bdc_field       using ‘BKPF-MONAT‘

*                              ‘8‘.

*perform bdc_field       using ‘BKPF-WAERS‘

*                              ‘CNY‘.

*perform bdc_field       using ‘RF05A-NEWBS‘

*                             ‘40‘.

*perform bdc_field       using ‘RF05A-NEWKO‘

*                             ‘10020111‘.

*perform bdc_dynpro      using ‘SAPMF05A‘ ‘0300‘.

*perform bdc_field       using ‘BDC_CURSOR‘

*                              ‘RF05A-NEWKO‘.

*perform bdc_field       using ‘BDC_OKCODE‘

*                              ‘/00‘.

*perform bdc_field       using ‘BSEG-WRBTR‘

*                            ‘888‘.

*perform bdc_field       using ‘RF05A-NEWBS‘

*                           ‘50‘.

*perform bdc_field       using ‘RF05A-NEWKO‘

*                              ‘10010101‘.

*perform bdc_dynpro      using ‘SAPMF05A‘ ‘0300‘.

*perform bdc_field       using ‘BDC_CURSOR‘

*                              ‘BSEG-WRBTR‘.

*perform bdc_field       using ‘BDC_OKCODE‘

*                              ‘=BU‘.

*perform bdc_field       using ‘BSEG-WRBTR‘

*                             ‘888‘.

perform bdc_dynpro      using ‘SAPMF05A‘ ‘0105‘.

perform bdc_field       using ‘BDC_CURSOR‘

‘RF05A-BELNS‘.

perform bdc_field       using ‘BDC_OKCODE‘

‘=BU‘.

perform bdc_field       using ‘RF05A-BELNS‘

LS_TAB-BELNR.

perform bdc_field       using ‘BKPF-BUKRS‘

LS_TAB-BELNR.

perform bdc_field       using ‘RF05A-GJAHS‘

LS_TAB-GJAHR.

perform bdc_field       using ‘UF05A-STGRD‘

LS_TAB-BELNR.

perform bdc_dynpro      using ‘SAPMF05A‘ ‘0105‘.

perform bdc_field       using ‘BDC_OKCODE‘

‘/ERW‘.

perform bdc_field       using ‘BDC_CURSOR‘

‘RF05A-BELNS‘.

perform bdc_dynpro      using ‘SAPLSPO1‘ ‘0200‘.

perform bdc_field       using ‘BDC_OKCODE‘
                              
‘=YES‘.

ENDIF.

ENDLOOP.

if sy-subrc = 0.
  
MESSAGE ‘冲销成功‘ TYPE ‘I‘."如何添加字段信息在message里  “ 设置系统变量 并赋值变量SY-MSGV1
  
ENDIF.

*  CALL TRANSACTION ‘FB08‘ USING BDCDATA

*      MODE ‘A‘ UPDATE ‘A‘

*      MESSAGES INTO LT_MSG.

ENDFORM.

FORM BDC_field USING fnam fval.

*  *  DATA NODATA TYPE CHAR01 VALUE ‘/‘.

*  IF FVAL <> NODATA.

clear bdcdata.
  bdcdata
-fnam = fnam.
  bdcdata
-fval = fval.
  
APPEND bdcdata.

*  *  ENDIF.
  
ENDFORM.

form bdc_dynpro USING program dynpro.
    
clear bdcdata.
    bdcdata
-program = program.
    bdcdata
-dynpro = dynpro.
    bdcdata
-dynbegin = ‘x‘.
    
APPEND bdcdata.
    
ENDFORM.

运行结果如下

自定义屏幕

时间: 2024-10-04 06:28:37

注销凭证与自定义屏幕的相关文章

abap自定义屏幕Search Help

第一种:调用'F4IF_INT_TABLE_VALUE_REQUEST' data: begin of it_tm occurs 0, zprogm_name like zisd_tpl_prgrm-zprogm_name, zzdesc like zisd_tpl_prgrm-zzdesc, end of it_tm. data:itab_tm like it_tm occurs 0 with header line. at selection-screen on value-request 

Centos 7自定义屏幕分辨率

$ xrandrScreen 0: minimum 1 x 1, current 1680 x 900, maximum 8192 x 8192Virtual1 connected primary 1680x900+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 800x600 60.00 + 60.32 2560x1600 59.99 1920x1440 60.00 1856x1392 60.00 1792x1344 60.00

第九章 多语言环境的支持和多屏幕的适配(2)

9.3多屏幕的适配 9.3.1屏幕参数的基本概念 Android手机屏幕大小不一,有480x320.640x360.800x480等等,还包括不同屏幕密度,怎样才能让应用程序自动适应不同的屏幕呢? 首先我们来了解几个基本概念: 1)屏幕尺寸Screensize 即显示屏幕的实际大小,按照屏幕的对角线进行测量. 为简单起见,Android把所有的屏幕大小分为四种尺寸:小.普通.大.超大(分别对应:small.normal.large.extralarge). 应用程序可以为这四种尺寸分别提供不同的

物料主档的屏幕增强

1.创建FOUNCTION  GROUP SPRO->后勤-常规->物料主数据->配置物料主记录->创建定制子屏幕的程序 按照说明创建ZMGD1 founction group. 2.SE80,选择函数组,可以看到ZMGD1下有两个子屏幕 新建包含程序时必须是:L+ZMGD1+三位后缀 3.从SAPLMGD1这个程序中复制需要的子屏幕,同时修改上面的字段,或者是自建的子屏幕 4.下面的步骤就和网上的一样,直接复制网上的流程 module disable_field:通过判断如果是M

详解javascript实现自定义事件

这篇文章主要为大家介绍了javascript实现自定义事件的方法,自定义事件,顾名思义,就是自己定义事件类型,自己定义事件处理函数,javascript如何实现自定义事件,需要了解的朋友可以参考下 我们平时在操作dom时候经常会用到onclick,onmouseover等一系列浏览器特定行为的事件, 那么自定义事件,顾名思义,就是自己定义事件类型,自己定义事件处理函数,在合适的时候需要哪个事件类型,就去调用哪个处理程序 1.js所支持的浏览器默认事件 浏览器特定行为的事件,或者叫系统事件,js默

转载 Ubuntu 自定义桌面分辨率

在ubuntu14.04虚拟机上修改自定义大小的桌面屏幕分辨率,使用的命令:cvt,xrandr 0.首先查看下当前已经提供的分辨率设置:xrandr -q [email protected]:/home/xxx/Desktop# xrandr -qScreen 0: minimum 1 x 1, current 1504 x 768, maximum 8192 x 8192Virtual1 connected primary 1504x768+0+0 (normal left inverted

Android布局尺寸思考

一.初步思考 虽然安卓的这个显示适配的方案有点怪,最初也不容易马上理解,不过这个方案确实有其自己的道理,整个思路是清晰的,方案的也是完整的,没有硬伤 安卓采用的[屏幕密度放缩机制].与web前端对应的是[屏幕比例放缩机制] 安卓里边,每一段以dp结尾的数值代表的是一段真实的物理尺寸,对,就是物理尺寸,你甚至可以认为它的单位就是“厘米”! 除了百分比和物理尺寸,还可以用什么?可以用px,对,用像素点,这个是最原始的,不过这样用会有哪些问题呢? 使用dp和不同的layout在逻辑上是能适应所有情况的

Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)

一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/ JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html Android SDK:http://developer.android.com/sdk/index.html ADT:

Android App中使用Gallery制作幻灯片播放效果

http://www.jb51.net/article/83313.htm 我们有时候在iPhone手机上或者Windows上面看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的图片滚动效果,还可以根据你的点击或者触摸触发其他事件响应.同样的,在Android中也提供这这种实现,这就是通过Gallery在UI上实现缩略图浏览器. 我们来看看Gallery是如何来实现的,先把控件从布局文件中声明,只需知道ID为gallery. ? 1 Gallery gallery = (Gallery