• 开发ABAP程序中的错误


    select语句错误

    1. select a
    2. b
    3. c from <透明表> into table <内表> where <条件>.
    4. *字段必须要一一对应.否则会报错或者值平移
    5. select * from <透明表> into corresponding fields of table <内表> where <条件>.
    6. *虽然可以自动匹配可以避免错误但运行速度不如上一个.

    ALV报表无报错却显示错误 (数据错位)

    1. define:catalog.
    2. clear wa_fieldcat.
    3. wa_fieldcat-fieldname = &1.
    4. wa_fieldcat-seltext_s = &2.
    5. append wa_fieldcat to gt_fieldcat.
    6. clear: wa_fieldcat.
    7. end-of-definition.
    8. catalog:
    9. 'KE' '循环',
    10. 'JR' '细节',
    11. 'Gh' '数据',
    12. 'shg' '酒店'.
    13. "这里因为单引号中没有大写不会报错
    14. "如果gh数据类型与jr一致则ALV二三行数据一模一样

    搜索帮助篇

    https://www.cnblogs.com/clsoho/archive/2010/02/24/1672466.html

    最近在使用函数 F4IF_INT_TABLE_VALUE_REQUEST时,出现了虽然弹出帮助对话框,确不显示选择值的问题。

     也就是显示找到了条目,但是数据显示不出来。

    原因是自定义表没有表头文本,内表结构里的字段不能用C类型,而应参照数据表里的字段类型。

    此处改为"将type c改为 type char6,"即可!

    最近在使用函数 F4IF_INT_TABLE_VALUE_REQUEST时,出现了虽然弹出帮助对话框,确不显示选择值的问题。

    原因二value_org       = 'S' 该参数未放开

    最近在使用函数 F4IF_INT_TABLE_VALUE_REQUEST时,出现了虽然第一次弹出帮助对话框,但第一次之后确不显示选择值的问题。

    引用对象赋值和定义要放在AT SELECTION-SCREEN ON VALUE-REQUEST FOR事件下执行

    例如:

    DATA:
          lr_tabdescr TYPE REF TO cl_abap_structdescr,
    *      ls_value_tab TYPE REF TO DATA,
          lt_dfies    TYPE ddfields,
          ls_dfies    TYPE dfies,
          lv_offset   TYPE doffset,
          ls_fieldcat TYPE lvc_s_fcat.

     lr_tabdescr ?= cl_abap_structdescr=>describe_by_data( ls_value_tab ).
     lt_dfies = cl_salv_data_descr=>read_structdescr( lr_tabdescr )."用与搜索帮助联动

    文件上传读取错误

    代码:

    1. TYPE-POOLS truxs.
    2. DATA:it_raw TYPE truxs_t_text_data.
    3. *定义一个内表来存储数据,内表的列数和要传得数据的列数要相同,其按照列来匹配传值
    4. DATA: BEGIN OF gt_data OCCURS 0,
    5. col1 TYPE char10,
    6. col2 TYPE char10,
    7. END OF gt_data.
    8. *生成一个parameters元素,给其加上on value-request事件(在parameters上点击F4时触发)
    9. PARAMETERS:p_file TYPE rlgrap-filename.
    10. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    11. CLEAR p_file.
    12. CALL FUNCTION 'F4_FILENAME'
    13. IMPORTING
    14. file_name = p_file."返回文件名
    15. *Excel传值
    16. START-OF-SELECTION.
    17. PERFORM exceltotab.
    18. LOOP AT gt_data.
    19. WRITE:/ gt_data-COL1,
    20. gt_data-COL2.
    21. ENDLOOP.
    22. *&---------------------------------------------------------------------*
    23. *& Form exceltotab
    24. *&---------------------------------------------------------------------*
    25. * text
    26. *----------------------------------------------------------------------*
    27. FORM exceltotab .
    28. CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    29. EXPORTING
    30. * I_FIELD_SEPERATOR =
    31. i_line_header = 'X'
    32. i_tab_raw_data = it_raw " WORK TABLE
    33. i_filename = p_file
    34. TABLES
    35. i_tab_converted_data = gt_data[] "ACTUAL DATA
    36. EXCEPTIONS
    37. conversion_failed = 1
    38. OTHERS = 2.
    39. IF sy-subrc <> 0.
    40. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    41. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    42. ENDIF.
    43. ENDFORM.

    原因了,原来OFFICE2003重新安装一遍就好了。

    does not begin with "FUNCTION-POOL" 解决办法之一

    does not begin with "FUNCTION-POOL" 解决办法之一-CSDN博客

    刚自学,写abap,有一些小细节,不注意,出了问题,不知道为啥。总结一下。

    出现上述问题,我的理解是函数必须有函数组,可能也包含函数组了,但是函数组没激活,就出现这个情况。

    激活函数组,就好了。

    abap,一切 都要 激活。

    Error when generating selection screen "1000" of report "程序名

    选择屏幕问题

    1. SELECTION-SCREEN COMMENT 01(54) TEXT-130.
    2. SELECTION-SCREEN COMMENT 01(54) TEXT-140 MODIF ID tex."
    3. SELECTION-SCREEN COMMENT 01(54) TEXT-150 MODIF ID tex.
    4. 连续两行文本会报错,原因文本会重叠的

    解决方法

    1. SELECTION-SCREEN COMMENT 01(54) TEXT-130.
    2. SELECTION-SCREEN SKIP 1.
    3. SELECTION-SCREEN COMMENT 01(54) TEXT-140 MODIF ID tex."
    4. SELECTION-SCREEN SKIP 1.
    5. SELECTION-SCREEN COMMENT 01(54) TEXT-150 MODIF ID tex.
    6. 或者
    7. SELECTION-SCREEN COMMENT 01(54) TEXT-130.
    8. SELECTION-SCREEN BEGIN OF LINE.
    9. SELECTION-SCREEN COMMENT 01(54) TEXT-140 MODIF ID tex."
    10. SELECTION-SCREEN END OF LINE.
    11. SELECTION-SCREEN COMMENT 01(54) TEXT-150 MODIF ID tex.也可

    SWM0上传EXCEL模版时报错无分配给对象***的MIME类型

    这里需要定义MIME类型.

     

    新旧语法 导致的错误

    1. SELECT
    2. carrid
    3. fldate
    4. price
    5. planetype
    6. paymentsum
    7. FROM sflight
    8. WHERE carrid IN s_carrid
    9. INTO CORRESPONDING FIELDS OF TABLE gt_out
    10. UP TO 20 ROWS.

     

     

    1. SELECT
    2. carrid,
    3. fldate,
    4. price,
    5. planetype,
    6. paymentsum
    7. FROM sflight
    8. WHERE carrid IN s_carrid
    9. INTO CORRESPONDING FIELDS OF TABLE @gt_out
    10. UP TO 20 ROWS.

    正确写法

    1. SELECT
    2. carrid,
    3. fldate,
    4. price,
    5. planetype,
    6. paymentsum
    7. FROM sflight
    8. WHERE carrid IN @s_carrid
    9. INTO CORRESPONDING FIELDS OF TABLE @gt_out
    10. UP TO 20 ROWS.

     想要回到最初始的结果

    inner join 和全局内表不用@

    或者

    into *  inner table放到from db之前呢

    1. SELECT
    2. carrid
    3. fldate
    4. price
    5. planetype
    6. paymentsum
    7. FROM sflight
    8. INTO CORRESPONDING FIELDS OF TABLE gt_out
    9. UP TO 20 ROWS
    10. WHERE carrid IN s_carrid.

     

  • 相关阅读:
    【HTML】HTML基础系列文章小小总结,运用标签写出网页!
    Linux多线程控制:深入理解与应用(万字详解!)
    重要功能丨支持1688API 接口对接一键跨境铺货及采购,解决跨境卖家货源烦恼!
    linux基本指令(上)
    【router-view】切换组件 深刻理解用法 vue的设计思想
    Spring事务传播性
    6.eureka服务发现实例(springcloud)
    关于《无货源开店已确认违法》新闻稿说明
    HAproxy负载均衡集群
    Transformer时间序列预测
  • 原文地址:https://blog.csdn.net/qq_53645728/article/details/130502888