Текущее время: Вт, апр 16 2024, 08:30

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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