on 08-17-2009 5:32 AM
Hello,
currently i'm modifying a program use for printing receipt. The display is in REUSE_ALV_LIST_DISPLAY.
I create s pf-status 'BADZ' so i can trigger the smartform. But my problem is when i click the 'Print' button that I add
it skip the AT USER-COMMEND.
please help me...
thank you...
Hai use Like this:
CASE COMMAND.
WHEN '&IC1'.
SET PF-STATUS 'ZCHECK'. "Firstly Set PF Status here*
SELECT * FROM ZSD_TEN_ITM_bd INTO TABLE iSD_TEN_ITM_bd
WHERE tno EQ wa_VSDTENDER-tno
and tyr EQ wa_VSDTENDER-tyr
and posnr eq wa_VSDTENDER-posnr.
if sy-subrc eq 0.
perform build_fieldcatalog1.
perform build_settings.
* Perform t_eventcat.
call function 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = i_settings
I_CALLBACK_PF_STATUS_SET = 'ZCHECK'
i_grid_title = 'Bidders Detail Acc.To Tender No.'
IT_EVENTS = T_EVENTCAT
it_fieldcat = i_fieldcat1
TABLES
t_outtab = ISD_TEN_ITM_bd.
endif.
endcase.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
In order for the user command to trigger you need to maintain an entry for teh USER-COMMAND event in the it_events internal talbe before you pass it to the reuse_alv--FM, YOu have to populate the same as below:
DATA : L_WA_EVENTS TYPE SLIS_ALV_EVENT. "For events CLEAR L_WA_EVENTS. L_WA_EVENTS-NAME = USER_COMMAND. L_WA_EVENTS-FORM = 'USER_COMMAND;. APPEND L_WA_EVENTS TO I_EVENTS_PART.
Regards,
Himanshu
hello,,,
this is what i did.
START-OF-SELECTION.
GET PERNR.
PERFORM VALIDATE_DATES.
PERFORM GET_DATA.
END-OF-SELECTION.
PERFORM SET_PF_STATUS.
PERFORM ALV_DISP
AT USER-COMMAND.
IF SY-UCOMM = 'PRINT'.
IF P_CTYP EQ 'SL' OR P_CTYP EQ 'SC' OR P_CTYP EQ 'SH' OR
P_CTYP EQ 'PM' OR P_CTYP EQ 'PH'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZHRPYHPHRSBR0_V1'
IMPORTING
FM_NAME = FNAME.
IF SY-SUBRC <> 0.
ENDIF.
CALL FUNCTION FNAME
EXPORTING
OUTPUT_OPTIONS = GS_SSFCOMPOP
S_TEXT1 = S_TEXT1.
IF SY-SUBRC <> 0.
ENDIF.
ENDIF.
ENDIF.
&----
*& Form SET_PF_STATUS
&----
FORM SET_PF_STATUS.
SET PF-STATUS 'BADZ'.
ENDFORM. " SET_PF_STATUS
&----
*& Form ALV_DISP
&----
FORM ALV_DISP .
DATA: BEGIN OF LT_OUTTAB3 OCCURS 0,
PERNR(8) TYPE C,
RMNTH(10) TYPE C,
RYEAR(4) TYPE C,
ISSDATE LIKE SY-DATUM,
RECEIPT(10) TYPE C,
TOTAL(12) TYPE C,
END OF LT_OUTTAB3.
DATA: LT_OUTTAB TYPE STANDARD TABLE OF HPHRSBR0_ALV1 WITH HEADER LINE.
DATA: LT_OUTTAB2 TYPE STANDARD TABLE OF ZHPHRSBR0_ALV1 WITH HEADER LINE.
CONSTANTS LC_STRUCTURE_NAME TYPE DD02L-TABNAME VALUE 'HPHRSBR0_ALV1'.
CONSTANTS LC_STRUCTURE_NAME2 TYPE DD02L-TABNAME VALUE 'ZHPHRSBR0_ALV1'.
CONSTANTS LC_STRUCTURE_NAME3 TYPE DD02L-TABNAME VALUE 'ZHPHRSBR0_ALV2'.
CLEAR GS_OUTTAB.
GS_LAYOUT-LIST_APPEND = 'Y'.
GS_LAYOUT-MIN_LINESIZE = '100'.
GS_LAYOUT-MAX_LINESIZE = '100'.
IF P_CTYP EQ 'SS'.
PERFORM FIELDCATLOG_BUILD USING LC_STRUCTURE_NAME2
CHANGING GT_FIELDCAT .
*------getting data into local internal table
LOOP AT GT_OUTTAB INTO GS_OUTTAB .
GV_TABIX = SY-TABIX.
APPEND GS_OUTTAB TO LT_OUTTAB2.
AT END OF PERNR.
GV_PERNR = GS_OUTTAB-PERNR.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'BADZ'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT
IT_EVENTS = GT_EVENTS
TABLES
T_OUTTAB = LT_OUTTAB2
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
EXIT.
ENDAT.
ENDLOOP.
ENDIF.
**When I try to execute the "PRINT" during debugging mode it skip the AT USER-COMMAND.
please help....
Edited by: Bernadette6184 on Aug 17, 2009 9:49 AM
Edited by: Bernadette6184 on Aug 17, 2009 9:53 AM
Hai
For displaying ALV list you use REUSE_ALV_LIST_DISPLAY function its OK.
Now in Function you are using this
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
For next Purpose like for smartform output
This is what you are calling user_command subroutine Now Do like this.
FORM USER_COMMAND USING COMMAND LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
CASE COMMAND.
WHEN '&IC1'.
IF P_CTYP EQ 'SL'
OR P_CTYP EQ 'SC'
OR P_CTYP EQ 'SH'
OR P_CTYP EQ 'PM'
OR P_CTYP EQ 'PH'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZHRPYHPHRSBR0_V1'
IMPORTING
FM_NAME = W_FNAME.
IF SY-SUBRC eq 0.
ENDIF.
CALL FUNCTION W_FNAME
EXPORTING
OUTPUT_OPTIONS = GS_SSFCOMPOP
S_TEXT1 = S_TEXT1.
IF SY-SUBRC eq 0.
ENDIF.
endif.
endcase.
endform "USER_COMMAND
I hope it will work.
User | Count |
---|---|
85 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.