CX_SY_RANGE_OUT_OF_BOUNDS
解答:
分隔线
首先:我们来看看它们的搜索帮助
0,1,4,5一样如下:
2,3,10,11一样如下:
6,7,14,15一样如下:
8,9,12,13一样如下:
原因:
SAP ALV过滤器的字段长度调整_sap 过滤器长度不够-CSDN博客
ABAP ALV可编辑字段长度受限_abap alv可编辑字段最长-CSDN博客
alv单元格英文字母最多显示128位
中文最多显示43位
中英混合没有找到规律
如果遇到一列显示不全的问题,就分解字符串吧,用多列显示。目前只能想到这种方法。
SAP自开发程序在展示数据结果时,默认筛选字段长度为10位;
很多业务字段值会超出这个长度,需要重新定义布局字段,常见的几个实现方式:
方式一,参考字段:
gs_fieldcat-ref_table = ‘MARA’.
gs_fieldcat-ref_field = ‘MATNR’.
这种方式还能带来搜索帮助,如果参考的表字段有的话
但是在要保证筛选正确,定义的类型要保持一致,且要保证数据与参照表中取值一致(取表中数据有前导零用的时候也需要前导零)否则会出错
2,3这种搜索帮助10位---------错误
筛选需要补*3000901
代码版本一
方式二,定义单个字段长度:
gs_fieldcat-inttype = ‘C’.
gs_fieldcat-intlen = ‘18’.
这种方式只能解决2,3,10,11变为展示全部前导零
6,7,14,15的搜索帮助变为12位的长度不会比其他的短.
2,3,10,11这样结果是点搜索帮助可搜索出来,但2,10会展示部位零的
代码版本二
方式三,批量定义:
这种方式只能解决2,3,10,11变为展示全部前导零
6,7,14,15的搜索帮助变为12位的长度不会比其他的短.
2,3,10,11这样结果是点搜索帮助可搜索出来,但2,10会展示部位零的
代码版本三
其他的8,9,12,13没有筛选成功原因是字段类型与参照类型严重不符,
导致你点搜索帮助筛选就会报CX_SY_RANGE_OUT_OF_BOUNDS错误
原始版本:
*&---------------------------------------------------------------------*
*& Report ZTXYY_11142
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztxyy_11142.
TYPE-POOLS: slis.
TYPE-POOLS: vrm.DATA : gt_fieldcat TYPE lvc_t_fcat,wa_fieldcat TYPE lvc_s_fcat,g_program TYPE sy-repid,gw_layout TYPE lvc_s_layo.
TYPES:BEGIN OF ty_out,morder TYPE aufk-aufnr, "main ordermorder1 TYPE aufk-aufnr, "main ordermorder2 TYPE aufk-aufnr, "main ordermorder3 TYPE aufk-aufnr, "main ordermorder4 TYPE aufk-aufnr, "main ordermorder5 TYPE aufk-aufnr, "main ordermorder6 TYPE aufk-aufnr, "main ordermorder7 TYPE aufk-aufnr, "main ordermorder8 TYPE char255, "main ordermorder9 TYPE char255, "main ordermorder10 TYPE char255, "main ordermorder11 TYPE char255, "main ordermorder12 TYPE char255, "main ordermorder13 TYPE char255, "main ordermorder14 TYPE char255, "main ordermorder15 TYPE char255, "main ordersel TYPE c,END OF ty_out.DATA:gt_out TYPE TABLE OF ty_out,gs_out TYPE ty_out,gt_out1 TYPE TABLE OF ty_out,gs_out1 TYPE ty_out.SELECT aufnr AS morder FROM aufk INTO CORRESPONDING FIELDS OF TABLE gt_out1UP TO 500 ROWS.LOOP AT gt_out1 INTO gs_out1.DATA:lv_morder TYPE aufnr.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "加零EXPORTINGinput = gs_out1-morderIMPORTINGoutput = lv_morder.gs_out-morder = lv_morder.gs_out-morder1 = lv_morder.gs_out-morder2 = lv_morder.gs_out-morder3 = lv_morder.gs_out-morder8 = lv_morder.gs_out-morder9 = lv_morder.gs_out-morder10 = lv_morder.gs_out-morder11 = lv_morder.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "去零EXPORTINGinput = gs_out1-morderIMPORTINGoutput = lv_morder.gs_out-morder4 = lv_morder.gs_out-morder5 = lv_morder.gs_out-morder6 = lv_morder.gs_out-morder7 = lv_morder.gs_out-morder12 = lv_morder.gs_out-morder13 = lv_morder.gs_out-morder14 = lv_morder.gs_out-morder15 = lv_morder.APPEND gs_out TO gt_out.
ENDLOOP.CLEAR gw_layout.
MOVE: 'X' TO gw_layout-zebra.
* 'X' TO gw_layout-colwidth_optimize,
* 'X' TO gw_layout-detail_popup.*&中列与双击明细显示:
gw_layout-box_fname = 'SEL'.
* gw_layout-f2code = '&ETA'.
gw_layout-detailtitl = '显示明细'.
gw_layout-stylefname = 'FIELD'.
gw_layout-info_fname = 'CLR'.
gw_layout-cwidth_opt = 'X'.
DEFINE add_fieldcat.CLEAR wa_fieldcat.wa_fieldcat-fieldname = &1.wa_fieldcat-scrtext_l = &2.wa_fieldcat-edit = &3.wa_fieldcat-no_zero = &4.wa_fieldcat-just = 'X'.wa_fieldcat-ref_field = &5.wa_fieldcat-ref_table = &6.wa_fieldcat-outputlen = &7.APPEND wa_fieldcat TO gt_fieldcat.
END-OF-DEFINITION."PERFORM filt_f4_callback IN PROGRAM SAPLSLVC_DIALOG IF FOUND USING '' 'LOW' ''.
*有前导零 AUFNR类型
add_fieldcat 'MORDER' 'Main Order' ' ' 'X' 'AUFNR' 'AFKO' ''."afko-aufnr
add_fieldcat 'MORDER1' 'Main Order' ' ' '' 'AUFNR' 'AFKO' ''."afko-aufnr
*其中搜索帮助错误,但不会报错
add_fieldcat 'MORDER2' 'Main Order2' ' ' 'X' '' '' ''."筛选失败
add_fieldcat 'MORDER3' 'Main Order3' ' ' '' '' '' ''."筛选失败
*无前导零 AUFNR类型
add_fieldcat 'MORDER4' 'Main Order4' ' ' 'X' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER5' 'Main Order5' ' ' '' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER6' 'Main Order' ' ' 'X' '' '' ''."afko-aufnr
add_fieldcat 'MORDER7' 'Main Order' ' ' '' '' '' ''."afko-aufnr*有前导零 字符串类型
add_fieldcat 'MORDER8' 'Main Order8' ' ' 'X' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER9' 'Main Order9' ' ' '' 'AUFNR' 'AFKO' ''."筛选失败
*其中搜索帮助错误,但不会报错
add_fieldcat 'MORDER10' 'Main Order10' ' ' 'X' '' '' ''."筛选失败+前导零成功
add_fieldcat 'MORDER11' 'Main Order11' ' ' '' '' '' ''."筛选失败+前导零成功
*无前导零 字符串类型
add_fieldcat 'MORDER12' 'Main Order12' ' ' 'X' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER13' 'Main Order13' ' ' '' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER14' 'Main Order' ' ' 'X' '' '' ''."afko-aufnr
add_fieldcat 'MORDER15' 'Main Order' ' ' '' '' '' ''."afko-aufnrg_program = sy-repid.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program = g_programis_layout_lvc = gw_layoutit_fieldcat_lvc = gt_fieldcat
* i_save = 'A'
* it_events = gt_eventTABLESt_outtab = gt_outEXCEPTIONSprogram_error = 1OTHERS = 2.
代码版本一
*&---------------------------------------------------------------------*
*& Report ZTXYY_11142
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztxyy_11142.
TYPE-POOLS: slis.
TYPE-POOLS: vrm.DATA : gt_fieldcat TYPE lvc_t_fcat,wa_fieldcat TYPE lvc_s_fcat,g_program TYPE sy-repid,gw_layout TYPE lvc_s_layo.
TYPES:BEGIN OF ty_out,morder0(12),morder01(12),morder TYPE aufk-aufnr, "main ordermorder1 TYPE aufk-aufnr, "main ordermorder2 TYPE aufk-aufnr, "main ordermorder3 TYPE aufk-aufnr, "main ordermorder4 TYPE aufk-aufnr, "main ordermorder5 TYPE aufk-aufnr, "main ordermorder6 TYPE aufk-aufnr, "main ordermorder7 TYPE aufk-aufnr, "main ordermorder8 TYPE char255, "main ordermorder9 TYPE char255, "main ordermorder10 TYPE char255, "main ordermorder11 TYPE char255, "main ordermorder12 TYPE char255, "main ordermorder13 TYPE char255, "main ordermorder14 TYPE char255, "main ordermorder15 TYPE char255, "main ordersel TYPE c,END OF ty_out.DATA:gt_out TYPE TABLE OF ty_out,gs_out TYPE ty_out,gt_out1 TYPE TABLE OF ty_out,gs_out1 TYPE ty_out.SELECT aufnr AS morder FROM aufk INTO CORRESPONDING FIELDS OF TABLE gt_out1UP TO 500 ROWS.LOOP AT gt_out1 INTO gs_out1.DATA:lv_morder TYPE aufnr.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "加零EXPORTINGinput = gs_out1-morderIMPORTINGoutput = lv_morder.gs_out-morder0 = lv_morder.gs_out-morder01 = lv_morder.gs_out-morder = lv_morder.gs_out-morder1 = lv_morder.gs_out-morder2 = lv_morder.gs_out-morder3 = lv_morder.gs_out-morder8 = lv_morder.gs_out-morder9 = lv_morder.gs_out-morder10 = lv_morder.gs_out-morder11 = lv_morder.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "去零EXPORTINGinput = gs_out1-morderIMPORTINGoutput = lv_morder.gs_out-morder4 = lv_morder.gs_out-morder5 = lv_morder.gs_out-morder6 = lv_morder.gs_out-morder7 = lv_morder.gs_out-morder12 = lv_morder.gs_out-morder13 = lv_morder.gs_out-morder14 = lv_morder.gs_out-morder15 = lv_morder.APPEND gs_out TO gt_out.
ENDLOOP.CLEAR gw_layout.
MOVE: 'X' TO gw_layout-zebra.
* 'X' TO gw_layout-colwidth_optimize,
* 'X' TO gw_layout-detail_popup.*&中列与双击明细显示:
gw_layout-box_fname = 'SEL'.
* gw_layout-f2code = '&ETA'.
gw_layout-detailtitl = '显示明细'.
gw_layout-stylefname = 'FIELD'.
gw_layout-info_fname = 'CLR'.
gw_layout-cwidth_opt = 'X'.
DEFINE add_fieldcat.CLEAR wa_fieldcat.wa_fieldcat-fieldname = &1.wa_fieldcat-scrtext_l = &2.wa_fieldcat-edit = &3.wa_fieldcat-no_zero = &4.wa_fieldcat-just = 'X'.wa_fieldcat-ref_field = &5.wa_fieldcat-ref_table = &6.wa_fieldcat-outputlen = &7.APPEND wa_fieldcat TO gt_fieldcat.
END-OF-DEFINITION."PERFORM filt_f4_callback IN PROGRAM SAPLSLVC_DIALOG IF FOUND USING '' 'LOW' ''.add_fieldcat 'MORDER0' 'Main Order' ' ' 'X' 'AUFNR' 'AFKO' ''."afko-aufnr
add_fieldcat 'MORDER01' 'Main Order' ' ' '' 'AUFNR' 'AFKO' ''."afko-aufnr
*有前导零 AUFNR类型
add_fieldcat 'MORDER' 'Main Order' ' ' 'X' 'AUFNR' 'AFKO' ''."afko-aufnr
add_fieldcat 'MORDER1' 'Main Order' ' ' '' 'AUFNR' 'AFKO' ''."afko-aufnr
*其中搜索帮助错误,但不会报错
add_fieldcat 'MORDER2' 'Main Order2' ' ' 'X' '' '' ''."筛选失败
add_fieldcat 'MORDER3' 'Main Order3' ' ' '' '' '' ''."筛选失败
*无前导零 AUFNR类型
add_fieldcat 'MORDER4' 'Main Order4' ' ' 'X' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER5' 'Main Order5' ' ' '' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER6' 'Main Order' ' ' 'X' '' '' ''."afko-aufnr
add_fieldcat 'MORDER7' 'Main Order' ' ' '' '' '' ''."afko-aufnr*有前导零 字符串类型
add_fieldcat 'MORDER8' 'Main Order8' ' ' 'X' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER9' 'Main Order9' ' ' '' 'AUFNR' 'AFKO' ''."筛选失败
*其中搜索帮助错误,但不会报错
add_fieldcat 'MORDER10' 'Main Order10' ' ' 'X' '' '' ''."筛选失败+前导零成功
add_fieldcat 'MORDER11' 'Main Order11' ' ' '' '' '' ''."筛选失败+前导零成功
*无前导零 字符串类型
add_fieldcat 'MORDER12' 'Main Order12' ' ' 'X' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER13' 'Main Order13' ' ' '' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER14' 'Main Order' ' ' 'X' '' '' ''."afko-aufnr
add_fieldcat 'MORDER15' 'Main Order' ' ' '' '' '' ''."afko-aufnrg_program = sy-repid.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program = g_programis_layout_lvc = gw_layoutit_fieldcat_lvc = gt_fieldcat
* i_save = 'A'
* it_events = gt_eventTABLESt_outtab = gt_outEXCEPTIONSprogram_error = 1OTHERS = 2.
代码版本二
*&---------------------------------------------------------------------*
*& Report ZTXYY_11142
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztxyy_11142.
TYPE-POOLS: slis.
TYPE-POOLS: vrm.DATA : gt_fieldcat TYPE lvc_t_fcat,wa_fieldcat TYPE lvc_s_fcat,g_program TYPE sy-repid,gw_layout TYPE lvc_s_layo.
TYPES:BEGIN OF ty_out,morder0(12),morder01(12),morder TYPE aufk-aufnr, "main ordermorder1 TYPE aufk-aufnr, "main ordermorder2 TYPE aufk-aufnr, "main ordermorder3 TYPE aufk-aufnr, "main ordermorder4 TYPE aufk-aufnr, "main ordermorder5 TYPE aufk-aufnr, "main ordermorder6 TYPE aufk-aufnr, "main ordermorder7 TYPE aufk-aufnr, "main ordermorder8 TYPE char255, "main ordermorder9 TYPE char255, "main ordermorder10 TYPE char255, "main ordermorder11 TYPE char255, "main ordermorder12 TYPE char255, "main ordermorder13 TYPE char255, "main ordermorder14 TYPE char255, "main ordermorder15 TYPE char255, "main ordersel TYPE c,END OF ty_out.DATA:gt_out TYPE TABLE OF ty_out,gs_out TYPE ty_out,gt_out1 TYPE TABLE OF ty_out,gs_out1 TYPE ty_out.SELECT aufnr AS morder FROM aufk INTO CORRESPONDING FIELDS OF TABLE gt_out1UP TO 500 ROWS.LOOP AT gt_out1 INTO gs_out1.DATA:lv_morder TYPE aufnr.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "加零EXPORTINGinput = gs_out1-morderIMPORTINGoutput = lv_morder.gs_out-morder0 = lv_morder.gs_out-morder01 = lv_morder.gs_out-morder = lv_morder.gs_out-morder1 = lv_morder.gs_out-morder2 = lv_morder.gs_out-morder3 = lv_morder.gs_out-morder8 = lv_morder.gs_out-morder9 = lv_morder.gs_out-morder10 = lv_morder.gs_out-morder11 = lv_morder.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "去零EXPORTINGinput = gs_out1-morderIMPORTINGoutput = lv_morder.gs_out-morder4 = lv_morder.gs_out-morder5 = lv_morder.gs_out-morder6 = lv_morder.gs_out-morder7 = lv_morder.gs_out-morder12 = lv_morder.gs_out-morder13 = lv_morder.gs_out-morder14 = lv_morder.gs_out-morder15 = lv_morder.APPEND gs_out TO gt_out.
ENDLOOP.CLEAR gw_layout.
MOVE: 'X' TO gw_layout-zebra.
* 'X' TO gw_layout-colwidth_optimize,
* 'X' TO gw_layout-detail_popup.*&中列与双击明细显示:
gw_layout-box_fname = 'SEL'.
* gw_layout-f2code = '&ETA'.
gw_layout-detailtitl = '显示明细'.
gw_layout-stylefname = 'FIELD'.
gw_layout-info_fname = 'CLR'.
gw_layout-cwidth_opt = 'X'.
DEFINE add_fieldcat.CLEAR wa_fieldcat.wa_fieldcat-fieldname = &1.wa_fieldcat-scrtext_l = &2.wa_fieldcat-edit = &3.wa_fieldcat-no_zero = &4.wa_fieldcat-just = 'X'.wa_fieldcat-ref_field = &5.wa_fieldcat-ref_table = &6.wa_fieldcat-outputlen = &7.wa_fieldcat-inttype = 'C'.wa_fieldcat-intlen = '12'.APPEND wa_fieldcat TO gt_fieldcat.
END-OF-DEFINITION."PERFORM filt_f4_callback IN PROGRAM SAPLSLVC_DIALOG IF FOUND USING '' 'LOW' ''.add_fieldcat 'MORDER0' 'Main Order' ' ' 'X' 'AUFNR' 'AFKO' ''."afko-aufnr
add_fieldcat 'MORDER01' 'Main Order' ' ' '' 'AUFNR' 'AFKO' ''."afko-aufnr
*有前导零 AUFNR类型
add_fieldcat 'MORDER' 'Main Order' ' ' 'X' 'AUFNR' 'AFKO' ''."afko-aufnr
add_fieldcat 'MORDER1' 'Main Order' ' ' '' 'AUFNR' 'AFKO' ''."afko-aufnr
*其中搜索帮助错误,但不会报错
add_fieldcat 'MORDER2' 'Main Order2' ' ' 'X' '' '' ''."筛选失败
add_fieldcat 'MORDER3' 'Main Order3' ' ' '' '' '' ''."筛选失败
*无前导零 AUFNR类型
add_fieldcat 'MORDER4' 'Main Order4' ' ' 'X' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER5' 'Main Order5' ' ' '' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER6' 'Main Order' ' ' 'X' '' '' ''."afko-aufnr
add_fieldcat 'MORDER7' 'Main Order' ' ' '' '' '' ''."afko-aufnr*有前导零 字符串类型
add_fieldcat 'MORDER8' 'Main Order8' ' ' 'X' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER9' 'Main Order9' ' ' '' 'AUFNR' 'AFKO' ''."筛选失败
*其中搜索帮助错误,但不会报错
add_fieldcat 'MORDER10' 'Main Order10' ' ' 'X' '' '' ''."筛选失败+前导零成功
add_fieldcat 'MORDER11' 'Main Order11' ' ' '' '' '' ''."筛选失败+前导零成功
*无前导零 字符串类型
add_fieldcat 'MORDER12' 'Main Order12' ' ' 'X' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER13' 'Main Order13' ' ' '' 'AUFNR' 'AFKO' ''."筛选失败
add_fieldcat 'MORDER14' 'Main Order' ' ' 'X' '' '' ''."afko-aufnr
add_fieldcat 'MORDER15' 'Main Order' ' ' '' '' '' ''."afko-aufnrg_program = sy-repid.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program = g_programis_layout_lvc = gw_layoutit_fieldcat_lvc = gt_fieldcat
* i_save = 'A'
* it_events = gt_eventTABLESt_outtab = gt_outEXCEPTIONSprogram_error = 1OTHERS = 2.
代码版本三
*&---------------------------------------------------------------------*
*& Report ZTXYY_11142
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztxyy_11142.
TYPE-POOLS: slis.
TYPE-POOLS: vrm.DATA : gt_fieldcat TYPE lvc_t_fcat,wa_fieldcat TYPE lvc_s_fcat,g_program TYPE sy-repid,gw_layout TYPE lvc_s_layo.
TYPES:BEGIN OF ty_out,morder0(12),morder01(12),morder TYPE aufk-aufnr, "main ordermorder1 TYPE aufk-aufnr, "main ordermorder2 TYPE aufk-aufnr, "main ordermorder3 TYPE aufk-aufnr, "main ordermorder4 TYPE aufk-aufnr, "main ordermorder5 TYPE aufk-aufnr, "main ordermorder6 TYPE aufk-aufnr, "main ordermorder7 TYPE aufk-aufnr, "main ordermorder8 TYPE char255, "main ordermorder9 TYPE char255, "main ordermorder10 TYPE char255, "main ordermorder11 TYPE char255, "main ordermorder12 TYPE char255, "main ordermorder13 TYPE char255, "main ordermorder14 TYPE char255, "main ordermorder15 TYPE char255, "main ordersel TYPE c,END OF ty_out.DATA:gt_out TYPE TABLE OF ty_out,gs_out TYPE ty_out,gt_out1 TYPE TABLE OF ty_out,gs_out1 TYPE ty_out.SELECT aufnr AS morder FROM aufk INTO CORRESPONDING FIELDS OF TABLE gt_out1UP TO 500 ROWS.LOOP AT gt_out1 INTO gs_out1.DATA:lv_morder TYPE aufnr.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "加零EXPORTINGinput = gs_out1-morderIMPORTINGoutput = lv_morder.gs_out-morder0 = lv_morder.gs_out-morder01 = lv_morder.gs_out-morder = lv_morder.gs_out-morder1 = lv_morder.gs_out-morder2 = lv_morder.gs_out-morder3 = lv_morder.gs_out-morder8 = lv_morder.gs_out-morder9 = lv_morder.gs_out-morder10 = lv_morder.gs_out-morder11 = lv_morder.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "去零EXPORTINGinput = gs_out1-morderIMPORTINGoutput = lv_morder.gs_out-morder4 = lv_morder.gs_out-morder5 = lv_morder.gs_out-morder6 = lv_morder.gs_out-morder7 = lv_morder.gs_out-morder12 = lv_morder.gs_out-morder13 = lv_morder.gs_out-morder14 = lv_morder.gs_out-morder15 = lv_morder.APPEND gs_out TO gt_out.
ENDLOOP.CLEAR gw_layout.
MOVE: 'X' TO gw_layout-zebra.
* 'X' TO gw_layout-colwidth_optimize,
* 'X' TO gw_layout-detail_popup.*&中列与双击明细显示:
gw_layout-box_fname = 'SEL'.
* gw_layout-f2code = '&ETA'.
gw_layout-detailtitl = '显示明细'.
gw_layout-stylefname = 'FIELD'.
gw_layout-info_fname = 'CLR'.
gw_layout-cwidth_opt = 'X'.
DEFINE add_fieldcat.CLEAR wa_fieldcat.wa_fieldcat-fieldname = &1.wa_fieldcat-scrtext_l = &2.wa_fieldcat-edit = &3.wa_fieldcat-no_zero = &4.wa_fieldcat-just = 'X'.wa_fieldcat-ref_field = &5.wa_fieldcat-ref_table = &6.wa_fieldcat-outputlen = &7.APPEND wa_fieldcat TO gt_fieldcat.
END-OF-DEFINITION."PERFORM filt_f4_callback IN PROGRAM SAPLSLVC_DIALOG IF FOUND USING '' 'LOW' ''.add_fieldcat 'MORDER0' 'Main Order' ' ' 'X' 'AUFNR' 'AFKO' ''."afko-aufnr
add_fieldcat 'MORDER01' 'Main Order' ' ' '' 'AUFNR' 'AFKO' ''."afko-aufnr
*有前导零 AUFNR类型
add_fieldcat 'MORDER' 'Main Order' ' ' 'X' 'AUFNR' 'AFKO' ''."afko-aufnr
add_fieldcat 'MORDER1' 'Main Order' ' ' '' 'AUFNR' 'AFKO' ''."afko-aufnr
*其中搜索帮助错误,但不会报错
add_fieldcat 'MORDER2' 'Main Order2' ' ' 'X' '' '' '12'."筛选失败
add_fieldcat 'MORDER3' 'Main Order3' ' ' '' '' '' '12'."筛选失败
*无前导零 AUFNR类型
add_fieldcat 'MORDER4' 'Main Order4' ' ' 'X' 'AUFNR' 'AFKO' '12'."筛选失败
add_fieldcat 'MORDER5' 'Main Order5' ' ' '' 'AUFNR' 'AFKO' '12'."筛选失败
add_fieldcat 'MORDER6' 'Main Order' ' ' 'X' '' '' '12'."afko-aufnr
add_fieldcat 'MORDER7' 'Main Order' ' ' '' '' '' ''."afko-aufnr*有前导零 字符串类型
add_fieldcat 'MORDER8' 'Main Order8' ' ' 'X' 'AUFNR' 'AFKO' '12'."筛选失败
add_fieldcat 'MORDER9' 'Main Order9' ' ' '' 'AUFNR' 'AFKO' '12'."筛选失败
*其中搜索帮助错误,但不会报错
add_fieldcat 'MORDER10' 'Main Order10' ' ' 'X' '' '' '12'."筛选失败+前导零成功
add_fieldcat 'MORDER11' 'Main Order11' ' ' '' '' '' '12'."筛选失败+前导零成功
*无前导零 字符串类型
add_fieldcat 'MORDER12' 'Main Order12' ' ' 'X' 'AUFNR' 'AFKO' '12'."筛选失败
add_fieldcat 'MORDER13' 'Main Order13' ' ' '' 'AUFNR' 'AFKO' '12'."筛选失败
add_fieldcat 'MORDER14' 'Main Order' ' ' 'X' '' '' ''."afko-aufnr
add_fieldcat 'MORDER15' 'Main Order' ' ' '' '' '' ''."afko-aufnrg_program = sy-repid.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program = g_programis_layout_lvc = gw_layoutit_fieldcat_lvc = gt_fieldcat
* i_save = 'A'
* it_events = gt_eventTABLESt_outtab = gt_outEXCEPTIONSprogram_error = 1OTHERS = 2.
实验
源字段类型和目标类型(字符串、表或引用)的组件没有完全相同的偏移量和类型。
ALV中你设置
字段类型为string又设置
REF_FIELD = &5.
REF_TABLE = &6.
这时的显示字段又有前导零时
你筛选时就会出现错误取不到
选中F4中的数据就会报这样的 CX_SY_RANGE_OUT_OF_BOUNDS