自用笔记整理(二)

1、锁程序

CALL FUNCTION 'ENQUEUE_ES_PROG'
 EXPORTING
   MODE_TRDIR           'X'锁的方式
   NAME                 =  'ztest01'锁的程序
   X_NAME               ' '
   _SCOPE               '2'
   _WAIT                ' '
   _COLLECT             ' '
 EXCEPTIONS
   FOREIGN_LOCK         1
   SYSTEM_FAILURE       2
   OTHERS               3
          .

解锁
IF SY-SUBRC <> 0.
 MESSAGE E000(OOWITH '程序已被锁定'.
 ENDIF.

  CALL FUNCTION 'DEQUEUE_ES_PROG'
 EXPORTING
   MODE_TRDIR       'X'
   NAME             'ztest01'
   X_NAME           ' '
   _SCOPE           '3'
   _SYNCHRON        ' '
   _COLLECT         ' '
          .
2、获取当前IP和电脑名

DATA CLIENT LIKE MSXXLIST-HOSTADR.
DATA USER LIKE SY-UNAME.


CALL FUNCTION 'TH_USER_INFO'
 EXPORTING
   CLIENT                    SY-MANDT
   USER                      SY-UNAME
   CHECK_GUI                 0
 IMPORTING
   HOSTADDR                  CLIENT
   TERMINAL                  USER
*   ACT_SESSIONS              =
*   MAX_SESSIONS              =
*   MY_SESSION                =
*   MY_INTERNAL_SESSION       =
*   TASK_STATE                =
*   UPDATE_REC_EXIST          =
*   TID                       =
*   GUI_CHECK_FAILED          =
*   ADDRSTR                   =
*   RC                        =   .
 
WRITE/  CLIENT USER.

 

3、负号前置

 

把负号提前

GT '10000-'.
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
  CHANGING
    VALUE         GT
          .
WRITEGT.输出结果是-10000.

 函数代码很简单 完全可以自己写

 DATA: TEXT1(1) TYPE C.
  SEARCH VALUE FOR '-'.
  IF SY-SUBRC = 0 AND SY-FDPOS <> 0.
    SPLIT VALUE AT '-' INTO VALUE TEXT1.
    CONDENSE VALUE.
    CONCATENATE '-' VALUE INTO VALUE.
  ELSE.
    CONDENSE VALUE.
  ENDIF.

文本的数字列无法合计
负号提前不能用于金额数字格式

4、报表事件

AT PF-FUNCTION KEY(设置功能键)

过程化事件

INITIALIZATION

START-OF-SELECTION

END-OF-SELECTION

选择屏幕事件

AT SELECTION-SCREEN OUTPUT选择屏幕PBO事件,每次选择屏幕调用之前触发,在其中进行选择屏幕输出之前的准备工作,如确定屏幕各元素的输出状态。

AT SELECTION-SCREEN选择屏幕最后被触发的事件,用户在选择屏幕上回车、选择某个GUI按钮、功能键或者菜单项时触发

AT SELECTION-SCREEN ON field

AT SELECTION-SCREEN ON BLOCK block

AT SELECTION-SCREEN ON RADIOBUTTON GROUP group1

AT SELECTION-SCREEN ON seltab

AT SELECTION-SCREEN ON END OF seltab,

AT SELECTION-SCREEN ON HELP-REQUEST FOR field选择屏幕的POH事件,F1事件,定义字段帮助

AT SELECTION-SCREEN ON VALUE-REQUEST FOR field选择屏幕的POV事件,F4事件,定义字段输入帮助

使用到逻辑数据库时,比如HR报表,涉及到的逻辑数据库事件

GET node

GET node LATE

列表

TOP-OF-PAGE

END-OF-PAGE

AT-LINE-SELECTION

AT-USER-COMMAND用户交互控制,选择某个GUI功能出发,用于交互式报表

 

5、AT用法

AT FIRST功能

循环时第一条记录时调用

AT LAST功能

循环中最后一条记录时调用

AT NEW 功能

循环中当指定字段之前(包括指定字段)的组合和上一条记录不一样的时候调用

AT END OF功能

    循环中当指定字段之前(包括指定字段)的组合和下一条记录不一样的时候调用

AT事件的注意点

AT事件中的工作区不同于LOOP循环的工作区 该工作区中位于指定字段后面的值将不会被读取 如果需要用到 则需重新抽取一次

 

6、报表的选择画面上添加自定义工具栏

通过语句SELECTION-SCREEN FUNCTION KEY n(n为1至5,最多定义5个)。

7、报表的选择画面元素进行分组

PARAMETERS或SELECT-OPTIONS后使用附加语句“MODIF ID + 组名”

8、更改屏幕元素状态

在报表AT SELECTION-SCREEN OUTPUT事件中或PBO(PROCESS BEFORE OUTPUT)中,

LOOP AT SCREEN.

….

MODIFY SCREEN.

ENDLOOP.

 

SCREEN-NAME 画面元素的名称

SCREEN-GROUP1 ~ SCREEN-GROUP4 对画面元素的分组

SCREEN-INPUT     能否输入

SCREEN-INVISIBLE 是否可见

SCREEN-LENGTH   可见长度

SCREEN-ACTIVE    是否是可用的状态

9、ALV显示中的小计

  1. 使用SUBTOT

      alv可以实现自动小计,首先field cat 参数中添加DO_SUM = X,然后传入sorttable,可以在sorttable中指定需要小计的列

     2.使用AT 语句

      在LOOP 循环中使用AT END OF FIELD

 

10、LUW

LUW称为逻辑工作单位 同一个逻辑工作单元共享一段内存 将操作放置在同一个LUW中可以控制事务的同时提交和回滚

 

11、查找数据库表

(1) 通过点击画面上需要查找的字段,点击F1,在弹出画面中的技术信息。

(2) 通过ST05进行数据库操作的跟踪,对于在前台界面进行数据的新增或更新,在数据库中都会有所体现

(3) 通过事务SE80-> Repository Information System->ABAP字典->数据库表格中,对某个字段进行查询

 

12、权限对象

ABAP 程序中使用 AUTHORITY-CHECK 语句根据权限对象进行权限检查。在 AUTHORITY-CHECK 语句中,必须指明权限对象的所有字段,但有一个例外,可以用 DUMMY 关键字来绕过某个字段的检查。通过SY-SUBRC的返回值进行检查,0为通过检查,其他均为错误,一个授权对象中最多可以定义 10 个字段。

SU20定义,查看和建立权限字段;SU21查看系统已有权限对象,定义新的权限对象;

SU53显示权限检查出错的原因:对于调用Function时,返回无权限的错误后,能在此事务代码中查找到错误信息,

PFCG角色维护,将所建的权限对象,与某个角色关联,将角色分配给某个用户后,就能够检查该用户是否有进行操作的某权限

 

13、DIALOG 中的事件

PBO   PAI   POV   POH

 

14、BDC的运行模式和更新模式

运行模式包括:A.全屏幕显示;E.只有在发生错误时,显示屏幕;N.不进行屏幕的显示,将相关信息记录到信息内表里;P. 不进行屏幕的显示,可进行DEBUG测试。

更新模式包括:A.异步更新;S.同步更新;L.本地更新;

 

15、SMART FORM实现公司LOG打印

1.用SE78导入公司logo,导入时只能导入位图、GIF文件,导入位图时,注意用256色,否则会导致图片打印有问题

2.在smartform中添加图片即可

 

16、CALL FUNCTION 调用的几种模式

a. CALL FUNCTION - DESTINCTION: 以同步RFC方式实现的RFM调用。如果DESTINATION后无其它附加项,则形成同步RFC调用,调用程序等待远程调用的结果以继续执行。

b. CALL FUNCTION - STARTING NEW TASK: 以异步RFC方式实现的RFM调用。通过STARTING NEW TASK 附加项形成异步RFC调用,调用程序不等待返回结果继续执行,结果将在回调子程序(callback subroutine)中接收。

c. CALL FUNCTION - IN BACKGROUND TASK: 以事务性RFC方式实现的RFM调用。通过IN BACKGROUND TASK 形成事务性RFC调用,远程功能暂不开始执行,等待COMMIT WORK语句出现是,一次性执行一个或多个远程功能。

 

17、perform 调用子程序时,USING,tables,changing的区别

using 可以传入单值、工作区,只能使用,不能对值做修改,perform结束后传入参数的值还是传入之前的状态;

Tables 只能传入一个内表,程序逻辑可以对其进行修改,perform 结束后内表的值是影响

Changjing,可以传入内表、单值,当程序逻辑可以对其进行修改,perform结束后传入参数的值是影响过后的值

 

18、内存调用

SAP内存使用SET/GET parameters方法;

ABAP内存使用 EXPORT 和 IMPORT  方法;

EXPORT <OBJECT1> <OBJECT2> ... <OBJECTN> TO MEMORY ID <ID-NAME>.

IMPORT <OBJECT1> <OBJECT2> ... <OBJECTN> FROM MEMORY ID <ID-NAME>

ID参数标识唯一的数据簇

 

19、

SO: Sales Order 销售订单;
DO: Delivery Order 交货单;
WO: Work Order 工单;
PO: Purchase Order 采购订单;
QA:Quality Assurance 质量保证。

20.权限对象

公司代码:F_BKPF_BUK

工厂:M_MSEG_WMB

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值