SAPфорум.RU https://sapboard.ru/forum/ |
|
Проваливание в ALV https://sapboard.ru/forum/viewtopic.php?f=13&t=476 |
Страница 1 из 1 |
Автор: | Grundik [ Ср, сен 08 2004, 09:18 ] |
Заголовок сообщения: | Проваливание в ALV |
Подскажите почему может не работать hotspot, вроде все описал, вернее он работает, но не проваливается(не вызывается транзакция FB03) * Output tr/ALV PERFORM events_init USING gt_events[]. PERFORM call_alv. *---------------------------------------------------------------------* * FORM call_alv * *---------------------------------------------------------------------* FORM call_alv. g_repid = sy-repid. PERFORM call_fields USING field_catalog. PERFORM print_init. PERFORM layout_build USING gs_layout. IF p_vari <> space. g_variant-variant = p_vari. ENDIF. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING * i_buffer_active = 'X' i_callback_program = g_repid i_callback_pf_status_set = g_status i_callback_user_command = 'g_user_command' * I_STRUCTURE_NAME = is_layout = gs_layout it_fieldcat = field_catalog[] * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' i_save = 'A' is_variant = g_variant it_events = gt_events[] * IT_EVENT_EXIT = is_print = gs_print * IS_REPREP_ID = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0 * I_SCREEN_END_COLUMN = 0 * I_SCREEN_END_LINE = 0 * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES t_outtab = i_book. ENDFORM. "CALL_ALV *---------------------------------------------------------------------* * FORM call_fields *---------------------------------------------------------------------* FORM call_fields USING fc TYPE slis_t_fieldcat_alv. DATA: lc TYPE slis_fieldcat_alv. lc-fieldname = 'BLDAT_INV'. "DE:J_3RF_BLDAT lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'BLDAT'. lc-seltext_l = text-003. lc-seltext_m = text-003. lc-seltext_s = text-003. lc-reptext_ddic = text-003. APPEND lc TO fc. CLEAR lc. lc-fieldname = 'BELNR_INV'. "DE:J_3RF_BELNR_D lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'BELNR'. lc-HOTSPOT = 'X'. lc-seltext_l = text-001. lc-seltext_m = text-001. lc-seltext_s = text-001. lc-reptext_ddic = text-001. lc-HOTSPOT = 'X'. APPEND lc TO fc. CLEAR lc. lc-fieldname = 'XBLNR_INV'. "DE:J_3RF_XBLNR lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'XBLNR'. lc-seltext_l = text-004. lc-seltext_m = text-004. lc-seltext_s = text-004. lc-reptext_ddic = text-004. APPEND lc TO fc. CLEAR lc. lc-fieldname = 'BUDAT_INV'. lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'BUDAT'. lc-seltext_l = text-005. lc-seltext_m = text-005. lc-seltext_s = text-005. lc-reptext_ddic = text-005. APPEND lc TO fc. CLEAR lc. lc-fieldname = 'LIFNR_INV'. "DE:J_3RF_LIFNR lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'LIFNR'. lc-seltext_l = text-002. lc-seltext_m = text-002. lc-seltext_s = text-002. lc-reptext_ddic = text-002. APPEND lc TO fc. lc-fieldname = 'NAME_VEND'. lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'NAME1'. lc-seltext_l = text-006. lc-seltext_m = text-006. lc-seltext_s = text-006. lc-reptext_ddic = text-006. APPEND lc TO fc. CLEAR lc. lc-fieldname = 'DMBTR_INV'. lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'DMBTR'. lc-cfieldname = 'DMBTR_WAERS'. lc-seltext_l = text-007. lc-seltext_m = text-007. lc-seltext_s = text-007. lc-reptext_ddic = text-007. APPEND lc TO fc. CLEAR lc. lc-fieldname = 'DMBTR_WAERS'. lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'DMBTR_WAERS'. lc-seltext_l = text-008. lc-seltext_m = text-008. lc-seltext_s = text-008. lc-reptext_ddic = text-008. APPEND lc TO fc. CLEAR lc. lc-fieldname = 'WRBTR_INV'. lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'WRBTR'. lc-cfieldname = 'WRBTR_WAERS'. lc-seltext_l = text-009. lc-seltext_m = text-009. lc-seltext_s = text-009. lc-reptext_ddic = text-009. APPEND lc TO fc. CLEAR lc. lc-fieldname = 'WRBTR_WAERS'. lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'WRBTR_WAERS'. lc-seltext_l = text-010. lc-seltext_m = text-010. lc-seltext_s = text-010. lc-reptext_ddic = text-010. APPEND lc TO fc. CLEAR lc. lc-fieldname = 'FLG_BELNR_ALL'. lc-ref_tabname = 'J_3RF_REGINV_K'. lc-ref_fieldname = 'FLG_BELNR_ALL'. lc-seltext_l = text-012. APPEND lc TO fc. CLEAR lc. lc-fieldname = 'BKTXT_INV'. lc-ref_tabname = 'BKPF'. lc-ref_fieldname = 'BKTXT'. lc-seltext_l = text-018. APPEND lc TO fc. CLEAR lc. * ? AOA lc-fieldname = 'MM_INV_VORNU'. lc-ref_tabname = 'EIKP'. lc-ref_fieldname = 'VORNU'. lc-seltext_l = text-019. APPEND lc TO fc. CLEAR lc. * NO?AIA lc-fieldname = 'MM_INV_VOISO'. lc-ref_tabname = 'EIKP'. lc-ref_fieldname = 'VOISO'. APPEND lc TO fc. CLEAR lc. * lc-fieldname = 'USNAM'. lc-ref_tabname = 'BKPF'. lc-ref_fieldname = 'USNAM'. lc-seltext_l = text-020. APPEND lc TO fc. CLEAR lc. ENDFORM. "call_fields *----------------------------------------------------------------------* * FORM SET_STATUS *----------------------------------------------------------------------* FORM set_status USING extab TYPE slis_t_extab. DATA: rt_extab TYPE slis_t_extab WITH HEADER LINE. * SET PF-STATUS 'STANDARD_FULLSCREEN' EXCLUDING extab. "46C and upper SET PF-STATUS 'STANDARD' EXCLUDING extab. ENDFORM. "set_status *----------------------------------------------------------------------* * FORM USER_COMMAND *----------------------------------------------------------------------* FORM user_command USING u_com LIKE sy-ucomm sel_lin TYPE slis_selfield. CASE u_com. WHEN '&IC1'. CASE sel_lin. WHEN 'belnr_inv'. read TABLE i_book INDEX sel_lin-tabindex. SET PARAMETER ID 'BLN' FIELD i_book-belnr_inv. SET PARAMETER ID 'BUK' FIELD i_book-bukrs. SET PARAMETER ID 'GJR' FIELD i_book-gjahr_inv. CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. Endcase. WHEN 'INV'. * Iiceoey Eo?ni?a READ TABLE i_book INDEX sel_lin-tabindex. * Aucia O?aicaeoee FB03 'N?ao Oaeoo?a' SET PARAMETER ID 'BUK' FIELD i_book-bukrs. SET PARAMETER ID 'BLN' FIELD i_book-belnr_inv. "N?. Oaeo SET PARAMETER ID 'GJR' FIELD i_book-gjahr_inv. "Aia IF i_book-bukrs <> space AND i_book-belnr_inv <> space AND i_book-gjahr_inv <> space. CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. ENDIF. CLEAR u_com. ENDCASE. ENDFORM. "USER_COMMAND *----------------------------------------------------------------------* * FORM ONHELP *----------------------------------------------------------------------* FORM onhelp USING txx LIKE line01. DATA: links LIKE TABLE OF tline, hdr LIKE dsyst-doktitle. hdr = text-011. CALL FUNCTION 'HELP_OBJECT_SHOW' EXPORTING dokclass = 'TX' doklangu = sy-langu dokname = txx doktitle = hdr * msg_var_1 = syst-msgv1 TABLES links = links. ENDFORM. "onhelp *----------------------------------------------------------------------* * FORM VARIANT_INIT *----------------------------------------------------------------------* FORM variant_init. CLEAR: g_variant. g_variant-report = sy-repid. gx_variant = g_variant. CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET' EXPORTING i_save = 'A' CHANGING cs_variant = gx_variant EXCEPTIONS not_found = 2. IF sy-subrc = 0. p_vari = gx_variant-variant. ENDIF. ENDFORM. " VARIANT_INIT *----------------------------------------------------------------------* * FORM F4_FOR_VARIANT *----------------------------------------------------------------------* FORM f4_for_variant. CALL FUNCTION 'REUSE_ALV_VARIANT_F4' EXPORTING is_variant = g_variant i_save = g_save IMPORTING e_exit = g_exit es_variant = gx_variant EXCEPTIONS not_found = 2. IF sy-subrc = 2. MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. IF g_exit = space. p_vari = gx_variant-variant. ENDIF. ENDIF. ENDFORM. "f4_for_variant *----------------------------------------------------------------------* * FORM PAI_OF_SELECTION_SCREEN *----------------------------------------------------------------------* FORM pai_of_selection_screen. IF NOT p_vari IS INITIAL. MOVE g_variant TO gx_variant. MOVE p_vari TO gx_variant-variant. CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE' EXPORTING i_save = g_save CHANGING cs_variant = gx_variant. g_variant = gx_variant. ELSE. PERFORM variant_init. ENDIF. ENDFORM. " PAI_OF_SELECTION_SCREEN *----------------------------------------------------------------------* * FORM E05_LAYOUT_BUILD Iano?ieee eioi?iaoee ia ye?aia *----------------------------------------------------------------------* FORM layout_build USING e05_ls_layout TYPE slis_layout_alv. * e05_ls_layout-f2code = '&ETA'. "no?iea -iia?iaii -F2 e05_ls_layout-colwidth_optimize = 'X'. "Iio. oe?eiu noieaoia * e05_ls_layout-lights_fieldname = 'LIGHTS'. "naaoioi? * e05_ls_layout-info_fieldname = 'COL22'. e05_ls_layout-coltab_fieldname = space. e05_ls_layout-lights_condense = 'X'. e05_ls_layout-detail_popup = 'X'. e05_ls_layout-reprep = 'X'. e05_ls_layout-group_change_edit = 'X'. e05_ls_layout-get_selinfos = 'X'. * e05_ls_layout-window_titlebar = 'X'. ENDFORM. "layout_build *---------------------------------------------------------------------* * FORM EVENTS_INIT *---------------------------------------------------------------------* FORM events_init USING rt_events TYPE slis_t_event. DATA: ls_events TYPE slis_t_event WITH HEADER LINE. CLEAR ls_events. ls_events-name = 'TOP_OF_PAGE'. ls_events-form = 'TOP_OF_PAGE'. APPEND ls_events TO rt_events. CLEAR ls_events. ls_events-name = 'END_OF_PAGE'. ls_events-form = 'END_OF_PAGE'. APPEND ls_events TO rt_events. CLEAR ls_events. ls_events-name = 'TOP_OF_LIST'. ls_events-form = 'TOP_OF_LIST'. APPEND ls_events TO rt_events. CLEAR ls_events. ls_events-name = 'END_OF_LIST'. ls_events-form = 'END_OF_LIST'. APPEND ls_events TO rt_events. ENDFORM. "events_init *----------------------------------------------------------------------* * FORM TOP_OF_LIST Ia?aou Caaieiaea Io?aoa *----------------------------------------------------------------------* FORM top_of_list. *line01 = text-101. WRITE: line01 CENTERED INTENSIFIED. *line01 = text-102. WRITE: line01 CENTERED INTENSIFIED. SELECT SINGLE * FROM t001 WHERE bukrs = i_book-bukrs. SELECT SINGLE * FROM t001z WHERE bukrs = i_book-bukrs AND party = 'SAPR01'. line01 = text-101. WRITE: line01 CENTERED INTENSIFIED. CONCATENATE text-021 t001-butxt INTO line01 SEPARATED BY space. WRITE: line01 CENTERED INTENSIFIED. CONCATENATE text-022 t001z-paval INTO line01 SEPARATED BY space. WRITE: line01 CENTERED INTENSIFIED. SKIP. ENDFORM. "top_of_list *---------------------------------------------------------------------* * FORM END_OF_PAGE *---------------------------------------------------------------------* FORM end_of_page. DATA repnam(14) TYPE c. repnam = sy-repid. WRITE: / text-100, sy-pagno, ' ', repnam , ' ' , sy-datum, sy-uzeit. * SKIP. * line16 = text-602. WRITE line16 RIGHT-JUSTIFIED INTENSIFIED. * CLEAR line16. ENDFORM. "end_of_page *---------------------------------------------------------------------* * FORM END_OF_LIST *---------------------------------------------------------------------* FORM end_of_list. DATA repnam(14) TYPE c. repnam = sy-repid. WRITE: / text-100, sy-pagno, ' ', repnam , ' ' , sy-datum, sy-uzeit. * SKIP. * line16 = text-602. WRITE line16 RIGHT-JUSTIFIED INTENSIFIED. * CLEAR line16. ENDFORM. "end_of_list *----------------------------------------------------------------------* * FORM PRINT_INIT *----------------------------------------------------------------------* FORM print_init. CLEAR gs_print. gs_print-reserve_lines = '2'. gs_print-no_print_listinfos = 'X'. ENDFORM. "print_init |
Автор: | OlegDm [ Ср, сен 08 2004, 10:04 ] |
Заголовок сообщения: | Re: Проваливание в ALV |
Grundik написал(а): FORM user_command USING u_com LIKE sy-ucomm sel_lin TYPE slis_selfield.
CASE u_com. WHEN '&IC1'. CASE sel_lin. WHEN 'belnr_inv'. read TABLE i_book INDEX sel_lin-tabindex. SET PARAMETER ID 'BLN' FIELD i_book-belnr_inv. SET PARAMETER ID 'BUK' FIELD i_book-bukrs. SET PARAMETER ID 'GJR' FIELD i_book-gjahr_inv. CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. Endcase. 1) Во-первых, ты же анализируешь имя поля, так и укажи что ты анализируешь в CASE; 2) И анализируемое имя поля укажи правильно: CASE sel_lin-sel_tab_field. WHEN '1-BELNR_INV'. read TABLE i_book INDEX sel_lin-tabindex. SET PARAMETER ID 'BLN' FIELD i_book-belnr_inv. SET PARAMETER ID 'BUK' FIELD i_book-bukrs. SET PARAMETER ID 'GJR' FIELD i_book-gjahr_inv. CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. Endcase. |
Автор: | Eugene [ Ср, сен 08 2004, 10:10 ] |
Заголовок сообщения: | |
не понял я что-то... Цитата: CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING ... i_callback_user_command = 'g_user_command' ... FORM user_command USING u_com LIKE sy-ucomm sel_lin TYPE slis_selfield. CASE u_com. WHEN '&IC1'. CASE sel_lin. ... почему по разному называются??? и почему строчными буквами? |
Автор: | Гость [ Ср, сен 08 2004, 10:14 ] |
Заголовок сообщения: | Grundik |
Спасибо, проблема решена необходимо имена полей и таблиц писать большими буквами |
Автор: | OlegDm [ Ср, сен 08 2004, 10:16 ] |
Заголовок сообщения: | |
Eugene написал(а): не понял я что-то...
Цитата: CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING ... i_callback_user_command = 'g_user_command' ... FORM user_command USING u_com LIKE sy-ucomm sel_lin TYPE slis_selfield. CASE u_com. WHEN '&IC1'. CASE sel_lin. ... почему по разному называются??? и почему строчными буквами? действительно - таким макаром и юзер-команд не вызовется |
Автор: | sy-uname [ Ср, сен 08 2004, 10:31 ] |
Заголовок сообщения: | Re: Проваливание в ALV |
Grundik написал(а): Подскажите почему может не работать hotspot, вроде все описал, вернее он работает, но не проваливается(не вызывается транзакция FB03)
... Может дело в том что вместо Code: .... i_callback_user_command = 'g_user_command' .... должно быть Code: .... i_callback_user_command = 'USER_COMMAND' .... или Code: ....
i_callback_user_command = g_user_command .... |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |