Текущее время: Пт, апр 19 2024, 06:59

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Проваливание в ALV
СообщениеДобавлено: Ср, сен 08 2004, 09:18 
Гость
Подскажите почему может не работать 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


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Проваливание в ALV
СообщениеДобавлено: Ср, сен 08 2004, 10:04 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
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.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 08 2004, 10:10 
Специалист
Специалист

Зарегистрирован:
Чт, авг 19 2004, 07:31
Сообщения: 234
Откуда: Нижнекамск
не понял я что-то...
Цитата:
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.
...



почему по разному называются??? и почему строчными буквами?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Grundik
СообщениеДобавлено: Ср, сен 08 2004, 10:14 
Гость
Спасибо, проблема решена необходимо имена полей и таблиц писать большими буквами


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 08 2004, 10:16 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
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.
...



почему по разному называются??? и почему строчными буквами?


действительно - таким макаром и юзер-команд не вызовется :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проваливание в ALV
СообщениеДобавлено: Ср, сен 08 2004, 10:31 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
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
    ....


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB