2007 Jun 07 10:25 AM
I paint a listbox on screen . I want to show three fields in the listbox . But only 2 field can be showed in the listbox. why?
The source code is :
module set_datalist input.
data:begin of itab occurs 0,
BNAME like USR02-BNAME,
GLTGV like usr02-gltgv,
GLTGB like usr02-gltgb,
end of itab.
select * from usr02 into corresponding fields of table itab.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'BNAME'
value_org = 'S'
TABLES
value_tab = itab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
endmodule. " set_datalist INPUT
when itab has 2 fields ,for example
data:begin of itab occurs 0,
BNAME like USR02-BNAME,
GLTGV like usr02-gltgv,
GLTGB like usr02-gltgb, " delete the field
end of itab.
the listbox has value, but define 3 fields ,the listbox has no value,for example:
data:begin of itab occurs 0,
BNAME like USR02-BNAME,
GLTGV like usr02-gltgv,
GLTGB like usr02-gltgb,
end of itab.
My SAP version is 4.6c. Could you pls help me?
I paint a listbox on screen . I want to show three fields in the listbox . But only 2 field can be showed in the listbox. why?
The source code is :
module set_datalist input.
data:begin of itab occurs 0,
BNAME like USR02-BNAME,
GLTGV like usr02-gltgv,
GLTGB like usr02-gltgb,
end of itab.
select * from usr02 into corresponding fields of table itab.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'BNAME'
value_org = 'S'
TABLES
value_tab = itab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
endmodule. " set_datalist INPUT
when itab has 2 fields ,for example
data:begin of itab occurs 0,
BNAME like USR02-BNAME,
GLTGV like usr02-gltgv,
GLTGB like usr02-gltgb, " delete the field
end of itab.
the listbox has value, but define 3 fields ,the listbox has no value,for example:
data:begin of itab occurs 0,
BNAME like USR02-BNAME,
GLTGV like usr02-gltgv,
GLTGB like usr02-gltgb,
end of itab.
My SAP version is 4.6c. Could you pls help me?
2007 Jun 07 10:28 AM
HI,
try this code
&----
*& Report ZZZ_TESTING
*&
&----
*&
*&
&----
REPORT ZZZ_TESTING.
TYPE-POOLS: VRM.
DATA: NAME TYPE VRM_ID,
LIST TYPE VRM_VALUES,
VALUE LIKE LINE OF LIST.
TYPES: BEGIN OF T_BELNR,
LIFNR TYPE LIFNR,
BELNR TYPE BELNR_D,
END OF T_BELNR,
T_IT_BELNR TYPE STANDARD TABLE OF T_BELNR.
DATA: GIT_BELNR TYPE T_IT_BELNR,
GWA_BELNR TYPE T_BELNR,
G_BELNR TYPE BELNR_D,
G_COUNT TYPE I.
CLEAR: GWA_BELNR, G_BELNR, G_COUNT.
REFRESH: GIT_BELNR.
CALL SCREEN 1.
&----
*& Module FILL_DATA OUTPUT
&----
text
----
MODULE FILL_DATA OUTPUT.
G_COUNT = G_COUNT + 1.
IF G_COUNT = 1.
SELECT LIFNR BELNR
FROM BSIK
INTO TABLE GIT_BELNR
WHERE LIFNR = '0000000401'
OR LIFNR = '0000000425'.
LOOP AT GIT_BELNR INTO GWA_BELNR.
VALUE-KEY = GWA_BELNR-BELNR.
VALUE-TEXT = 'VENDORNAME'.
VALUE-TEXT = VALUE-TEXT + 1.
APPEND VALUE TO LIST .
ENDLOOP.
NAME = 'GWA_BELNR-BELNR'.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = NAME
VALUES = LIST[].
ENDIF.
ENDMODULE. " FILL_DATA OUTPUT
&----
*& Module STATUS_0001 OUTPUT
&----
text
----
MODULE STATUS_0001 OUTPUT.
CASE SY-DYNNR.
WHEN '0001'.
SET PF-STATUS 'GUISTATUS'.
SET TITLEBAR 'TESTING'.
ENDCASE.
ENDMODULE. " STATUS_0001 OUTPUT
&----
*& Module USER_COMMAND_0001 INPUT
&----
text
----
MODULE USER_COMMAND_0001 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0001 INPUT
&----
*& Module display_value INPUT
&----
text
----
MODULE DISPLAY_VALUE INPUT.
G_BELNR = GWA_BELNR-BELNR.
ENDMODULE. " display_value INPUT
reward points if helpful
regards,
venkatesh
2007 Jun 07 10:50 AM
John,
Declare : DATA: return_tab LIKE ddshretval OCCURS 0 WITH HEADER LINE.
then add return_tab = return_tab in your function module and check.
At the end after function module add :
IF sy-subrc = 0.
READ TABLE itab INDEX 1.
BNAME = return_tab-fieldval.
ENDIF.
Thanks,
Shweta
2007 Jun 07 10:52 AM
John,
Declare : DATA: return_tab LIKE ddshretval OCCURS 0 WITH HEADER LINE.
then add return_tab = return_tab in your function module and check.
At the end after function module add :
IF sy-subrc = 0.
READ TABLE itab INDEX 1.
BNAME = return_tab-fieldval.
ENDIF.