Navigation from ALV Record to Tcode
Hello All,
I have a requirement like this,
My zPROGARM is displaying one ALV output. When an user select one record/cell
it has to navigate to particular Tcode .
Is it Possible?
Kindly advice me on this.
Thankyou,
Ram.
HI...,,
Check this program...
REPORT YH627_PO_CHANGES_SOX_REPORTING MESSAGE-ID M8.
*"Table declarations...................................................
TABLES:
EKKO, " Purchasing Document Header
CDHDR, " Change document header
SSCRFIELDS. " Fields on selection screens
*"Selection screen elements............................................
SELECT-OPTIONS:
S_EBELN FOR EKKO-EBELN, " Purchasing Document Number
S_LIFNR FOR EKKO-LIFNR, " Vendor's account number
S_EKGRP FOR EKKO-EKGRP, " Purchasing group
S_BEDAT FOR EKKO-BEDAT, " Purchasing Document Date
S_UDATE FOR CDHDR-UDATE. " Creation date of the change
" document
*" Data declarations...................................................
Field String to hold Purchase Document Number *
DATA:
BEGIN OF FS_EBELN,
EBELN(90) TYPE C, " Purchase Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created
" the Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
END OF FS_EBELN,
Internal table to hold Purchase Document Number *
T_EBELN LIKE STANDARD TABLE
OF FS_EBELN.
Field String to hold Purchase Document Header *
DATA:
BEGIN OF FS_EKKO,
EBELN TYPE EKKO-EBELN, " Purchasing Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
" Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
END OF FS_EKKO,
Internal table to hold Purchase Document Header *
T_EKKO LIKE STANDARD TABLE
OF FS_EKKO.
Field String to hold Account Number and name of the Vendor *
DATA:
BEGIN OF FS_LFA1,
LIFNR TYPE LFA1-LIFNR, " Account Number of Vendor
NAME1 TYPE LFA1-NAME1, " Name1
END OF FS_LFA1,
Internal table to hold Account number and Name of the Vendor *
T_LFA1 LIKE STANDARD TABLE
OF FS_LFA1.
Field String to hold Change date and the name of the user *
DATA:
BEGIN OF FS_CDHDR,
OBJECTCLAS TYPE CDHDR-OBJECTCLAS, " Object Class
OBJECTID TYPE CDHDR-OBJECTID, " Object value
CHANGENR TYPE CDHDR-CHANGENR, " Document change number
USERNAME TYPE CDHDR-USERNAME, " User name
UDATE TYPE CDHDR-UDATE, " Creation date of the change
" document
END OF FS_CDHDR,
Internal Table to hold Change date and the name of the user *
T_CDHDR LIKE STANDARD TABLE
OF FS_CDHDR.
Field String to hold Change document items *
DATA:
BEGIN OF FS_CDPOS,
OBJECTCLAS TYPE CDPOS-OBJECTCLAS," Object class
OBJECTID(10) TYPE C, " Object Value
CHANGENR TYPE CDPOS-CHANGENR, " Document change number
TABNAME TYPE CDPOS-TABNAME, " Table Name
FNAME TYPE CDPOS-FNAME, " Field Name
VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
END OF FS_CDPOS,
Internal Table to hold Change document items *
T_CDPOS LIKE STANDARD TABLE
OF FS_CDPOS.
Field String to hold Date Element Name *
DATA:
BEGIN OF FS_DATAELE,
TABNAME TYPE DD03L-TABNAME, " Table Name
FIELDNAME TYPE DD03L-FIELDNAME, " Field Name
ROLLNAME TYPE DD03L-ROLLNAME, " Data element
END OF FS_DATAELE,
Internal Table to hold Data Element Name *
T_DATAELE LIKE STANDARD TABLE
OF FS_DATAELE.
Field String to hold Short Text of the Date Element *
DATA:
BEGIN OF FS_TEXT,
ROLLNAME TYPE DD04T-ROLLNAME, " Data element
DDTEXT TYPE DD04T-DDTEXT, " Short Text
END OF FS_TEXT,
Internal Table to hold Short Text of the Date Element *
T_TEXT LIKE STANDARD TABLE
OF FS_TEXT.
Field String to hold data to be displayed on the ALV grid *
DATA:
BEGIN OF FS_OUTTAB,
EBELN TYPE EKKO-EBELN, " Purchasing Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
" Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
WERKS TYPE LFA1-WERKS, " Plant
NAME1 TYPE LFA1-NAME1, " Name1
USERNAME TYPE CDHDR-USERNAME, " User name
UDATE TYPE CDHDR-UDATE, " Creation date of the change
" document
DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
" Repository Objects
VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
END OF FS_OUTTAB,
Internal Table to hold data to be displayed on the ALV grid *
T_OUTTAB LIKE STANDARD TABLE
OF FS_OUTTAB.
C L A S S D E F I N I T I O N *
CLASS LCL_EVENT_HANDLER DEFINITION DEFERRED.
*" Data declarations...................................................
Work variables *
DATA:
W_EBELN TYPE EKKO-EBELN, " Purchasing Document Number
W_LIFNR TYPE EKKO-LIFNR, " Vendor's account number
W_EKGRP TYPE EKKO-EKGRP, " Purchasing group
W_VALUE TYPE EKKO-EBELN, " Reflected Value
W_SPACE VALUE ' ', " Space
*--- ALV Grid
W_GRID TYPE REF TO CL_GUI_ALV_GRID,
*--- Event Handler
EVENT_CLICK TYPE REF TO LCL_EVENT_HANDLER,
*--- Field catalog table
T_FIELDCAT TYPE LVC_T_FCAT.
AT SELECTION-SCREEN EVENT *
AT SELECTION-SCREEN ON S_EBELN.
PERFORM VALIDATE_PD_NUM.
AT SELECTION-SCREEN ON S_LIFNR.
PERFORM VALIDATE_VEN_NUM.
AT SELECTION-SCREEN ON S_EKGRP.
PERFORM VALIDATE_PUR_GRP.
START-OF-SELECTION EVENT *
START-OF-SELECTION.
PERFORM SELECT_PO.
PERFORM SELECT_OBJ_ID.
PERFORM SELECT_CHANGED_VALUE.
PERFORM SELECT_PUR_DOC.
PERFORM SELECT_VENDOR.
PERFORM DESCRIPTION.
END-OF-SELECTION EVENT *
END-OF-SELECTION.
IF NOT T_EKKO IS INITIAL.
PERFORM FILL_OUTTAB.
ENDIF. " IF NOT T_EKKO...
PERFORM PREPARE_FIELD_CATALOG CHANGING T_FIELDCAT .
CALL SCREEN 100.
CLASS LCL_EVENT_HANDLER DEFINITION
<b>CLASS LCL_EVENT_HANDLER DEFINITION .
PUBLIC SECTION .
METHODS:
HANDLE_HOTSPOT_CLICK
FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW_ID E_COLUMN_ID.
ENDCLASS. " LCL_EVENT_HANDLER</b> DEFINITION
CLASS LCL_EVENT_HANDLER IMPLEMENTATION
CLASS LCL_EVENT_HANDLER IMPLEMENTATION .
*---Handle Double Click
<b> METHOD HANDLE_HOTSPOT_CLICK .
PERFORM GET_CELL_INFO.
SET PARAMETER ID 'BES' FIELD W_VALUE.
CALL TRANSACTION 'ME23N'.
ENDMETHOD. " HANDLE_HOTSPOT_CLICK</b>
ENDCLASS. " LCL_EVENT_HANDLER
*& Module STATUS_0100 OUTPUT
PBO Event
MODULE STATUS_0100 OUTPUT.
IF T_OUTTAB IS INITIAL.
LEAVE PROGRAM.
ENDIF. " IF T_OUTTAB...
SET PF-STATUS 'OOPS'.
SET TITLEBAR 'TIT'.
IF W_GRID IS INITIAL.
CREATE OBJECT W_GRID
EXPORTING
I_SHELLSTYLE = 0
I_LIFETIME =
I_PARENT = CL_GUI_CONTAINER=>SCREEN0
I_APPL_EVENTS =
I_PARENTDBG =
I_APPLOGPARENT =
I_GRAPHICSPARENT =
I_NAME =
I_FCAT_COMPLETE = SPACE
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. " IF SY-SUBRC <> 0
CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME =
IS_VARIANT =
I_SAVE =
I_DEFAULT = 'X'
IS_LAYOUT =
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = T_OUTTAB
IT_FIELDCATALOG = T_FIELDCAT
IT_SORT =
IT_FILTER =
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. " IF SY-SUBRC <> 0.
ENDIF. " IF W_GRID IS INITIAL
CREATE OBJECT EVENT_CLICK.
SET HANDLER EVENT_CLICK->HANDLE_HOTSPOT_CLICK FOR W_GRID.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
PAI Event
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form PREPARE_FIELD_CATALOG
Subroutine to build the Field catalog
<--P_T_FIELDCAT Field Catalog Table
FORM PREPARE_FIELD_CATALOG CHANGING PT_FIELDCAT TYPE LVC_T_FCAT .
DATA LS_FCAT TYPE LVC_S_FCAT.
LS_FCAT-FIELDNAME = 'EKGRP'(011).
LS_FCAT-REF_TABLE = 'EKKO'(002).
LS_FCAT-INTTYPE = 'C'(003).
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
<b> LS_FCAT-FIELDNAME = 'EBELN'(001).
LS_FCAT-REF_TABLE = 'EKKO'(002) .
LS_FCAT-EMPHASIZE = 'C411'(007).
LS_FCAT-INTTYPE = 'C'(003).
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-HOTSPOT = 'X'(004).
APPEND LS_FCAT TO PT_FIELDCAT .
CLEAR LS_FCAT .</b>
LS_FCAT-FIELDNAME = 'ERNAM'(006) .
LS_FCAT-REF_TABLE = 'EKKO'(002) .
LS_FCAT-OUTPUTLEN = '15' .
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'BEDAT'(013).
LS_FCAT-REF_TABLE = 'EKKO'(002).
LS_FCAT-INTTYPE = 'C'(003).
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'LIFNR'(009).
LS_FCAT-REF_TABLE = 'EKKO'(002).
LS_FCAT-INTTYPE = 'C'(003).
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'NAME1'(015).
LS_FCAT-REF_TABLE = 'LFA1'(016).
LS_FCAT-INTTYPE = 'C'(003).
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'UDATE'(021).
LS_FCAT-REF_TABLE = 'CDHDR'(019).
LS_FCAT-INTTYPE = 'C'(003).
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'USERNAME'(018).
LS_FCAT-REF_TABLE = 'CDHDR'(019).
LS_FCAT-INTTYPE = 'C'(003).
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'DDTEXT'(023).
LS_FCAT-REF_TABLE = 'DD04T'(024).
LS_FCAT-INTTYPE = 'C'(003).
LS_FCAT-OUTPUTLEN = '15'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'VALUE_OLD'(029).
LS_FCAT-REF_TABLE = 'CDPOS'(027).
LS_FCAT-INTTYPE = 'C'(003).
LS_FCAT-OUTPUTLEN = '12'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'VALUE_NEW'(026).
LS_FCAT-REF_TABLE = 'CDPOS'(027).
LS_FCAT-INTTYPE = 'C'(003).
LS_FCAT-OUTPUTLEN = '12'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
ENDFORM. " PREPARE_FIELD_CATALOG
*& Form SELECT_PO
Subroutine to select all the Purchase Orders
There are no interface parameters to be passed to this subroutine.
FORM SELECT_PO .
SELECT EBELN " Purchasing Document Number
ERNAM " Name of Person who Created
" the Object
LIFNR " Vendor's account number
EKGRP " Purchasing group
BEDAT " Purchasing Document Date
FROM EKKO
INTO TABLE T_EBELN
WHERE EBELN IN S_EBELN
AND BEDAT IN S_BEDAT.
IF SY-SUBRC NE 0.
MESSAGE S401(M8).
ENDIF. " IF SY-SUBRC NE 0
ENDFORM. " SELECT_PO
*& Form SELECT_OBJ_ID
Subroutine to select Object ID
There are no interface parameters to be passed to this subroutine.
FORM SELECT_OBJ_ID .
IF NOT T_EBELN IS INITIAL.
SELECT OBJECTCLAS " Object Class
OBJECTID " Object value
CHANGENR " Document change number
USERNAME " User name
UDATE " Creation date
FROM CDHDR
INTO TABLE T_CDHDR
FOR ALL ENTRIES IN T_EBELN
WHERE OBJECTID EQ T_EBELN-EBELN
AND UDATE IN S_UDATE
AND TCODE IN ('ME21N','ME22N','ME23N').
IF SY-SUBRC NE 0.
MESSAGE S833(M8) WITH 'Header Not Found'(031).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_EBELN IS INITIAL
ENDFORM. " SELECT_OBJ_ID
*& Form SELECT_CHANGED_VALUE
Subroutine to select Changed Values
There are no interface parameters to be passed to this subroutine.
FORM SELECT_CHANGED_VALUE .
IF NOT T_CDHDR IS INITIAL.
SELECT OBJECTCLAS " Object class
OBJECTID " Object value
CHANGENR " Document change number
TABNAME " Table Name
FNAME " Field Name
VALUE_NEW " New contents of changed field
VALUE_OLD " Old contents of changed field
FROM CDPOS
INTO TABLE T_CDPOS
FOR ALL ENTRIES IN T_CDHDR
WHERE OBJECTCLAS EQ T_CDHDR-OBJECTCLAS
AND OBJECTID EQ T_CDHDR-OBJECTID
AND CHANGENR EQ T_CDHDR-CHANGENR.
IF SY-SUBRC NE 0.
MESSAGE S833(M8) WITH 'Item Not Found'(032).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_CDHDR IS INITIAL
ENDFORM. " SELECT_CHANGED_VALUE
*& Form SELECT_PUR_DOC
Subroutine to select Purchase Order Details
There are no interface parameters to be passed to this subroutine.
FORM SELECT_PUR_DOC .
IF NOT T_CDPOS IS INITIAL.
SORT T_EBELN BY EBELN.
LOOP AT T_CDPOS INTO FS_CDPOS.
READ TABLE T_EBELN INTO FS_EBELN WITH KEY EBELN =
FS_CDPOS-OBJECTID BINARY SEARCH.
IF SY-SUBRC NE 0.
DELETE TABLE T_EBELN FROM FS_EBELN.
ENDIF. " IF SY-SUBRC NE 0.
ENDLOOP. " LOOP AT T_CDPOS...
LOOP AT T_EBELN INTO FS_EBELN.
MOVE FS_EBELN-EBELN TO FS_EKKO-EBELN.
MOVE FS_EBELN-ERNAM TO FS_EKKO-ERNAM.
MOVE FS_EBELN-LIFNR TO FS_EKKO-LIFNR.
MOVE FS_EBELN-EKGRP TO FS_EKKO-EKGRP.
MOVE FS_EBELN-BEDAT TO FS_EKKO-BEDAT.
APPEND FS_EKKO TO T_EKKO.
ENDLOOP. " LOOP AT T_EBELN...
ENDIF. " IF NOT T_CDPOS IS INITIAL
ENDFORM. " SELECT_PUR_DOC
*& Form SELECT_VENDOR
Subroutine to select Vendor details
There are no interface parameters to be passed to this subroutine.
FORM SELECT_VENDOR .
IF NOT T_EKKO IS INITIAL.
SELECT LIFNR " Account Number of Vendor or
" Creditor
NAME1 " Name 1
FROM LFA1
INTO TABLE T_LFA1
FOR ALL ENTRIES IN T_EKKO
WHERE LIFNR EQ T_EKKO-LIFNR.
IF SY-SUBRC NE 0.
MESSAGE S002(M8) WITH 'Master Details'(033).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_EKKO IS INITIAL
ENDFORM. " SELECT_VENDOR
*& Form DESCRIPTION
Subroutine to get the description
There are no interface parameters to be passed to this subroutine.
FORM DESCRIPTION .
IF NOT T_CDPOS IS INITIAL.
SELECT TABNAME " Table Name
FIELDNAME " Field Name
ROLLNAME " Data element
FROM DD03L
INTO TABLE T_DATAELE
FOR ALL ENTRIES IN T_CDPOS
WHERE TABNAME EQ T_CDPOS-TABNAME
AND FIELDNAME EQ T_CDPOS-FNAME.
IF NOT T_DATAELE IS INITIAL.
SELECT ROLLNAME " Data element
DDTEXT " Short Text Describing R/3
" Repository Objects
FROM DD04T
INTO TABLE T_TEXT
FOR ALL ENTRIES IN T_DATAELE
WHERE ROLLNAME EQ T_DATAELE-ROLLNAME
AND DDLANGUAGE EQ 'EN'.
IF SY-SUBRC NE 0.
EXIT.
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_DATAELE IS INITIAL.
ENDIF. " IF NOT T_CDPOS IS INITIAL.
ENDFORM. " DESCRIPTION
*& Form FILL_OUTTAB
Subroutine to populate the Outtab
There are no interface parameters to be passed to this subroutine.
FORM FILL_OUTTAB .
SORT T_CDHDR BY OBJECTID.
SORT T_CDPOS BY OBJECTCLAS OBJECTID CHANGENR.
SORT T_LFA1 BY LIFNR.
SORT T_DATAELE BY TABNAME FIELDNAME.
SORT T_TEXT BY ROLLNAME.
LOOP AT T_EKKO INTO FS_EKKO.
MOVE FS_EKKO-EBELN TO FS_OUTTAB-EBELN.
MOVE FS_EKKO-ERNAM TO FS_OUTTAB-ERNAM.
MOVE FS_EKKO-LIFNR TO FS_OUTTAB-LIFNR.
MOVE FS_EKKO-EKGRP TO FS_OUTTAB-EKGRP.
MOVE FS_EKKO-BEDAT TO FS_OUTTAB-BEDAT.
READ TABLE T_CDHDR INTO FS_CDHDR WITH KEY OBJECTID = FS_EKKO-EBELN
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_CDHDR-USERNAME TO FS_OUTTAB-USERNAME.
MOVE FS_CDHDR-UDATE TO FS_OUTTAB-UDATE.
READ TABLE T_CDPOS INTO FS_CDPOS WITH KEY
OBJECTCLAS = FS_CDHDR-OBJECTCLAS
OBJECTID = FS_CDHDR-OBJECTID
CHANGENR = FS_CDHDR-CHANGENR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_CDPOS-VALUE_OLD TO FS_OUTTAB-VALUE_OLD.
MOVE FS_CDPOS-VALUE_NEW TO FS_OUTTAB-VALUE_NEW.
READ TABLE T_DATAELE INTO FS_DATAELE WITH KEY
TABNAME = FS_CDPOS-TABNAME
FIELDNAME = FS_CDPOS-FNAME
BINARY SEARCH.
IF SY-SUBRC EQ 0.
READ TABLE T_TEXT INTO FS_TEXT WITH KEY
ROLLNAME = FS_DATAELE-ROLLNAME
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_TEXT-DDTEXT TO FS_OUTTAB-DDTEXT.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
READ TABLE T_LFA1 INTO FS_LFA1 WITH KEY LIFNR = FS_EKKO-LIFNR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_LFA1-NAME1 TO FS_OUTTAB-NAME1.
ENDIF. " IF SY-SUBRC EQ 0.
APPEND FS_OUTTAB TO T_OUTTAB.
ENDLOOP. " LOOP AT T_EKKO...
ENDFORM. " FILL_OUTTAB
*& Form GET_CELL_INFO
Subroutine to get the Cell Information
--> W_VALUE Holds the value of Hotspot clicked
FORM GET_CELL_INFO .
CALL METHOD W_GRID->GET_CURRENT_CELL
IMPORTING
E_ROW =
E_VALUE = W_VALUE
E_COL =
ES_ROW_ID =
ES_COL_ID =
ES_ROW_NO =
ENDFORM. " GET_CELL_INFO
*& Form VALIDATE_PD_NUM
Subroutine to validate Purchase Document Number
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_PD_NUM .
IF NOT S_EBELN[] IS INITIAL.
SELECT EBELN " Purchase Document Number
FROM EKKO
INTO W_EBELN
UP TO 1 ROWS
WHERE EBELN IN S_EBELN.
ENDSELECT.
IF SY-SUBRC NE 0.
MESSAGE E717(M8).
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_EBELN[]...
CLEAR SSCRFIELDS-UCOMM.
ENDFORM. " VALIDATE_PD_NUM
*& Form VALIDATE_VEN_NUM
Subroutine to validate Vendor Number
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_VEN_NUM .
IF NOT S_LIFNR[] IS INITIAL.
SELECT LIFNR " Vendor Number
FROM LFA1
INTO W_LIFNR
UP TO 1 ROWS
WHERE LIFNR IN S_LIFNR.
ENDSELECT.
IF SY-SUBRC NE 0.
MESSAGE E002(M8) WITH W_SPACE.
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_LIFNR[]...
CLEAR SSCRFIELDS-UCOMM.
ENDFORM. " VALIDATE_VEN_NUM
*& Form VALIDATE_PUR_GRP
Subroutine to validate the Purchase Group
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_PUR_GRP .
IF NOT S_EKGRP[] IS INITIAL.
SELECT EKGRP " Purchase Group
FROM T024
INTO W_EKGRP
UP TO 1 ROWS
WHERE EKGRP IN S_EKGRP.
ENDSELECT.
IF SY-SUBRC NE 0.
MESSAGE E622(M8) WITH W_SPACE.
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_EKFRP[]...
CLEAR SSCRFIELDS-UCOMM.
ENDFORM. " VALIDATE_PUR_GRP
Similar Messages
-
Navigating from ME49 to ME47 tcode 'General object service' icon missing
Hi All ,
We have scenario wherein we are navigating from transaction ME49 to ME47 .
In ME47 'General Object Services' icon is missing .
When we direcly go to ME47 , it is working fine .
If any of you come across this issue , Pl.provide inputs .
Thanks in Advance,1.5-3 minute boot up as opposed to 15-20 seconds
And
why it takes a long time to load a lot of things.
I have restored this
from a time machine partition.
TimeMachine is only a backup and restore, it won't fix issues in software and according to your information, doesn't even optimize the restore for best performance on boot hard drives.
What you need to do to regain your speed is to understand how your machine works
Why is my computer slow?
Fix any and all issues in software following this list of fixes
..Step by Step to fix your Mac
Then follow this defrag method I've outlined
How to safely defrag a Mac's hard drive
Most commonly used backup methods
There shouldn't be need to reinstall OS X fresh unless your having file structure issues which if they are should appear when in the Steps, which then a zero erase and install will cure as well as any bad sector issues, the defrag step wouldn't be necessarry on a freshly installed system obviously as the files are written all together, not in portions all over the drive.
Hope this assists. -
Hi all,
On executing my program i get ALV with names of reports displayed. My requirement is that on clicking on the report name, I should be directed to SE38, where the corresponding report is opened in 'Change' mode.
Please suggest how I can achieve this.REPORT zvishal_alv.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_data,
sr_no TYPE i,
rep_name TYPE string,
END OF ty_data.
DATA: itab TYPE TABLE OF ty_data,
wa TYPE ty_data,
it_fcat TYPE SLIS_T_FIELDCAT_ALV,
wa_fcat LIKE LINE OF it_fcat,
bdcdata_tab TYPE TABLE OF bdcdata,
opt TYPE ctu_params,
bdcdata_wa TYPE bdcdata,
it_evt TYPE slis_t_event,
wa_evt LIKE LINE OF it_evt.
wa_evt-form = 'USER_COMMAND'.
wa_evt-name = 'USER_COMMAND'.
APPEND wa_evt TO it_evt.
*fill test data
wa-sr_no = '1'.
wa-rep_name = 'ZTEST1'.
APPEND wa TO itab.
wa-sr_no = '2'.
wa-rep_name = 'ZTEST2'.
APPEND wa TO itab.
wa-sr_no = '3'.
wa-rep_name = 'ZTEST3'.
APPEND wa TO itab.
wa_fcat-col_pos = '1'.
wa_fcat-fieldname = 'SR_NO'.
wa_fcat-tabname = 'ITAB'.
wa_fcat-seltext_m = 'Serial no'.
append wa_fcat to it_fcat.
wa_fcat-col_pos = '2'.
wa_fcat-fieldname = 'REP_NAME'.
wa_fcat-tabname = 'ITAB'.
wa_fcat-seltext_m = 'Report Name'.
append wa_fcat to it_fcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_user_command = 'USER_COMMAND'
IT_FIELDCAT = it_fcat
it_events = it_evt
TABLES
t_outtab = itab
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.
FORM user_command USING v_ucomm LIKE sy-ucomm
wa_selrow TYPE slis_selfield.
CASE v_ucomm.
WHEN '&IC1'.
READ TABLE itab INTO wa INDEX wa_selrow-tabindex.
CLEAR bdcdata_wa.
bdcdata_wa-program = 'SAPLWBABAP'.
bdcdata_wa-dynpro = '0100'.
bdcdata_wa-dynbegin = 'X'.
bdcdata_wa-fnam = 'RS38M-PROGRAMM'.
bdcdata_wa-fval = wa-rep_name.
APPEND bdcdata_wa TO bdcdata_tab.
*CLEAR bdcdata_wa.
*bdcdata_wa-fnam = 'PROGRAMM'.
*bdcdata_wa-fval = wa-rep_name.
*APPEND bdcdata_wa TO bdcdata_tab.
opt-dismode = 'E'.
opt-defsize = 'X'.
CALL TRANSACTION 'SE38' USING bdcdata_tab OPTIONS FROM opt.
ENDCASE.
ENDFORM.
activate this code and test
Thanks
Vishal kapoor -
Downloading records in in excel sheet from ALV.
Hi,
I am downloading Records from ALV GRID DIsplay to Excel sheet but i am unable to get all records that are displayed in ALV report.
I am getting only 73 records if i have only 180
Any inputs please for correctine the error
Regards
Rasheed.hi
you can follow these stapes and get ur work done
go to List > select Export > Spreadsheet or just click the excel icon from the tool bar.This would download the data to excel.
hope this helps
regards
Aakash Banga -
Call tcode from alv report and passing group of values
hi all .
i want to call tcode from alv report and passing an internal table or group of values to a selection option of that t code ? how
ex. passing group of GL to fbl3n and display the detials of all .
thank youDear,
You have done a small mistake
--> rspar_line-option = 'EQ'.
rspar_line-HIGH = PDATE-HIGH.
u r passing "high" value and in "option u r passing "EQ" so how it will work!!!
So if u r passing only 1 date or more dates like 01.01.2010 , 15.02.2010 , 10.03.2010 then pass
rspar_line-selname = 'SO_BUDAT'.
rspar_line-kind = 'S'.
rspar_line-sign = 'I'.
rspar_line-option = 'EQ'.
rspar_line-LOW = PDATE-HIGH.
APPEND rspar_line TO rspar_tab.
or if u r passing low & high date means in range like 01.01.2010 to 30.01.2010, then pass
rspar_line-selname = 'SO_BUDAT'.
rspar_line-kind = 'S'.
rspar_line-sign = 'I'.
rspar_line-option = 'BT''.
rspar_line-LOW = PDATE-LOW.
rspar_line-HIGH = PDATE-HIGH.
APPEND rspar_line TO rspar_tab.
try above code , hope it helps...
i think u cannot use "call transaction using bdcdata" in ur case bcoz as u said in ur 1st post u want to display the details of all but still if u want to use then u should pass all parameters in loop.
PROGRAM
DYNPRO
DYNBEGIN
FNAM
FVAL
ex:-
LOOP AT GT_TEMP INTO GS_TEMP.
CLEAR bdcdata_wa.
bdcdata_PROGRAM = 'SAPXXXX'.
bdcdata_DYNPRO = '1000'.
bdcdata_DYNBEGIN = 'X'.
bdcdata_wa-fnam = '''.
bdcdata_wa-fval = ''.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_PROGRAM = ''.
bdcdata_DYNPRO = ''.
bdcdata_DYNBEGIN = ''.
bdcdata_wa-fnam = 'SD_SAKNR'.
bdcdata_wa-fval = GS_TEMP-GLACCOUNT.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_PROGRAM = ''.
bdcdata_DYNPRO = ''.
bdcdata_DYNBEGIN = ''.
bdcdata_wa-fnam = 'BDC_OKCODE'.
bdcdata_wa-fval = 'XXX'.
APPEND bdcdata_wa TO bdcdata_tab.
ENDLOOP.
try above code if u r using call transaction...
Edited by: mihir6666 on Jul 9, 2011 3:10 PM
Edited by: mihir6666 on Jul 9, 2011 3:11 PM
Edited by: mihir6666 on Jul 9, 2011 3:13 PM -
Download only selected record from ALV
Hi
I want to download only selected records from ALV output with button.
i hav to fix the button on ALV screen using &ZDL whenever user presses the button record should be downloaded.
Pl with coding
its very very urgent.Hi ,
i dont have the exact code which suits to your requirement
but declare the internal table
like
data: begin of itab occurs 0,
check type c,
fields
end of itab.
while filling the field catalog
fieldcatalog-checkbox = 'X'
for this check field.
and display the grid
now write this subroutine
*& Form USER_COMMAND
Called from within the ALV processes. Currently, '&IC1' is used
to process the hotspot and display the document 'picked' by the
user.
PV_UCOMM contains the sy-ucomm from ALV
SELFIELD is a structure that contains all the data required to
process a user selection. The following is an example
of the SELFIELD structure and sample values:
FORM USER_COMMAND USING PV_UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
CASE PV_UCOMM.
WHEN '&IC1'.
loop at itab where check = 'X'.
append all these records to another internal table itab1
endloop.
call function gui_download.
pass the internal table itab1 in the tables statement
and also you have to give the file path that may be static or dynamic
if dynamic you have to call the function module
f4_filename
and get the filename and pass the same value to gui_download
that will be download to the above said path
endcase.
end form.
reward points if helpful,
thanks & regards,
venkatesh -
Taking download into excel from ALV Grid - header is printing in two lines
Hi All,
I have a scenario where I am taking the download from ALV grid to an excel sheet. Now the header of the ALV (column names) is appearing in two lines in the downloaded excel sheet while items (records of the ALV table) are getting displayed in a single line.
This download is taken from the standard download to local file (spreadsheet) button provided by SAP for ALVs.
I am using function module "Reuse_alv_grid_display" for the purpose.
Can somebody provide an idea how I can avoid the header printing in two lines and keep the length as it is.
Thanks in Advance,
ChandanHi..
1. Pass header name in internal table appned first line.
2. after that pass u r data .
3. Use FM. WS_DOWNLOAD
Salil ......
Edited by: salil chavan on Nov 26, 2008 11:07 AM -
Downloads from ALV GRID-Text conversion to dates in EXCEL
When downloading table displays of data from ALV-GRID for excel spreadsheet, we end of with files that have a header and various line ifnromation. IF we manually clear up the display, then we can have the individicual column headers used and force them to text but if we just call the file up as an EXCEL spreadsheet, some part numbers such 12-3465 appear in Excel as Dec-65.
The following is an example of the record (but it is word wrapped within this display limit). In actuality, the verbage enclosed with the <b> represent the start of the lines that have actual display data running out about 90 characters.
Suggestions on how to make the download immediately correct in Excel direct from SAP ALV-GRID without cleaning out the heading lines and manually forcing the affected columns to TEXT format?
thanks
<b>03/02/2007</b> Dynamic List Display 1
<b>Materials-Inforecord Details Report</b>
<b>Purchasing Org: ILMO</b>
<b>Report Run Date:03/02/2007</b> <b>Report Time:14:31:16</b>
<b>Plnt Mat Grp Vendor Name 1 Material Material</b> description Vendor Cat Mfr MPN PC Item Chg. OUn Eq to BUn Net price Per OPUn Inforecord PGr Mv Avg per ValCl
<b>0042 04 106070 BURROWS COMPANY</b> 184110 Glv Exam Ltx Non Ster 02-5001 TILLOTSON 02-5001 CA 2,000 EA 93.40 1 CA 5300006999 999 93.40 2,000 6438there are different options to export to excel which all behave differently, if you go for the menu ->export it differs from the export button from the alv buttonbar.
try the different export to excel options perhaps there is one that behaves the way you want
kind regards
arthur de smidt -
Navigate from ALV list to normal Report
Hi ,
I am working on a ALV report where it will display the list of materials and by selecting these materials from the list and process them using a custom button , it should take me to the normal report which give the log from that material processing.
Any ideas navigating from AVL to normal report in the same program would be appriciated.
Thank you.Hi,
if you use drill down you have to define header print twice:
TOP-OF-PAGE.
perform 050print_header .
END-OF-PAGE.
TOP-OF-PAGE DURING LINE-SELECTION.
perform 050print_header .
END-OF-PAGE. -
Issue with Data download to excel from ALV
Hi,
I am trying to download data to excel from ALV.
The number of records are 26000.
When I am trying to download I am getting an error displaying a pop up saying that
problems came up in the following areas during the load
TABLE
The log displayed is not clear.
I need to know the limitations while downloading to excel... I tried in SDN but of no use. I am using office 2007.
What is the max downloading limit(MB)
What must be the Length of line that can be downloaded.
RegardsHi ,
First check whether your ALV grid OUTPUT is Consistent or Not .
if there are any inconsistency then you need to rectify that .
for Checking COnsistency / Inconsistency .do following steps
1) execute ALV report
2) Press Shift+Mouse Right Button (Twice) in blank area of report
3) you will get result whether ALV is good or not .
regards
Deepak. -
Transfer data from ALV to Z table
Hi,
I need to confirm the exact procedure to transfer data from ALV into z table.I am entering few values at runtime in the ALV & need to populate the z table with the same.
I created a z table,it has been assigned a internal table & work area.A loop is there on the internal table passed to fieldcatalog.
LOOP AT GIT_EKPO INTO GS_EKPO.
LS_ZPS005-EBELN = GS_EKPO-EBELN.
LS_ZPS005-EBELP = GS_EKPO-EBELP.
LS_ZPS005-ERECDAT = GS_EKPO-ERDAT. "this field is not passing value into z table
LS_ZPS005-LINEID = SY-TABIX.
LS_ZPS005-POQTY = GS_EKPO-POQTY.
LS_ZPS005-EREQTY = GS_EKPO-EREQTY. "this field is not passing value into z table
ENDLOOP.
INSERT INTO ZPS005 VALUES LS_ZPS005.
When I assign the values from Internal table into internal table of z table,the values in fields populated at runtime does not come.
Please help me with your suggestions on the same.
Thanks.Hi,
I tried the procedure,but do I need to include this before method set_table_for_first_display?
You can have a look at the whole code.Please let me know of a possible solution.Looking forward to an early reply.
Thanks.
TABLES: EKKO,
EKPO,
ZPS005.
INITIALIZATION.
PERFORM CREATE_FIELD_CATLOG.
Types Declaration *
*Structure for EKPO table
TYPES: BEGIN OF TYPE_EKPO,
EBELN TYPE EKPO-EBELN, "PURCHSE ORDER NUMBER
EBELP TYPE EKPO-EBELP, "Item Number of Purchasing Document
POQTY TYPE EKPO-MENGE, "Purchase Order Quantity
ERDAT TYPE SY-DATUM, "Date on Which Record Was Created
LINEID TYPE ZPS005-LINEID, "Unique identification of document line
EREQTY TYPE ZPS005-EREQTY, "Erection Quantity
END OF TYPE_EKPO.
Data *
Data Declaration for Internal Table & Work Area *
*INTERNAL TABLE FOR EKPO TABLE
DATA:LIT_EKPO TYPE TABLE OF EKPO,
LS_EKPO TYPE EKPO.
*SECOND INTERNAL TABLE FOR EKPO TABLE
DATA: GIT_EKPO TYPE TABLE OF TYPE_EKPO.
DATA: GS_EKPO TYPE TYPE_EKPO.
*INTERNAL TABLE FOR FIELD CATALOG
DATA: LIT_FIELDCAT TYPE lvc_t_fcat,
LS_FIELDCAT LIKE LINE OF LIT_FIELDCAT. "WORK AREA FOR FIELD CATALOG
*INTERNAL TABLE FOR Z TABLE ZPS005
DATA: LIT_ZPS005 TYPE TABLE OF ZPS005,
LS_ZPS005 TYPE ZPS005.
ALV GRID Data Declaration *
DATA: V_CONTAINER TYPE REF TO cl_gui_custom_CONTAINER.
data: grid TYPE REF TO cl_gui_alv_grid.
data: ok_code type sy-ucomm.
DATA: V_LAYOUT TYPE lvc_s_layo. " FOR LAYOUT
DATA: V_LINE TYPE I,
LINEID TYPE I.
DATA: V_INDEX TYPE SY-TABIX.
PARAMETER *
parameter : p_ebeln like ekko-ebeln.
START OF SELECTION *
START-OF-SELECTION.
SELECTION OF DATA *
CALL FUNCTION 'ME_PURCHASE_DOCUMENT_DATA_READ'
EXPORTING
I_EBELN = P_EBELN
I_TCODE = 'ME23'
I_NO_COMMIT = ' '
I_TRTYP = 'A'
I_NO_MESSAGING =
I_NO_MESSAGE_REQ =
I_NO_AUTHORITY_CHECK =
I_VORGA =
IMPORTING
E_EKKO =
TABLES
T_EKPO = LIT_EKPO
T_EKET =
T_EKKN =
T_KOMV =
EXCEPTIONS
NO_EBLNR = 1
EBLNR_NOT_FOUND = 2
NO_TCODE = 3
TCODE_NOT_ALLOWED = 4
NO_TRTYP = 5
INVALID_CALL_OF_FB = 6
OTHERS = 7
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT LIT_EKPO INTO LS_EKPO.
MOVE : LS_EKPO-EBELN TO GS_EKPO-EBELN,
LS_EKPO-EBELP TO GS_EKPO-EBELP,
LS_EKPO-MENGE TO GS_EKPO-POQTY.
APPEND GS_EKPO TO GIT_EKPO.
ENDLOOP.
End-of-selection.
perform field_catalog.
call screen 100.
END-OF-SELECTION *
MODULES FOR ALV DISPLAY *
*& Module STATUS_0100 OUTPUT
text
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'PF-STAT'.
SET TITLEBAR 'TITLE'.
ENDMODULE. " STATUS_0100 OUTPUT
**& Module USER_COMMAND_0100 INPUT
text
MODULE USER_COMMAND_0100 INPUT.
CASE OK_CODE.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'SWITCH'.
PERFORM switch_edit_mode.
WHEN 'SAVE'.
PERFORM FILL_TABLE.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
**& Module layout_0100 OUTPUT
text
MODULE layout_0100 OUTPUT.
V_LAYOUT-grid_title = 'Purchase Order Erection Details'.
ENDMODULE. " layout_0100 OUTPUT
**& Module data_retrivaL OUTPUT
text
MODULE data_retrivaL OUTPUT.
IF V_CONTAINER IS INITIAL.
CREATE OBJECT V_CONTAINER
EXPORTING container_name = 'GRID'.
CREATE OBJECT grid
EXPORTING i_parent = V_CONTAINER.
ENDIF.
CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = V_LAYOUT
CHANGING
IT_OUTTAB = GIT_EKPO
IT_FIELDCATALOG = LIT_FIELDCAT
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
others = 4.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. " data_retrivaL OUTPUT
*& Module field_catalog OUTPUT
text
FORM field_catalog.
CLEAR LS_fieldcat.
LS_fieldcat-fieldname = 'EBELN'.
LS_fieldcat-ref_table = 'GIT_EKPO'.
LS_FIELDCAT-coltext = 'PURCHSE ORDER NUMBER'.
LS_FIELDCAT-col_pos = 0.
LS_FIELDCAT-EDIT = ' '.
ls_FIELDCAT-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
APPEND LS_fieldcat TO LIT_fieldcat.
CLEAR LS_fieldcat.
LS_fieldcat-fieldname = 'EBELP'.
LS_fieldcat-ref_table = 'GIT_EKPO'.
LS_FIELDCAT-coltext = 'ITEM NUMBER'.
LS_FIELDCAT-col_pos = 1.
LS_FIELDCAT-EDIT = ' '.
ls_FIELDCAT-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
APPEND LS_fieldcat TO LIT_fieldcat.
CLEAR LS_fieldcat.
LS_fieldcat-fieldname = 'POQTY'.
LS_fieldcat-ref_table = 'GIT_EKPO'.
LS_FIELDCAT-coltext = 'PURCHASE ORDER QUANTITY'.
LS_FIELDCAT-col_pos = 2.
LS_FIELDCAT-EDIT = ' '.
ls_FIELDCAT-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
APPEND LS_fieldcat TO LIT_fieldcat.
CLEAR LS_fieldcat.
LS_fieldcat-fieldname = 'ERDAT'.
LS_fieldcat-ref_table = 'GIT_EKPO'.
LS_FIELDCAT-coltext = 'DATE OF ERECTION'.
LS_FIELDCAT-col_pos = 3.
LS_FIELDCAT-EDIT = 'X'.
ls_fieldcat-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
APPEND LS_fieldcat TO LIT_fieldcat.
CLEAR LS_fieldcat.
LS_fieldcat-fieldname = 'EREQTY'.
LS_fieldcat-ref_table = 'GIT_EKPO'.
LS_FIELDCAT-coltext = 'ERECTION QUANTITY'.
LS_FIELDCAT-col_pos = 4.
LS_FIELDCAT-EDIT = 'X'.
ls_fieldcat-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
APPEND LS_fieldcat TO LIT_fieldcat.
ENDFORM. " field_catalog OUTPUT
*& Form SWITCH_EDIT_MODE
text
--> p1 text
<-- p2 text
*FORM switch_edit_mode.
IF GRID->is_ready_for_input( ) eq 0.
set edit enabled cells ready for input
CALL METHOD GRID->set_ready_for_input
EXPORTING
i_ready_for_input = 1.
ELSE.
lock edit enabled cells against input
CALL METHOD GRID->set_ready_for_input
EXPORTING
i_ready_for_input = 0.
ENDIF.
*ENDFORM. " SWITCH_EDIT_MODE
*& Form FILL_TABLE
text
--> p1 text
<-- p2 text
FORM FILL_TABLE .
LOOP AT GIT_EKPO INTO GS_EKPO.
LS_ZPS005-EBELN = GS_EKPO-EBELN.
LS_ZPS005-EBELP = GS_EKPO-EBELP.
LS_ZPS005-POQTY = GS_EKPO-POQTY.
LS_ZPS005-ERECDAT = GS_EKPO-ERDAT.
LS_ZPS005-EREQTY = GS_EKPO-EREQTY.
ENDLOOP.
MODIFY ZPS005 FROM LS_ZPS005.
ENDFORM. " FILL_TABLE -
Leading spaces in excel file from ALV
Hi Guys,
once I export a record from ALV to excel. Some values I think all values that are TYPE I. How can I remove this leading spaces.
Ex: ' 100'
something like that.. so if you dont expand the column with you wont see the value 100. I checked the internal table being passed to ALV. It doesnt have leading spaces also in the ALV display. there is no leading spaces. Is there something to to with column width optimization? I need this to optimize the column headers. Thanks in Advance!
Regards,
Michael NacionalesThere is one table CRVS_B with field SFHNR, while creating PRTS I need this field, so I do like this:
select max( SFHNR ) into l_sfhnr
from CRVS_B.
add var to l_sfhnr.
So for example l_sfhnr is equal to 000000000000000010, then after add, it gives me 11, and surprisingly in database 11 is placing position in such a way that last char is empty so it is not 11 but 00000000000000011 ( 17 chars ) as after 11 one empty space, and when it comes next time:
select max( SFHNR ) into l_sfhnr
from CRVS_B.
add var to l_sfhnr.
the value of l_sfhnr is still 000000000000000010......
else try this
Hi
Field_catalog:
Field catalog with field descriptions
2.7.1. Description
Field catalog containing descriptions of the list output fields (usually a subset of the internal output table fields). A field catalog is required for every ALV list output.
The field catalog for the output table is built-up in the caller's coding. The build-up can be completely or partially automated by calling the REUSE_ALV_FIELDCATALOG_MERGE module
See also the documentation of the function module REUSE_ALV_FIELDCATALOG_MERGE.
The minimal field catalog is documented under 'default'. The caller can use the other optional parameters to assign output attributes to a field which differ from the default.
A field catalog need not be built-up and passed explicitly only under the following conditions:
The internal table to be output has the same structure as a Data Dictionary structure which is referred to in the internal table declaration using LIKE or INCLUDE STRUCTURE.
all fields in this structure are to be output
the structure name is passed to ALV in the parameter I_STRUCTURE_NAME.
See also the documentation of the IMPORTING paramter I_STRUCTURE_NAME.
Positioning
row_pos (row position)
value set: 0, 1 - 3
Only relevant if the list output is to be multi-line (two or three lines) by default.
A multi-line list can also be defined by the user interactively if the default list is one-line.
The parameter specifies the relative output line of the column in a multi-line list.
col_pos (column position)
value set: 0, 1 - 60
only relevant when the default relative column positions differ from the field catalog field sequence. The parameter specifies the relative column position of the field in the list output. The column order can be changed interactively by the user. If this parameter is initial for all field catalog entries, columns appear in the field catalog field sequence.
Identification
fieldname (field name)
value set: internal output table field name (required parameter)
Name of the internal output table field which is described by this field catalog entry
tabname (internal output table)
value set: SPACE, internal output table name
This parameter is used in 'manual' field catalog build-up only for hierarchical-sequential lists.
Name of the internal output table which contains the field FIELDCAT-FIELDNAME.
Data Dictionary reference
ref_fieldname (reference field name)
value set: SPACE, Data Dictionary field name
Name of the Data Dictionary field referred to.
This parameter is only used when the internal output table field described by the current field catalog entry has a reference to the Data Dictionary (not a program field), and the field name in the internal output table is different from the name of the field in the Data Dictionary. If the field names are identical, naming the Data Dictionary structure or table in the FIELDCAT-REF_TABNAME parameter is sufficient.
ref_tabname (reference table/structure field name)
value set: SPACE, name of a Data Dictionary structure or table
Structure or table name of the referred Data Dictionary field.
This parameter is only used when the internal output table field described by the current field catalog entry has a Data Dictionary reference (not a program field).
Reference to fields with currency/measurement unit
Each internal output table sum or quantity field whose decimal places are to be formatted appropriately for the unit in the list must follow the convention:
the field is of data type QUAN or CURR (internal type P) (the field must really have this physical data type. Overwriting the physical data type with the parameter FIELDCAT-DATATYPE has no effect)
There is a field in the internal output table which contains the associated unit.
There is also an entry in the field catalog for the unit field.
(If the unit is not to appear as a column in the list, and cannot be interactively displayed as a column, e.g. because it is always unambiguous and is therefore explicitly output by the caller in the list header, the field catalog units field entry can take the parameter FIELDCAT-TECH = 'X'.
The association of a value field to a unit affects the output as follows:
appropriate decimal places display for the unit
an initialized field with a link to a non-initial unit is output as '0' for the unit (if FIELDCAT-NO_ZERO is initial). When this field is summed, this unit affects whether the units are homogeneous.
an initialized field with a link to an initial unit is output as SPACE. When this field is summed, the unit SPACE does not affect the homogeneity of the units.
When non-initial fields with an initial unit are summed, the unit SPACE is considered to be a unit.
Link to currency unit
cfieldname (currency unit field name)
value set: SPACE, output table field name
Only relevant for amount columns with associated unit.
Name of the internal output table field containing the currency unit associated with the amount field FIELDCAT-FIELDNAME. The field in FIELDCAT-CFIELDNAME must have its own field catalog entry.
ctabname (internal currency unit field output table)
value set: SPACE, output table field name
only relevant for hierarchical-sequential lists
Name of the internal output table containing the FIELDCAT-CFIELDNAME field.
Link to measurement unit
qfieldname (measurement unit field name)
value set: SPACE, output table field name
only relevant for quantity columns with unit link.
Name of the internal output table field containing the measurement unit associated with the quantity field FIELDCAT-FIELDNAME.
The field in FIELDCAT-QFIELDNAME must have its own field catalog entry.
qtabname (internal measurement unit field output table)
value set: SPACE, output table field name
only relevant for hierarchical-sequential lists
Name of the internal output table containing the FIELDCAT-QFIELDNAME field.
Column output options
outputlen (column width)
value set: 0 (initial), n
For fields with a Data Dictionary link this parameter can be left initial.
For fields without a Data Dictionary link (program field) the parameter must be given the value of the desired field list output length (column width).
initial = column width is the output length of the referred Data Dictionary field (domain).
n = column width is n characters
key (key column)
value set: SPACE, 'X' 'X' = kex field (key field output in color)
Key fields can not be interactively hidden. Parameter FIELDCAT-NO_OUT must be left initial.
For exceptions see the documentation of the FIELDCAT-KEY_SEL parameter.
key_sel (hideable key column)
value set: SPACE, 'X'
only relevant when FIELDCAT-KEY = 'X'
Key field which can be hidden interactively.
The key column sequence cannot be changed interactively by the user.
The output is controlled by the FIELDCAT-NO_OUT parameter analogously to non-key fields.
no_out (field in field list)
value set: SPACE, 'X' 'X' = field is not displayed in the current list.
The user can interactively choose the field for output from the field list.
The user can display the contents of these fields at line level using the 'Detail' function.
See also the 'Detail screen' documentation of the parameter IS_LAYOUT.
tech (technical field)
value set: SPACE, 'X' 'X' = technical field
Field cannot be output in the list and cannot be displayed interactively.
Field can only be used in the field catalog (not in IT_SORT, ...).
emphasize (highlight columns in color)
value set: SPACE, 'X' or 'Cxyz' (x:'1'-'9'; y,z: '0'=off '1'=on)
'X' = column is colored with the default column highlight color.
'Cxyz' = column is colored with a coded color:
C: Color (coding must begin with C)
x: color number
y: bold
z: inverse
hotspot (column as hotspot)
value set: SPACE, 'X'
'X' = column cells are output as hotspots
fix_column (fix column)
value set: SPACE, 'X'
Not relevant for block lists (output of several lists consecutively)
'X' = column fixed (does not scroll horizontally)
All columns to be fixed must have this flag, starting from the left. If a column without this flag is output, only the columns to the left of this column are fixed. The user can change the column fixing interactively. See also the documentation of the Layout parameter
IS_LAYOUT-NO_KEYFIX of the IMPORTING paramter IS_LAYOUT.
do_sum (sum over column)
value set: SPACE, 'X' 'X' = a sum is to be calculated over this internal output table field.
This function can also be called by the user interactively.
no_sum (sums forbidden)
value set: SPACE, 'X' 'X' = no sum can be calculated over this field, although the data type of the field would allow summing.
input (column ready for input)
Function not available
Format column contents
icon
value set: SPACE, 'X' 'X' = column contents to be output as an icon.
The caller must consider the printability of icons.
symbol
value set: SPACE, 'X' 'X' = column contents are to be output as a symbol.
The internal output table column must be a valid symbol character.
The caller must consider the printability of symbols.
Symbols can usually be printed, but may not always be output correctly, depending on the printer configuration.
just (justification)
value set: SPACE, 'R', 'L', 'C'
Only relevant for fields of data type CHAR or NUMC
' ' = default justification for this data type
'R' = right-justified output
'L' = left-justified output
'C' = centered output
The justification of the column header always follows the justification of the columns. Independent justification of the column neader is not possible.
lzero (leading zeros)
value set: SPACE, 'X'
Only relevant for fields of data type NUMC
ALV outputs NUMC fields right-justified without leading zeros by default.
'X' = output with leading zeros
Note: If a NUMC field is output left-justified or centered by FIELDCAT-JUST, leading zeros are output. If the output of leading zeros is suppressed by a Data Dictionary reference ALPHA conversion exit, the output is always left-justified.
no_sign (no +/- sign) Only relevant for value fields
value set: SPACE, 'X' 'X' = value output without +/ sign
no_zero (suppress zeros) Only relevant for value fields
value set: SPACE, 'X' 'X' = suppress zeros
edit_mask (field formatting)
value set: SPACE, template
template = see documentation of WRITE formatting option USING EDIT MASK template
The output conversion conv can be made by template = '== conv'.
Texts
The following text parameters should be specified for program fields without a Data Dictionary reference. The texts are taken from the Data Dictionary for fields with a Data Dictionary reference. If this is not desired, the text parameters can also be specified. The Data Dictionary texts are then ignored. If the user changes the column width interactively, the column header text with the appropriate length is always used. The interactive function 'Optimize column width' takes account of both the field contents and the column headers: if all field contents are shorter than the shortest column header, the column width depends on the column header.
The 'long field label' is also used in display variant definition, sort, etc. popups.
seltext_l (long field label)
seltext_m (medium field label)
seltext_s (short field label)
reptext_ddic (header)
analogous to the Data element maintenance 'Header'
The specified text is not necessarily output in the list, an optimum among all texts is sought.
ddictxt (specify text)
value set: SPACE, 'L', 'M', 'S'
You can specify with values 'L', 'M', and 'S', the keyword that should always be used as column header. If the column width changes, no attempt is made in this case to find an appropriate header for the new output width.
Parameters for program fields without Data Dictionary reference
see also 'Text' parameters
datatype (data type)
value set: SPACE, Data Dictionary data type (CHAR, NUMC,...)
Only relevant for fields without Data Dictionary reference
Program field data type
ddic_outputlen (external output length)
value set: 0 (initial), n
Only relevant for fields without Data Dictionary reference whose output is nevertheless to be modified by a conversion exit.
Prerequisites:
FIELDCAT-EDIT_MASK = '==conv'
see also the documentation of the parameter FIELDCAT-EDIT_MASK
FIELDCAT-INTLEN = n
see also the documentation of the parameter FIELDCAT-INTLEN
n = external format field output length
The column width FIELDCAT-OUTPUTLEN need not be the same as the external format output length (FIELDCAT-DDIC_OUTPUTLEN).
intlen (internal output length)
value set: 0 (initial), n
Only relevant for fields without Data Dictionary reference whose output is nevertheless to be modified by a conversion exit.
Prerequisites:
FIELDCAT-EDIT_MASK = '==conv'
see also the documentation of the parameter FIELDCAT-EDIT_MASK
FIELDCAT-DDIC_OUTPUTLEN = n
see also the documentation of the parameter FIELDCAT-DDIC_OUTPUTLEN
n = internal format field output length
rollname (data element)
value set: SPACE, Data Dictionary data element name
F1 help can be provided for a program field without a Data Dictionary reference, or F1 help which differs from the Data Dictionary help can be provided for a field with a Data Dictionary reference, using this parameter.
When F1 help is called for this field, the documentation of the specified data element is displayed.
If the FIELDCAT-ROLLNAME is initial for fields with a Data Dictionary reference, the documentation of the data element of the referred Data Dictionary field is output.
Others
sp_group (field group key)
value set: SPACE, CHAR(1)
Field group key.
Keys are assigned to group names in the IT_SPECIAL_GROUPS parameter (see also the documentation of the parameter IT_SPECIAL_GROUPS).
When such an assignment is made in the field catalog and in IT_SPECIAL_GROUPS, the fields are grouped correspondingly in the display variant popup.
reprep (Report/Report interface selection criterion)
value set: SPACE, 'X'
Prerequisites:
The system contains the Report/Report interface (function group RSTI, table TRSTI)
Parameter LAYOUT-REPREP = 'X'
(see also the documentation of the parameter LAYOUT-REPREP of the IMPORTING parameter IS_LAYOUT )
'X' = When the Report/Report interface is called, the value of this field is passed in the selected interface start record as a selection criterion.
2.7.2. Default
The following entries are usually sufficient for internal table fields with a reference to a field defined in the Data Dictionary :
fieldname
ref_tabname
Notes:
ALV gets the remaining information from the Data Dictionary.
If no relative column position (COL_POS) is specified, the fields are output in the list in the order in which they were added to the field catalog.
REF_FIELDNAME need only be specifid when the name of the internal table field differs from the name of the referred Data Dictionary field.
Information which is explicitly entered in the field catalog is not overwritten by information from the Data Dictionary.
Priority rule:
Entries in the field catalog have priority over differing entries in the Data Dictionary.
The following entries are usually sufficient for internal table fields without a reference to the Data Dictionary (program fields):
fieldname
outputlen
datatype
seltext_s
seltext_m
seltext_l
Notes:
F1 help can be provided for program fields by assigning a data element to the parameter ROLLNAME.
If the parameters SELTEXT_S, SELTEXT_M, SELTEXT_L, and REPTEXT_DDIC contain appropriate field labels, the program field column headers are also adjusted appropriately when the column width changes.
B. REUSE_ALV_FIELDCATALOG_MERGE : This function module is used to populate a fieldcatalog which is essential to display the data in ALV. If the output data is from a single dictionary table and all the columns are selected, then we need not exclusively create the field catalog. Its enough to mention the table name as a parameter(I_structure name) in the REUSE_ALV_LIST_DISPLAY. But in other cases we need to create it.
The Important Parameters are :
I. Export :
i. I_program_name : report id
ii. I_internal_tabname : the internal output table
iii. I_inclname : include or the report name where all the dynamic forms are handled.
II Changing
ct_fieldcat : an internal table with the type SLIS_T_FIELDCAT_ALV which is
declared in the type pool SLIS.
Reward points if useful
Regards
Anji
Vijayendra Rao
Posts: 1,699
Questions: 28
Registered: 9/14/04
Forum points: 3,018
Re: ALV
Posted: May 14, 2007 8:29 PM in response to: kotireddy Reply
Hi,
Field catalog defines the attributes and specifies the technical details of the columns displayed in an ALV output.
You can check the following thread to see how to build a field catalog and how to work with ALV.
Message was edited by:
Karthikeyan Pandurangan -
The Query output should bring 0 from 0 records
Hi Guru's
I have a critical requirment in my project, I have to build an query on BW statistics Multi provider ( 0BWTC_C10 ).
The Query should result an output with an exception when any data load brings 0 from 0 records to the info provider
Please suggest me as what key figures and the stucture i need to take in the query in order to get the desired output.
Respond ASAP as the ticket should be closed today
Thanks in advanceHi KR MR,
Try with thses info objects
0TCTREQSID Data Request (SID)
0TCTIFCUBE InfoCube
0TCTMNRECO Records (WHM Process)
& use time characteristics..........
if u want u can additional char like........source system for navigational purpouse.................
Regards,
Vijay. -
Picking data directly from ALV List
HI experts !
I have a scenario in which the client is executing some tcodes ( Some hourly, some daily , some weekly, ome monthly ) and all the data gets displayed in alv list . The requirement is that is it possible for XI to pick that data directly from alv and update the data base?
OR
If the above case is not possible then the client is thinking of putting the data in a spool and then by running some program they fetch the data ?
Guide me on this ? how to execute such scenario?
Regards
saras jainCreate and outbound interface with needed datatypes and message types. Create a client proxu for this.
Create a report, which gets all these data in to internal tables and then call the client proxy from XI. You can have whatever adapter on the receiver side..
VJ -
Pickking data from ALV List diractly into XI
HI experts !
I have a scenario in which the client is executing some tcodes ( Some hourly, some daily , some weekly, ome monthly ) and all the data gets displayed in alv list . The requirement is that is it possible for XI to pick that data directly from alv and update the data base?
OR
If the above case is not possible then the client is thinking of putting the data in a spool and then by running some program they fetch the data ?
Guide me on this ? how to execute such scenario?
Regards
saras jainOption 1 : As a standard you can go for client ABAP proxies. When ever the tcode is executed, in the ABAP code that gets executed in the back ground add a part that will pass all the required values to the client proxy which triggers a message to XI.
Option 2 : Write all the data you want to a flat/xml file and make File adapter poll this directory.
Option 1 is more perfomant than 2.
Regards,
Jai Shankar
Maybe you are looking for
-
IPod Touch will not show up in Windows XP after iTunes 10.2.1 update
After updating iTunes to 10.2.1 my 4G Touch will not show up in Windows XP to charge or to sync. I have been reading this forum and following the multiple Apple help and troubleshooting steps with no luck. I can get Windows to recognize and charge th
-
What are the key points to beconsider while upgrading from 4.7 to ECC 6.0
hai What are the key points to beconsider while upgrading from 4.7 to ECC 6.0 please provide sufficient material points will be rewarded regards v.sridhar
-
My ipod suffered some water damage early this year, leaving the device itself working fine, but making it so that the battery drained itself within a day after each charge, whether it was used or not. I therefore assumed the battery was the problem,
-
HELP! iTunes 7 *****! freezes and now I can't evern use it.
So first iTunes was freezing with the upgrade of 7.0, so I removed all of iTunes from my computer and and installed the version I had before the upgrade. And now this message pops up: "the file "iTunes Library.itl" cannot be read because it was creat
-
Need help using new-webserviceproxy
I am trying to follow the example in this article, http://technet.microsoft.com/en-us/library/hh849841.aspx Here is what I'm getting, any idea what the issue is? I've tried this from a few different environments with the same results. PS C:\> $zip =