CALL METHOD GRID4- SET_TABLE_FOR_FIRST_DISPLAY
Hi All,
I would like to know how to display 5 internal table same time in a single output screen. I have attached the program for your reference.
Presently I am able to get i_final1 and i_final2 output on the screen. I need to display on the same screen grid 3 and grid 4. Is it possible to display.
*& REPORT Z_READ_PROFILE
REPORT Z_READ_PROFILE.
TABLES: TCATS, TCATST, TCATX_GRID.
DATA: ST_CT1_FIELDCAT1 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT1 TYPE LVC_T_FCAT.
DATA: ST_CT1_FIELDCAT2 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT2 TYPE LVC_T_FCAT.
DATA: ST_CT1_FIELDCAT3 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT3 TYPE LVC_T_FCAT.
DATA: ST_CT1_FIELDCAT4 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT4 TYPE LVC_T_FCAT.
DATA: DOCK TYPE REF TO CL_GUI_DOCKING_CONTAINER,
SPLIT TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
GRID1 TYPE REF TO CL_GUI_ALV_GRID,
GRID2 TYPE REF TO CL_GUI_ALV_GRID,
GRID3 TYPE REF TO CL_GUI_ALV_GRID,
GRID4 TYPE REF TO CL_GUI_ALV_GRID,
DOC1 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
DOC3 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
DOC4 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
CON22 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
LI_FIELDCAT1 TYPE LVC_T_FCAT.
SELECTION-SCREEN: BEGIN OF BLOCK B1.
PARAMETERS: P_PROF1 LIKE TCATS-VARIANT,
P_PROF2 LIKE TCATS-VARIANT.
SELECTION-SCREEN: END OF BLOCK B1.
DATA: BEGIN OF I_DD03P OCCURS 0.
INCLUDE STRUCTURE DD03P.
DATA: END OF I_DD03P.
DATA: BEGIN OF I_FIELDS1 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FIELDS1.
DATA: BEGIN OF I_FIELDS2 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FIELDS2.
DATA: BEGIN OF I_FINAL1 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
TEXT LIKE TCATST-TEXT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FINAL1.
DATA: BEGIN OF I_FINAL2 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
TEXT LIKE TCATST-TEXT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FINAL2.
DATA: BEGIN OF ENTRYLIST OCCURS 0,
MFELD TYPE FAWFLDNAM,
VISIBLE TYPE FAWCUST,
REQUIRED TYPE FAWCUST,
READONLY TYPE FAWCUST,
HIDE TYPE FAWCUST,
PROF1 LIKE TCATS-VARIANT,
END OF ENTRYLIST.
DATA: BEGIN OF WORKLIST OCCURS 0.
INCLUDE STRUCTURE FIELD_SELECTION.
DATA: END OF WORKLIST.
DATA: BEGIN OF I_TCATX_GRID1 OCCURS 0,
PROFIL LIKE TCATX_GRID-PROFIL,
TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
COL LIKE TCATX_GRID-COL,
OBLIGAT LIKE TCATX_GRID-OBLIGAT,
END OF I_TCATX_GRID1.
DATA: BEGIN OF I_TCATX_GRID2 OCCURS 0,
PROFIL LIKE TCATX_GRID-PROFIL,
TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
COL LIKE TCATX_GRID-COL,
OBLIGAT LIKE TCATX_GRID-OBLIGAT,
END OF I_TCATX_GRID2.
PERFORM STATEMENT TO GET THE DATA BASED ON PORIFLE
IF NOT P_PROF1 IS INITIAL .
PERFORM GET_FIELDS1.
PERFORM GET_COMPONENTS1.
ENDIF.
IF NOT P_PROF1 IS INITIAL .
PERFORM GET_FIELDS2.
PERFORM GET_COMPONENTS2.
ENDIF.
PERFORM COMPARE_TABLES.
CALL SCREEN 100.
*& FORM GET_FIELDS
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM GET_FIELDS1.
CLEAR : ENTRYLIST, WORKLIST.
REFRESH: ENTRYLIST, WORKLIST.
CALL FUNCTION 'CATS_GET_INFLUENCES'
EXPORTING
VARIANT = P_PROF1
TABLES
ENTRYLIST_SELECTION = ENTRYLIST
WORKLIST_SELECTION = WORKLIST
IF SY-SUBRC EQ 0.
LOOP AT ENTRYLIST WHERE VISIBLE EQ SPACE
AND REQUIRED EQ SPACE
AND READONLY EQ SPACE.
MOVE 'X' TO ENTRYLIST-HIDE.
MODIFY ENTRYLIST TRANSPORTING HIDE.
ENDLOOP.
LOOP AT ENTRYLIST.
MOVE P_PROF1 TO I_FIELDS1-PROFILE.
MOVE ENTRYLIST-MFELD TO I_FIELDS1-MFIELD.
IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
MOVE ENTRYLIST-VISIBLE TO I_FIELDS1-INPUT.
ENDIF.
MOVE ENTRYLIST-REQUIRED TO I_FIELDS1-OBLIGAT.
MOVE ENTRYLIST-READONLY TO I_FIELDS1-DISPLAY.
MOVE ENTRYLIST-HIDE TO I_FIELDS1-NOTACT.
APPEND I_FIELDS1.
ENDLOOP.
ENDIF.
ENDFORM. " GET_FIELDS
*& FORM GET_FIELDS2
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM GET_FIELDS2 .
CLEAR : ENTRYLIST, WORKLIST.
REFRESH: ENTRYLIST, WORKLIST.
CALL FUNCTION 'CATS_GET_INFLUENCES'
EXPORTING
VARIANT = P_PROF2
TABLES
ENTRYLIST_SELECTION = ENTRYLIST
WORKLIST_SELECTION = WORKLIST
IF SY-SUBRC EQ 0.
LOOP AT ENTRYLIST WHERE VISIBLE EQ SPACE
AND REQUIRED EQ SPACE
AND READONLY EQ SPACE.
MOVE 'X' TO ENTRYLIST-HIDE.
MODIFY ENTRYLIST TRANSPORTING HIDE.
ENDLOOP.
LOOP AT ENTRYLIST.
MOVE P_PROF2 TO I_FIELDS2-PROFILE.
MOVE ENTRYLIST-MFELD TO I_FIELDS2-MFIELD.
IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
MOVE ENTRYLIST-VISIBLE TO I_FIELDS2-INPUT.
ENDIF.
MOVE ENTRYLIST-REQUIRED TO I_FIELDS2-OBLIGAT.
MOVE ENTRYLIST-READONLY TO I_FIELDS2-DISPLAY.
MOVE ENTRYLIST-HIDE TO I_FIELDS2-NOTACT.
APPEND I_FIELDS2.
ENDLOOP.
ENDIF.
ENDFORM. " GET_FIELDS2
*& FORM COMPARE_TABLES
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM COMPARE_TABLES .
CLEAR: I_FIELDS1, I_FIELDS2.
SORT : I_FIELDS1, I_FIELDS2.
DATA: L_TABLE LIKE DD03L-TABNAME,
L_FIELD LIKE DD03L-FIELDNAME.
LOOP AT I_FIELDS1.
READ TABLE I_FIELDS2 WITH KEY MFIELD = I_FIELDS1-MFIELD
INPUT = I_FIELDS1-INPUT
OBLIGAT = I_FIELDS1-OBLIGAT
DISPLAY = I_FIELDS1-DISPLAY
NOTACT = I_FIELDS1-NOTACT.
IF SY-SUBRC NE 0.
MOVE I_FIELDS1-PROFILE TO I_FINAL1-PROFILE.
SPLIT I_FIELDS1-MFIELD AT '-' INTO L_TABLE L_FIELD.
CALL FUNCTION 'BUS_DDFIELD_GET'
EXPORTING
I_TABNM = L_TABLE
I_FLDNM = L_FIELD
I_LANGU = SY-LANGU
IMPORTING
E_DD03P = I_DD03P
EXCEPTIONS
FIELD_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC EQ 0.
MOVE I_DD03P-DDTEXT TO I_FINAL1-TEXT.
ENDIF.
MOVE I_FIELDS1-MFIELD TO I_FINAL1-MFIELD.
MOVE I_FIELDS1-INPUT TO I_FINAL1-INPUT.
MOVE I_FIELDS1-OBLIGAT TO I_FINAL1-OBLIGAT.
MOVE I_FIELDS1-DISPLAY TO I_FINAL1-DISPLAY.
MOVE I_FIELDS1-NOTACT TO I_FINAL1-NOTACT.
APPEND I_FINAL1.
ENDIF.
ENDLOOP.
SORT : I_FIELDS1, I_FIELDS2.
LOOP AT I_FIELDS2.
READ TABLE I_FIELDS1 WITH KEY MFIELD = I_FIELDS2-MFIELD
INPUT = I_FIELDS2-INPUT
OBLIGAT = I_FIELDS2-OBLIGAT
DISPLAY = I_FIELDS2-DISPLAY
NOTACT = I_FIELDS2-NOTACT.
IF SY-SUBRC NE 0.
MOVE I_FIELDS2-PROFILE TO I_FINAL2-PROFILE.
SPLIT I_FIELDS2-MFIELD AT '-' INTO L_TABLE L_FIELD.
CALL FUNCTION 'BUS_DDFIELD_GET'
EXPORTING
I_TABNM = L_TABLE
I_FLDNM = L_FIELD
I_LANGU = SY-LANGU
IMPORTING
E_DD03P = I_DD03P
EXCEPTIONS
FIELD_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC EQ 0.
MOVE I_DD03P-DDTEXT TO I_FINAL2-TEXT.
ENDIF.
MOVE I_FIELDS2-MFIELD TO I_FINAL2-MFIELD.
MOVE I_FIELDS2-INPUT TO I_FINAL2-INPUT.
MOVE I_FIELDS2-OBLIGAT TO I_FINAL2-OBLIGAT.
MOVE I_FIELDS2-DISPLAY TO I_FINAL2-DISPLAY.
MOVE I_FIELDS2-NOTACT TO I_FINAL2-NOTACT.
APPEND I_FINAL2.
ENDIF.
ENDLOOP.
ENDFORM. " COMPARE_TABLES
*& MODULE STATUS_0100 OUTPUT
TEXT
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS SPACE.
SET TITLEBAR 'T001'.
PERFORM FIELDCAT_FINAL1.
PERFORM FIELDCAT_FINAL2.
CREATE OBJECT DOCK
EXPORTING
REPID = SY-REPID
DYNNR = '100'
EXTENSION = '600'
SIDE = '1'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT DOC1
EXPORTING
REPID = SY-REPID
DYNNR = '100'
EXTENSION = '1000'
SIDE = '4'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT GRID1 EXPORTING I_PARENT = DOCK.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'I_FINAL1'
CHANGING
IT_OUTTAB = I_FINAL1[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT1[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT GRID2 EXPORTING I_PARENT = DOC1.
CALL METHOD GRID2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'I_FINAL2'
CHANGING
IT_OUTTAB = I_FINAL2[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT2[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT DOC3
EXPORTING
REPID = SY-REPID
DYNNR = '100'
EXTENSION = '600'
SIDE = '1'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT DOC4
EXPORTING
REPID = SY-REPID
DYNNR = '100'
EXTENSION = '1000'
SIDE = '4'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT GRID3 EXPORTING I_PARENT = DOC3.
CALL METHOD GRID3->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'TCATX_GRID'
CHANGING
IT_OUTTAB = I_TCATX_GRID1[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT1[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT GRID4 EXPORTING I_PARENT = DOC4.
CALL METHOD GRID4->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'TCATX_GRID'
CHANGING
IT_OUTTAB = I_TCATX_GRID2[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT2[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& MODULE USER_COMMAND_0100 INPUT
TEXT
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& FORM FIELDCAT_FINAL1
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM FIELDCAT_FINAL1 .
IF IT_CT1_FIELDCAT1[] IS INITIAL.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'PROFILE'.
ST_CT1_FIELDCAT1-COL_POS = 0.
ST_CT1_FIELDCAT1-OUTPUTLEN = 8.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'PROFILE'.
ST_CT1_FIELDCAT1-KEY = 'X'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'MFIELD'.
ST_CT1_FIELDCAT1-COL_POS = 1.
ST_CT1_FIELDCAT1-OUTPUTLEN = 15.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'FIELD'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'TEXT'.
ST_CT1_FIELDCAT1-COL_POS = 1.
ST_CT1_FIELDCAT1-OUTPUTLEN = 30.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'TEXT'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'INPUT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'INPUT'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'OBLIGAT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'REQUIRED'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'DISPLAY'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'DISPLAY'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'NOTACT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'HIDE'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ENDIF.
ENDFORM. " FIELDCAT_FINAL1
*& FORM FIELDCAT_FINAL2
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM FIELDCAT_FINAL2 .
IF IT_CT1_FIELDCAT2[] IS INITIAL.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'PROFILE'.
ST_CT1_FIELDCAT2-COL_POS = 0.
ST_CT1_FIELDCAT2-OUTPUTLEN = 8.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'PROFILE'.
ST_CT1_FIELDCAT2-KEY = 'X'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'MFIELD'.
ST_CT1_FIELDCAT2-COL_POS = 1.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'FIELD'.
ST_CT1_FIELDCAT2-OUTPUTLEN = 15.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'TEXT'.
ST_CT1_FIELDCAT2-COL_POS = 1.
ST_CT1_FIELDCAT2-OUTPUTLEN = 30.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'TEXT'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'INPUT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'INPUT'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'OBLIGAT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'REQUIRED'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT2-FIELDNAME = 'DISPLAY'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'DISPLAY'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'NOTACT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'HIDE'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ENDIF.
ENDFORM. " FIELDCAT_FINAL2
*& Form GET_COMPONENTS1
text
--> p1 text
<-- p2 text
FORM GET_COMPONENTS1 .
CLEAR : I_TCATX_GRID1.
REFRESH: I_TCATX_GRID1.
SELECT * FROM TCATX_GRID
INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID1
WHERE PROFIL EQ P_PROF1.
ENDFORM. " GET_COMPONENTS1
*& Form GET_COMPONENTS2
text
--> p1 text
<-- p2 text
FORM GET_COMPONENTS2 .
CLEAR : I_TCATX_GRID2.
REFRESH: I_TCATX_GRID2.
SELECT * FROM TCATX_GRID
INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID2
WHERE PROFIL EQ P_PROF2.
ENDFORM. " GET_COMPONENTS2
Thanks & Regards,
Nagaraj Kalbavi
Hi Uwe,
As per your suggestion I have updated my program with splitter. Now I am able to get 3 internal Table but 4th one is not displaying. What could be the reason. I have attached my program for your reference.
& REPORT ZTEST_NAG&
REPORT ZTEST_NAG.
TABLES: TCATS, TCATST, TCATX_GRID.
DATA: ST_CT1_FIELDCAT1 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT1 TYPE LVC_T_FCAT.
DATA: ST_CT1_FIELDCAT2 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT2 TYPE LVC_T_FCAT.
data: go_docking TYPE REF TO cl_gui_docking_container,
go_splitter TYPE REF TO cl_gui_splitter_container,
go_splitter_2 TYPE REF TO cl_gui_splitter_container,
go_cell_top TYPE REF TO cl_gui_container,
go_cell_bottom TYPE REF TO cl_gui_container,
go_cell_left TYPE REF TO cl_gui_container,
go_cell_right TYPE REF TO cl_gui_container,
go_grid1 TYPE REF TO cl_gui_alv_grid,
go_grid2 TYPE REF TO cl_gui_alv_grid,
go_grid3 TYPE REF TO cl_gui_alv_grid,
go_grid4 TYPE REF TO cl_gui_alv_grid.
SELECTION-SCREEN: BEGIN OF BLOCK B1.
PARAMETERS: P_PROF1 LIKE TCATS-VARIANT,
P_PROF2 LIKE TCATS-VARIANT.
SELECTION-SCREEN: END OF BLOCK B1.
DATA: BEGIN OF I_DD03P OCCURS 0.
INCLUDE STRUCTURE DD03P.
DATA: END OF I_DD03P.
DATA: BEGIN OF I_FIELDS1 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FIELDS1.
DATA: BEGIN OF I_FIELDS2 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FIELDS2.
DATA: BEGIN OF I_FINAL1 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
TEXT LIKE TCATST-TEXT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FINAL1.
DATA: BEGIN OF I_FINAL2 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
TEXT LIKE TCATST-TEXT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FINAL2.
DATA: BEGIN OF ENTRYLIST OCCURS 0,
MFELD TYPE FAWFLDNAM,
VISIBLE TYPE FAWCUST,
REQUIRED TYPE FAWCUST,
READONLY TYPE FAWCUST,
HIDE TYPE FAWCUST,
PROF1 LIKE TCATS-VARIANT,
END OF ENTRYLIST.
DATA: BEGIN OF WORKLIST OCCURS 0.
INCLUDE STRUCTURE FIELD_SELECTION.
DATA: END OF WORKLIST.
DATA: BEGIN OF I_TCATX_GRID1 OCCURS 0,
PROFIL LIKE TCATX_GRID-PROFIL,
TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
COL LIKE TCATX_GRID-COL,
OBLIGAT LIKE TCATX_GRID-OBLIGAT,
END OF I_TCATX_GRID1.
DATA: BEGIN OF I_TCATX_GRID2 OCCURS 0,
PROFIL LIKE TCATX_GRID-PROFIL,
TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
COL LIKE TCATX_GRID-COL,
OBLIGAT LIKE TCATX_GRID-OBLIGAT,
END OF I_TCATX_GRID2.
PERFORM STATEMENT TO GET THE DATA BASED ON PORIFLE
IF NOT P_PROF1 IS INITIAL .
PERFORM GET_FIELDS1.
PERFORM GET_COMPONENTS1.
ENDIF.
IF NOT P_PROF1 IS INITIAL .
PERFORM GET_FIELDS2.
PERFORM GET_COMPONENTS2.
ENDIF.
PERFORM COMPARE_TABLES.
CALL SCREEN 100.
*& FORM GET_FIELDS
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM GET_FIELDS1.
CLEAR : ENTRYLIST, WORKLIST.
REFRESH: ENTRYLIST, WORKLIST.
CALL FUNCTION 'CATS_GET_INFLUENCES'
EXPORTING
VARIANT = P_PROF1
TABLES
ENTRYLIST_SELECTION = ENTRYLIST
WORKLIST_SELECTION = WORKLIST
IF SY-SUBRC EQ 0.
LOOP AT ENTRYLIST WHERE VISIBLE EQ SPACE
AND REQUIRED EQ SPACE
AND READONLY EQ SPACE.
MOVE 'X' TO ENTRYLIST-HIDE.
MODIFY ENTRYLIST TRANSPORTING HIDE.
ENDLOOP.
LOOP AT ENTRYLIST.
MOVE P_PROF1 TO I_FIELDS1-PROFILE.
MOVE ENTRYLIST-MFELD TO I_FIELDS1-MFIELD.
IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
MOVE ENTRYLIST-VISIBLE TO I_FIELDS1-INPUT.
ENDIF.
MOVE ENTRYLIST-REQUIRED TO I_FIELDS1-OBLIGAT.
MOVE ENTRYLIST-READONLY TO I_FIELDS1-DISPLAY.
MOVE ENTRYLIST-HIDE TO I_FIELDS1-NOTACT.
APPEND I_FIELDS1.
ENDLOOP.
ENDIF.
ENDFORM. " GET_FIELDS
*& FORM GET_FIELDS2
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM GET_FIELDS2 .
CLEAR : ENTRYLIST, WORKLIST.
REFRESH: ENTRYLIST, WORKLIST.
CALL FUNCTION 'CATS_GET_INFLUENCES'
EXPORTING
VARIANT = P_PROF2
TABLES
ENTRYLIST_SELECTION = ENTRYLIST
WORKLIST_SELECTION = WORKLIST
IF SY-SUBRC EQ 0.
LOOP AT ENTRYLIST WHERE VISIBLE EQ SPACE
AND REQUIRED EQ SPACE
AND READONLY EQ SPACE.
MOVE 'X' TO ENTRYLIST-HIDE.
MODIFY ENTRYLIST TRANSPORTING HIDE.
ENDLOOP.
LOOP AT ENTRYLIST.
MOVE P_PROF2 TO I_FIELDS2-PROFILE.
MOVE ENTRYLIST-MFELD TO I_FIELDS2-MFIELD.
IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
MOVE ENTRYLIST-VISIBLE TO I_FIELDS2-INPUT.
ENDIF.
MOVE ENTRYLIST-REQUIRED TO I_FIELDS2-OBLIGAT.
MOVE ENTRYLIST-READONLY TO I_FIELDS2-DISPLAY.
MOVE ENTRYLIST-HIDE TO I_FIELDS2-NOTACT.
APPEND I_FIELDS2.
ENDLOOP.
ENDIF.
ENDFORM. " GET_FIELDS2
*& FORM COMPARE_TABLES
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM COMPARE_TABLES .
CLEAR: I_FIELDS1, I_FIELDS2.
SORT : I_FIELDS1, I_FIELDS2.
DATA: L_TABLE LIKE DD03L-TABNAME,
L_FIELD LIKE DD03L-FIELDNAME.
LOOP AT I_FIELDS1.
READ TABLE I_FIELDS2 WITH KEY MFIELD = I_FIELDS1-MFIELD
INPUT = I_FIELDS1-INPUT
OBLIGAT = I_FIELDS1-OBLIGAT
DISPLAY = I_FIELDS1-DISPLAY
NOTACT = I_FIELDS1-NOTACT.
IF SY-SUBRC NE 0.
MOVE I_FIELDS1-PROFILE TO I_FINAL1-PROFILE.
SPLIT I_FIELDS1-MFIELD AT '-' INTO L_TABLE L_FIELD.
CALL FUNCTION 'BUS_DDFIELD_GET'
EXPORTING
I_TABNM = L_TABLE
I_FLDNM = L_FIELD
I_LANGU = SY-LANGU
IMPORTING
E_DD03P = I_DD03P
EXCEPTIONS
FIELD_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC EQ 0.
MOVE I_DD03P-DDTEXT TO I_FINAL1-TEXT.
ENDIF.
MOVE I_FIELDS1-MFIELD TO I_FINAL1-MFIELD.
MOVE I_FIELDS1-INPUT TO I_FINAL1-INPUT.
MOVE I_FIELDS1-OBLIGAT TO I_FINAL1-OBLIGAT.
MOVE I_FIELDS1-DISPLAY TO I_FINAL1-DISPLAY.
MOVE I_FIELDS1-NOTACT TO I_FINAL1-NOTACT.
APPEND I_FINAL1.
ENDIF.
ENDLOOP.
SORT : I_FIELDS1, I_FIELDS2.
LOOP AT I_FIELDS2.
READ TABLE I_FIELDS1 WITH KEY MFIELD = I_FIELDS2-MFIELD
INPUT = I_FIELDS2-INPUT
OBLIGAT = I_FIELDS2-OBLIGAT
DISPLAY = I_FIELDS2-DISPLAY
NOTACT = I_FIELDS2-NOTACT.
IF SY-SUBRC NE 0.
MOVE I_FIELDS2-PROFILE TO I_FINAL2-PROFILE.
SPLIT I_FIELDS2-MFIELD AT '-' INTO L_TABLE L_FIELD.
CALL FUNCTION 'BUS_DDFIELD_GET'
EXPORTING
I_TABNM = L_TABLE
I_FLDNM = L_FIELD
I_LANGU = SY-LANGU
IMPORTING
E_DD03P = I_DD03P
EXCEPTIONS
FIELD_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC EQ 0.
MOVE I_DD03P-DDTEXT TO I_FINAL2-TEXT.
ENDIF.
MOVE I_FIELDS2-MFIELD TO I_FINAL2-MFIELD.
MOVE I_FIELDS2-INPUT TO I_FINAL2-INPUT.
MOVE I_FIELDS2-OBLIGAT TO I_FINAL2-OBLIGAT.
MOVE I_FIELDS2-DISPLAY TO I_FINAL2-DISPLAY.
MOVE I_FIELDS2-NOTACT TO I_FINAL2-NOTACT.
APPEND I_FINAL2.
ENDIF.
ENDLOOP.
ENDFORM. " COMPARE_TABLES
*& MODULE STATUS_0100 OUTPUT
TEXT
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS SPACE.
SET TITLEBAR 'T001'.
PERFORM FIELDCAT_FINAL1.
PERFORM FIELDCAT_FINAL2.
CREATE OBJECT go_docking
EXPORTING
parent = cl_gui_container=>screen0
ratio = 90
EXCEPTIONS
OTHERS = 6.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Create splitter container
CREATE OBJECT go_splitter
EXPORTING
parent = go_docking
rows = 1
columns = 2
NO_AUTODEF_PROGID_DYNNR =
NAME =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Get cell container
CALL METHOD go_splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = go_cell_left.
CALL METHOD go_splitter->get_container
EXPORTING
row = 1
column = 2
RECEIVING
container = go_cell_right.
Create 2nd splitter container
CREATE OBJECT go_splitter_2
EXPORTING
parent = go_cell_left
rows = 2
columns = 1
NO_AUTODEF_PROGID_DYNNR =
NAME =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Get cell container
CALL METHOD go_splitter_2->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = go_cell_top.
CALL METHOD go_splitter_2->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = go_cell_bottom.
Create ALV grids
CREATE OBJECT go_grid1
EXPORTING
i_parent = go_cell_top
EXCEPTIONS
OTHERS = 5.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT go_grid2
EXPORTING
i_parent = go_cell_right
EXCEPTIONS
OTHERS = 5.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT go_grid3
EXPORTING
i_parent = go_cell_bottom
EXCEPTIONS
OTHERS = 5.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT go_grid4
EXPORTING
i_parent = go_cell_left
EXCEPTIONS
OTHERS = 5.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_grid1->set_table_for_first_display
EXPORTING
i_structure_name = 'I_FINAL1'
CHANGING
it_outtab = I_FINAL1[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT1[]
EXCEPTIONS
OTHERS = 4.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_grid2->set_table_for_first_display
EXPORTING
i_structure_name = 'I_FINAL2'
CHANGING
it_outtab = I_FINAL2[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT2[]
EXCEPTIONS
OTHERS = 4.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_grid3->set_table_for_first_display
EXPORTING
i_structure_name = 'TCATX_GRID'
CHANGING
it_outtab = I_TCATX_GRID1[] " empty !!!
EXCEPTIONS
OTHERS = 4.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_grid4->set_table_for_first_display
EXPORTING
i_structure_name = 'TCATX_GRID'
CHANGING
it_outtab = I_TCATX_GRID2[] " empty !!!
EXCEPTIONS
OTHERS = 4.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Link the docking container to the target dynpro
CALL METHOD go_docking->link
EXPORTING
repid = syst-repid
dynnr = '0100'
CONTAINER =
EXCEPTIONS
OTHERS = 4.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& MODULE USER_COMMAND_0100 INPUT
TEXT
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& FORM FIELDCAT_FINAL1
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM FIELDCAT_FINAL1 .
IF IT_CT1_FIELDCAT1[] IS INITIAL.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'PROFILE'.
ST_CT1_FIELDCAT1-COL_POS = 0.
ST_CT1_FIELDCAT1-OUTPUTLEN = 8.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'PROFILE'.
ST_CT1_FIELDCAT1-KEY = 'X'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'MFIELD'.
ST_CT1_FIELDCAT1-COL_POS = 1.
ST_CT1_FIELDCAT1-OUTPUTLEN = 15.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'FIELD'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'TEXT'.
ST_CT1_FIELDCAT1-COL_POS = 1.
ST_CT1_FIELDCAT1-OUTPUTLEN = 30.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'TEXT'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'INPUT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'INPUT'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'OBLIGAT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'REQUIRED'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'DISPLAY'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'DISPLAY'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'NOTACT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'HIDE'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ENDIF.
ENDFORM. " FIELDCAT_FINAL1
*& FORM FIELDCAT_FINAL2
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM FIELDCAT_FINAL2 .
IF IT_CT1_FIELDCAT2[] IS INITIAL.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'PROFILE'.
ST_CT1_FIELDCAT2-COL_POS = 0.
ST_CT1_FIELDCAT2-OUTPUTLEN = 8.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'PROFILE'.
ST_CT1_FIELDCAT2-KEY = 'X'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'MFIELD'.
ST_CT1_FIELDCAT2-COL_POS = 1.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'FIELD'.
ST_CT1_FIELDCAT2-OUTPUTLEN = 15.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'TEXT'.
ST_CT1_FIELDCAT2-COL_POS = 1.
ST_CT1_FIELDCAT2-OUTPUTLEN = 30.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'TEXT'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'INPUT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'INPUT'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'OBLIGAT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'REQUIRED'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT2-FIELDNAME = 'DISPLAY'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'DISPLAY'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'NOTACT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'HIDE'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ENDIF.
ENDFORM. " FIELDCAT_FINAL2
*& Form GET_COMPONENTS1
text
--> p1 text
<-- p2 text
FORM GET_COMPONENTS1 .
CLEAR : I_TCATX_GRID1.
REFRESH: I_TCATX_GRID1.
SELECT * FROM TCATX_GRID
INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID1
WHERE PROFIL EQ P_PROF1.
ENDFORM. " GET_COMPONENTS1
*& Form GET_COMPONENTS2
text
--> p1 text
<-- p2 text
FORM GET_COMPONENTS2 .
CLEAR : I_TCATX_GRID2.
REFRESH: I_TCATX_GRID2.
SELECT * FROM TCATX_GRID
INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID2
WHERE PROFIL EQ P_PROF2.
ENDFORM. " GET_COMPONENTS2
Thanks & Regards,
Nagaraj Kalbavi
Similar Messages
-
Dear experts,
I'm using CALL METHOD ob_grid1->set_table_for_first_display, during the first run the display is ok.
When I back to screen 0 and enter different values and re-run, the values of internal table has been changed.
But the second run still display the values I have during the first run. What could be the reason for this and how to solve this? Thanks.
IF ob_custom1 IS INITIAL.
CREATE OBJECT ob_custom1
EXPORTING
container_name = 'ALV_CONTAINER'.
ENDIF.
IF ob_split1 IS INITIAL.
CREATE OBJECT ob_split1
EXPORTING
parent = ob_custom1
orientation = cl_gui_easy_splitter_container=>orientation_vertical.
ENDIF.
IF ob_grid1 IS INITIAL.
CREATE OBJECT ob_grid1
EXPORTING
i_parent = ob_split1->top_left_container.
PERFORM build_fieldcatalog.
gs_layout1-info_fname = 'ROWCOLOR'.
gs_layout1-smalltitle = 'X'.
CALL METHOD ob_grid1->set_table_for_first_display
EXPORTING
i_structure_name = 'T_REPORT'
is_layout = gs_layout1
CHANGING
it_outtab = T_REPORT
it_fieldcatalog = alv_fcat_dock1.
ENDIF.
KathHi,
Please add the code after else statement.
IF ob_grid1 IS INITIAL.
CREATE OBJECT ob_grid1
EXPORTING
i_parent = ob_split1->top_left_container.
PERFORM build_fieldcatalog.
gs_layout1-info_fname = 'ROWCOLOR'.
gs_layout1-smalltitle = 'X'.
CALL METHOD ob_grid1->set_table_for_first_display
EXPORTING
i_structure_name = 'T_REPORT'
is_layout = gs_layout1
CHANGING
it_outtab = T_REPORT
it_fieldcatalog = alv_fcat_dock1.
ELSE. " Add
Call method refersh table for display. " Add
ENDIF. -
Hi Can anyone please advice me how can we have PF Status in User Command in Object Oriented ALV Grid Display.
* display alv grid
CALL METHOD alv_grid_ob->set_table_for_first_display
EXPORTING
* IS_VARIANT =
* I_SAVE =
i_default = 'X'
is_layout = t_lay
* IT_TOOLBAR_EXCLUDING =
CHANGING
it_outtab =
it_fieldcatalog = t_field_catalog
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.Hi,
you can directly handle that in PBO module of the screen....
you can give a direct
set PF-status statement in any of the module in PBO...
and you can handle in PAI
Regards,
Siddarth -
How can i interact with the ALV if i am using the lvc_ and call method?
i want to hide the last entry of a line when i click on the checbox of my ALV
u want to hide or delete?
instead of using check box, u can use a button to display there.
it can be achived like below.
data: ls_lvclayout type lvc_s_layo.
LS_LVCLAYOUT-SEL_MODE = 'D'.
now in set_table for_first_diaplay
CALL METHOD GO_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
<b> IS_LAYOUT = LS_LVCLAYOUT</b>
do like above.
then u click on the row, and the row will be selected.
now using the method GET_SELECTED_ROWS, u can get the data of the selected row and u can now manipulate what ever u needed.
data:
SEL_ROW TYPE LVC_S_ROID,
SEL_T_ROW TYPE LVC_T_ROID.
CALL METHOD GO_GRID->GET_SELECTED_ROWS
IMPORTING
ET_ROW_NO = SEL_T_ROW.
LOOP AT SEL_T_ROW INTO SEL_ROW.
read table <itab> index SEL_ROW-ROW_ID.
check sy-subrc = 0.
< now write the logic like making the field blank and modify the itab>.
ENDLOOP. -
I NEVER USED OOPS CONCEPT.BUT I GOT A TASK ON ALV REPORT USING class CL_GUI_ALV_GRID, call method SET_TABLE_FOR_FIRST_DISPLAY for ALV . I HAD PASSED THE VALUES FROM INTERNAL TABLE AND GOT OUTPUT IN ALV.
The problem is When i save an layout(default setting button ).
iam unable to get the output for all fields.
if u want i will send screenshots to ur mail
THANKS IN ADVANCE.ok fine,
In the output (alv grid) there is an icon for layout settings.
if i want to save layout (as DEFAULT SETTING) i am missing some fields in output
EX:
mat no | batch | proces order | time | date |
when i save layout (as DEFAULT SETTING) i am missing some fields in output
mat no | batch |
the rest of the field were not displayed.
if u are not clear just ask me. i will send some more examples. -
Error calling methods CL_GUI_FRONTEND_SERVICES
Hi all,
I have a requirement in BAPI (integrating solman to portal) to download file from app. server to local directory. I used the below FM to get temp directory of presntation server.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_TEMP_DIRECTORY
CHANGING
TEMP_DIR = LV_TEMP_DIR
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
others = 4.
CALL METHOD cl_gui_cfw=>flush.
It works fine in R3, but when i called it from portal it shows Access not possible using 'NULL' object reference with a short dump .
st22 shows
Error in ABAP application program.
The current ABAP program "CL_GUI_FRONTEND_SERVICES======CP" had to be
terminated because one of the
statements could not be executed.
This is probably due to an error in the ABAP program.
An exception occurred. This exception is dealt with in more detail belo
. The exception, which is assigned to the class 'CX_SY_REF_IS_INITIAL',
neither
caught nor passed along using a RAISING clause, in the procedure
"GET_TEMP_DIRECTORY" "(METHOD)"
Since the caller of the procedure could not have expected this exceptio
to occur, the running program was terminated.
The reason for the exception is:
Attempt to access a component using 'NULL' object reference (points
to nothing).
An object reference must point to an object (an instance of a class)
before you can use it to access components (variable:
"CL_GUI_FRONTEND_SERVICES=>HANDLE").
Either the reference has not yet been set, or it has been reset to
'NULL' by a CLEAR statement.
When i put external break point and the dump comes during execution of CALL METHOD cl_gui_cfw=>flush.
Is it not possible to use CL_GUI_FRONTEND_SERVICES in RFC ??.
thanks and regards
JijoHi,
the dump is because you cannot use that function from a BSP application, which runs in internet or intranet. The procedure in this case is different:
DATA: flights TYPE flighttab,
flight LIKE LINE OF flights,
appl TYPE string,
filetype TYPE string,
output TYPE string,
output2 TYPE xstring,
response TYPE REF TO if_http_response,
l_len TYPE i,
seatsmax TYPE string,
seatsocc TYPE string.
appl = 'application/msexcel'.
filetype = 'attachment;filename=mi archivo.xls'.
SELECT * FROM sflight
INTO TABLE flights
UP TO 20 ROWS.
LOOP AT flights INTO flight.
seatsmax = flight-seatsmax. CONDENSE seatsmax.
seatsocc = flight-seatsocc. CONDENSE seatsocc.
CONCATENATE output
flight-carrid cl_abap_char_utilities=>horizontal_tab
flight-connid cl_abap_char_utilities=>horizontal_tab
flight-fldate cl_abap_char_utilities=>horizontal_tab
flight-planetype cl_abap_char_utilities=>horizontal_tab
seatsmax cl_abap_char_utilities=>horizontal_tab
seatsocc cl_abap_char_utilities=>horizontal_tab
cl_abap_char_utilities=>cr_lf
INTO output.
ENDLOOP.
response = runtime->server->response.
response->delete_header_field( name = if_http_header_fields=>cache_control ).
response->delete_header_field( name = if_http_header_fields=>expires ).
response->delete_header_field( name = if_http_header_fields=>pragma ).
response->set_header_field( name = if_http_header_fields=>content_type
value = appl ).
response->set_header_field( name = 'content-disposition'
value = filetype ).
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = output
mimetype = 'text/unicode; charset=utf-16le'
IMPORTING
buffer = output2.
CONCATENATE cl_abap_char_utilities=>byte_order_mark_little
output2 INTO output2 IN BYTE MODE.
l_len = XSTRLEN( output2 ).
response->set_data( data = output2
length = l_len ).
navigation->response_complete( ).
This is the code for downloading an Excel file. -
CALL METHOD cl_gui_frontend_services= file_save_dialog
Hi,
I want to use 'CALL METHOD cl_gui_frontend_services=>file_save_dialog', to choose a path for saving my txt files. I only want the user to be able to choose the path and not have to supply a filename aswell. My filenames are standard in the program and I don't want them to be changed by the user.
Is there another method which is designed for this or is there a simple parameter I have missed?
Thanks and regards,
Simon.AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_f.
PERFORM f_search_help_pa_f1.
FORM f_search_help_pa_f1 .
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = sy-repid
dynpro_number = sy-dynnr
CHANGING
file_name = pa_f
EXCEPTIONS
mask_too_long = 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.
ENDFORM. " f_search_help_pa_f1
Try this
Regards -
*ERROR IN OLE CALL - METHOD CALL ERROR...*
HI ..
When trying to Upload a file using BDC with Vista OS, we are getting the following error..
ERROR IN OLE CALL - METHOD CALL ERROR...
There is no problem with BDC as its working fine with XP & other OS.
Pls help!!Seems that you are working with microsoft files.
Maybe you are using deprecated functions like WS_EXCEL -
How to call methods from within run()
Seems like this must be a common question, but I cannot for the life of me, find the appropriate topic. So apologies ahead of time if this is a repeat.
I have code like the following:
public class MainClass implements Runnable {
public static void main(String args[]) {
Thread t = new Thread(new MainClass());
t.start();
public void run() {
if (condition)
doSomethingIntensive();
else
doSomethingElseIntensive();
System.out.println("I want this to print ONLY AFTER the method call finishes, but I'm printed before either 'Intensive' method call completes.");
private void doSomethingIntensive() {
System.out.println("I'm never printed because run() ends before execution gets here.");
return;
private void doSomethingElseIntensive() {
System.out.println("I'm never printed because run() ends before execution gets here.");
return;
}Question: how do you call methods from within run() and still have it be sequential execution? It seems that a method call within run() creates a new thread just for the method. BUT, this isn't true, because the Thread.currentThread().getName() names are the same instead run() and the "intensive" methods. So, it's not like I can pause one until the method completes because they're the same thread! (I've tried this.)
So, moral of the story, is there no breaking down a thread's execution into methods? Does all your thread code have to be within the run() method, even if it's 1000 lines? Seems like this wouldn't be the case, but can't get it to work otherwise.
Thanks all!!!I (think I) understand the basics.. what I'm confused
about is whether the methods are synced on the class
type or a class instance?The short answer is; the instance for non-static methods, and the class for static methods, although it would be more accurate to say against the instance of the Class for static methods.
The locking associated with the "sychronized" keyword is all based around an entity called a "monitor". Whenever a thread wants to enter a synchronized method or block, if it doesn't already "own" the monitor, it will try to take it. If the monitor is owned by another thread, then the current thread will block until the other thread releases the monitor. Once the synchronized block is complete, the monitor is released by the thread that owns it.
So your question boils down to; where does this monitor come from? Every instance of every Object has a monitor associated with it, and any synchronized method or synchonized block is going to take the monitor associated with the instance. The following:
synchronized void myMethod() {...is equivalent to:
void myMethod() {
synchronized(this) {
...Keep in mind, though, that every Class has an instance too. You can call "this.getClass()" to get that instance, or you can get the instance for a specific class, say String, with "String.class". Whenever you declare a static method as synchronized, or put a synchronized block inside a static method, the monitor taken will be the one associated with the instance of the class in which the method was declared. In other words this:
public class Foo {
synchronized static void myMethod() {...is equivalent to:
public class Foo{
static void myMethod() {
synchronized(Foo.class) {...The problem here is that the instance of the Foo class is being locked. If we declare a subclass of Foo, and then declare a synchronized static method in the subclass, it will lock on the subclass and not on Foo. This is OK, but you have to be aware of it. If you try to declare a static resource of some sort inside Foo, it's best to make it private instead of protected, because subclasses can't really lock on the parent class (well, at least, not without doing something ugly like "synchronized(Foo.class)", which isn't terribly maintainable).
Doing something like "synchronized(this.getClass())" is a really bad idea. Each subclass is going to take a different monitor, so you can have as many threads in your synchronized block as you have subclasses, and I can't think of a time I'd want that.
There's also another, equivalent aproach you can take, if this makes more sense to you:
static final Object lock = new Object();
void myMethod() {
synchronized(lock) {
// Stuff in here is synchronized against the lock's monitor
}This will take the monitor of the instance referenced by "lock". Since lock is a static variable, only one thread at a time will be able to get into myMethod(), even if the threads are calling into different instances. -
Call method http_client- response- get_header_fields for PDF and for TIFF
Hi,
I am using a Function Module..
APAR_EBPP_GET_INVOICE_DETAIL to display the TIFF images on the Biller Direct side.
The above function module is used to retrieve the PDF documents from the document repository.
In Similar way I am trying to do the TIFF Images too.
But in this method
call method http_client->response->get_header_fields
changing fields.
For PDF the table fields is as follows
NAME VALUE
1 ~response_line----
|HTTP/1.1 200 (OK) |
2 ~server_protocol----
|HTTP/1.1 |
3 ~status_code----
|200 |
4 ~status_reason----
|(OK) |
5 content-length----
|7136 |
6 content-type----
|application/pdf |
7 server |Microsoft-IIS/6.0 |
8 x-powered-by |ASP.NET |
9 date |Tue, 24 Feb 2009 18:09:35 GMT |
10 connection |close |
For TIFF the table fields are as follows:
1 ~response_line----
|HTTP/1.1 500 (internal server error) |
2 ~server_protocol----
|HTTP/1.1 |
3 ~status_code----
|500 |
4 ~status_reason----
|(internal server error) |
5 content-length----
|105 |
6 content-type----
|text/plain |
7 server----
|Microsoft-IIS/6.0 |
8 x-powered-by |ASP.NET |
9 date |Tue, 24 Feb 2009 18:26:39 GMT |
10 connection |close |
The error message is Internal Server error..
This is in HTTP2_Get Function Module.
What would be the reason for HTTP/1.1 500 Internal Server error.
Any suggestions are welcome..
Thanks,
ChaitanyaHi Niranjan,
can you please check if you have imported the whole chain of certificates. Certificates usually diplayed in 3 levels in the Explorer. like
Verisign - L1
>>> Versign-- L2
>>>>>>>>>>>>XYZ.com -- L3
Extract all the 3 certificates and Put in Strust and do exit soft and hard in SMICM and restart the service.
Its better to create a RFC destination of Type H and Do the Connection test for HTTPS configuration. If the connection test comes OK then u can be sure of the configuration. -
How to Call Methods in Ecatt?
Hello Gurus,
I dont find CALLMETHOD or CALLSTATIC commands in Ecatt. I am using R/3 4.7 version of SAP.
My question also is how to call methods. I have a scenario where my test script execution depends on the return type of method. Say if the return type of method is A only then I should run the script else the script should not be executed.
Your help in this regard is highly appreciated.
Regards,
GS.>
Get Started wrote:
> Hello Gurus,
>
> I dont find CALLMETHOD or CALLSTATIC commands in Ecatt. I am using R/3 4.7 version of SAP.
>
> My question also is how to call methods. I have a scenario where my test script execution depends on the return type of method. Say if the return type of method is A only then I should run the script else the script should not be executed.
>
> Your help in this regard is highly appreciated.
>
> Regards,
> GS.
Hi GS,
Please use the command "CallMethod" and it is available with latest SAP version.
You have to provide the Object Instance Parameter and Instance Method.
Regards,
SSN. -
Syntax for how to call method of one comp in other comp wd java.
Let us assume,
there is method1 in view1 comp1.
tell me syntax for calling method 1 in view2 comp2
thanks in advance.
Edited by: madhu1011 on Nov 9, 2011 11:31 AMHi Madhu,
This is the situation:
comp1-> method 1 , view1
comp2-> view2
You need to access method1 in view2 of comp2.
For that, do the following steps:
1.) First create a method (for eg: method1) in comp1 (under implementation of view1).
eg: public void method1(){
<......some logic...>
2.)Save the meta data.
3.) In comp2, you will find an option called used components. In that right click and add the component comp2. (Carefully select comp1 itslef).
4.)Save the meta data.
5.) Then go to view2 of comp2 and take implementaion part and right the following logic in wddoinit() (or any other standard or custom method).
wdThis.wdGetComp2Interface().getMethod("method1");
By this way, we can access the method1 of comp1 in comp2.
Regards,
Jithin -
Hi experts,
Method is already created, Now i have to call that method in one Dummy program. Please send me that program with logic. I am sending you class name and already created method.
Class name:ZCl_configurable_item
Method name:Is_sequence_Not_To_Print
Please call this method in Dummy program, I needed this with the program logic.
method IS_SEQUENCE_NOT_TO_PRINT .
DATA : l_kunnr TYPE kunnr,
l_kna1katr6 TYPE kna1-katr6,
l_katr6 TYPE kna1-katr6,
l_katr6_1 TYPE zkatr6_line.
*DATA : l_katr6_1 TYPE STANDARD TABLE OF zkatr6_line. " OCCURS 0 WITH HEADER LINE.
DATA : l_zliteral_tab TYPE ZLITERAL_TAB_TYPE,
l_zliteral type zliteral.
DATA : condtype_range_out TYPE Z_KATR6_TT.
SELECT SINGLE kunnr FROM vbpa
INTO l_kunnr
WHERE vbeln = vbdkr_vbeln AND
( parvw = 'RE' OR
parvw = 'BP' ).
SELECT SINGLE katr6 FROM kna1
INTO l_kna1katr6
WHERE kunnr = l_kunnr.
l_katr6 = l_kna1katr6+0(1).
SELECT * FROM zliteral
INTO table l_zliteral_tab
WHERE zkey1 = c_zlit_genosys_key AND
zkey2 = c_katr6_1.
loop at l_zliteral_tab into l_zliteral.
clear l_katr6_1.
l_katr6_1-sign = l_zliteral-zvalue1.
l_katr6_1-option = l_zliteral-zvalue2.
l_katr6_1-low = l_zliteral-zvalue3.
append l_katr6_1 to condtype_range_out.
Condense l_katr6_1-low.
IF l_katr6 EQ l_katr6_1-low.
IS_SEQUENCE_NOT_TO_PRINT = c_checked.
EXIT.
ELSE.
IS_SEQUENCE_NOT_TO_PRINT = SPACE.
ENDIF.
endloop.
Thanks & RegardsHi
In the report program first u have to create an object with ref to class then call that method like
report ztest.
create object zt1 type ref to ZCl_configurable_item.
CALL method zt1->Is_sequence_Not_To_Print importing....
exporting....
like this.
See the help for create object in ABAPDOCU.
mark points if helpful.
Regs
Manas Ranjan Panda -
Java code to call methods in .ocx file
dear friends,
i have an .ocx file with me which is used to communicate with a specific device.it is an already existing one. i wish to know whether i can call method sin that .ocx file using java .using vb6 we can do this.
if it is possible with java i wish to know how i can do this.please consider this query and please send me your responses. i know that using jni we can communicate with .dll files.but i am not sure about .ocx file. please help me.
thank you
aruni wish to know whether i can call method sin that .ocx file using java
Probably
db -
CALL METHOD ABAP run SQL wrong
Dear All
I have a problem in ABAP connect SQL,Below is my code snippet sentence.
CONCATENATE 'Insert Into [timportcortrol]'
'(zucode,zstate,zdate,zkind) Values('''
VG_PCID ''','''
'1'','''
SY-DATUM ''','''
'1' ''')'
INTO SQL.
CALL METHOD OF REC 'Execute'
EXPORTING #1 = SQL
#2 = CON
#3 = '1'.
IF NOT SY-SUBRC = 0.
MESSAGE I000 WITH 'Download to [timportcortrol] failure,Please Check the SQL Connect!!! '.
EXIT.
ENDIF.
Con:is the connect SQL String ,the connect SQL is Okay.
I debug this code,when I used u2018Select u2026sentenceu2019,the program can work.if I use u2018insert intou2019 then canu2019t work,but I copied the SQL of the u2018inset Into sentenceu2026u2019run it into SQL server then it can work also.
And I found the SY-SUBRC eq u20182u2019.whatu2019s mean about of the sy-subrc eq u20182u2019.
I think the insert into sentence in abap I have write the wrong ,but I canu2019t assurance.
The Insert Into Sentence is:u2019 Insert Into [timportcortrol](zucode,zstate,zdate,zkind) Values('20080807094713','1','20080807','1')u2019
Could you give me some advice for this issue?
Thanks of all
Sun.Have you checked whether it's a problem with mixed case? Some SQL dialects are case sensitive.
The not very helpful meanings of the sy-subrc value can be found in ABAP help.
0 Successful processing of the method meth.
1 Communication Error to SAP GUI.
2 Error when calling method meth.
3 Error when setting a property.
4 Error when reading a property
matt
Maybe you are looking for
-
I am using pdf.js for one of my client. If i explicitly copy and paste URL of my pdf, it opens perfetly fine on IE and Chrome but doesn't open on FF at all. My application uses pdf.js and it doesn't open my pdf on any of the browser. is there any fix
-
PO item deletion if downpayment exists
Dear Experts, How to delete a PO line item if downpayment exists for that line item. My client had created an import PO by selection wrong vendor code. Hence local pricing proceedure had been determined instead of import pricing proceedure. Downpa
-
Strange folders appearing in LiveType Project directory
Running FCP 5.04 under 10.4.7. LiveType 2.0.2 Just upgraded from OS X 10.3.9, FCP 4.5 and LiveType 1.2. We did not see this issue prior to the update. LiveType is placing 0 Kb folders in my LiveType project directory every time I save (as) a LiveType
-
Unable to combine microcsoft word or rtf files when creating a .pdf
We cannot add microsoft word or .rtf files when trying to combine them into a single .pdf file.. When you click on Add files..the word or .rtf files are greyed out and you cannot select them.. We are using Mountain Lion OS (ltatest version) and adobe
-
Active Directory cross forest trust which are deployed in separate subscription
Hi All, I know that this is not Azure forum, but I have a question related to Active Directory, Appreciate your understanding and letting me know your concerns about AD cross forest between two subscriptions of Azure. We have two separate subscriptio