2009 Aug 10 7:48 AM
Hi,
I wrote the logic as follows.
Select-options: s_lgart FOR pa0015-lgart.
SELECT lgart FROM t512z INTO TABLE it_temp WHERE infty = '0015' AND lgart IN rlgart.
IF NOT it_temp[] IS INITIAL.
SORT it_temp BY lgart.
DELETE ADJACENT DUPLICATES FROM it_temp COMPARING lgart.
LOOP AT it_temp.
SELECT SINGLE lgtxt FROM t512t INTO it_temp-description
WHERE lgart = it_temp-lgart AND
sprsl = 'EN'.
IF sy-subrc = 0.
MODIFY it_temp INDEX sy-tabix.
ENDIF.
ENDLOOP.
at present in internal table it_temp having following fields.
5100 Relolump sum
5111 SIP
my requirement is : when i press F4 help on wage type in selection screen i am able to see two fields.
i used above function as follows.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGART'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'LGART'
value_org = 'S'
TABLES
value_tab = it_temp[]
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc = 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
but it is shwoing first field i.e. wage type but it is not showing wage type description.
anybody can suggest me how to fix this issue.
thanks,
maheedhar
2009 Aug 10 8:30 AM
Ensure you are typing both fields in IT_TEMP as reference to Dictionary type (i.e data element, table field)
data: begin of it_temp occurs 0,
field1 type char20, "no direct type here, only DDIC type
field2 type db_table-field, "same here i.e type as table field
end of it_temp.
Regards
Marcin
hi,
TABLES pa0015.
SELECT-OPTIONS: s_lgart FOR pa0015-lgart.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgart-low.
PERFORM f_f4help.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgart-high.
PERFORM f_f4help.
*&---------------------------------------------------------------------*
*& Form f_f4help
*&---------------------------------------------------------------------*
FORM f_f4help .
DATA : BEGIN OF it_temp OCCURS 0,
lgart TYPE t512z-lgart,
description TYPE t512t-lgtxt,
END OF it_temp.
SELECT lgart FROM t512z INTO CORRESPONDING FIELDS OF TABLE it_temp WHERE infty = '0015' AND lgart IN s_lgart.
IF NOT it_temp[] IS INITIAL.
SORT it_temp BY lgart.
DELETE ADJACENT DUPLICATES FROM it_temp COMPARING lgart.
LOOP AT it_temp.
SELECT SINGLE lgtxt FROM t512t INTO it_temp-description
WHERE lgart = it_temp-lgart AND
sprsl = 'EN'.
IF sy-subrc = 0.
MODIFY it_temp INDEX sy-tabix.
ENDIF.
ENDLOOP.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGART'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'LGART'
value_org = 'S'
TABLES
value_tab = it_temp[]
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
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_f4help
2009 Aug 10 8:05 AM
@maheedhar
hi!
write this after select-options
at selection-screen on value-request for <tabname-field name>
also,
Try commenting-
*dynpprog = sy-repid
*dynpnr = sy-dynnr
*dynprofield = 'LGART'
in FM.
Regards,
Sumit
Edited by: Sumit Nene on Aug 10, 2009 9:09 AM
2009 Aug 10 8:25 AM
Hi,
Try this, it works...
write this after select-options
at selection-screen on value-request for <the field name in select options>
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = field from int table whose value will be returned
DYNPPROG = SY-CPROG
DYNPNR = SY-DYNNR
DYNPROFIELD = 'screen field'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = internal table whose values will be shown.
EXCEPTIONS
parameter_error = 1
no_values_found = 2
others = 3.
Thanks,
2009 Aug 10 8:30 AM
Ensure you are typing both fields in IT_TEMP as reference to Dictionary type (i.e data element, table field)
data: begin of it_temp occurs 0,
field1 type char20, "no direct type here, only DDIC type
field2 type db_table-field, "same here i.e type as table field
end of it_temp.
Regards
Marcin
2009 Aug 10 8:36 AM
hi,
TABLES pa0015.
SELECT-OPTIONS: s_lgart FOR pa0015-lgart.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgart-low.
PERFORM f_f4help.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgart-high.
PERFORM f_f4help.
*&---------------------------------------------------------------------*
*& Form f_f4help
*&---------------------------------------------------------------------*
FORM f_f4help .
DATA : BEGIN OF it_temp OCCURS 0,
lgart TYPE t512z-lgart,
description TYPE t512t-lgtxt,
END OF it_temp.
SELECT lgart FROM t512z INTO CORRESPONDING FIELDS OF TABLE it_temp WHERE infty = '0015' AND lgart IN s_lgart.
IF NOT it_temp[] IS INITIAL.
SORT it_temp BY lgart.
DELETE ADJACENT DUPLICATES FROM it_temp COMPARING lgart.
LOOP AT it_temp.
SELECT SINGLE lgtxt FROM t512t INTO it_temp-description
WHERE lgart = it_temp-lgart AND
sprsl = 'EN'.
IF sy-subrc = 0.
MODIFY it_temp INDEX sy-tabix.
ENDIF.
ENDLOOP.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGART'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'LGART'
value_org = 'S'
TABLES
value_tab = it_temp[]
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
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_f4help
2009 Aug 10 8:38 AM
hi,
TABLES pa0015.
SELECT-OPTIONS: s_lgart FOR pa0015-lgart.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgart-low.
PERFORM f_f4help.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgart-high.
PERFORM f_f4help.
*&---------------------------------------------------------------------*
*& Form f_f4help
*&---------------------------------------------------------------------*
FORM f_f4help .
DATA : BEGIN OF it_temp OCCURS 0,
lgart TYPE t512z-lgart,
description TYPE t512t-lgtxt,
END OF it_temp.
SELECT lgart FROM t512z INTO CORRESPONDING FIELDS OF TABLE it_temp WHERE infty = '0015' AND lgart IN s_lgart.
IF NOT it_temp[] IS INITIAL.
SORT it_temp BY lgart.
DELETE ADJACENT DUPLICATES FROM it_temp COMPARING lgart.
LOOP AT it_temp.
SELECT SINGLE lgtxt FROM t512t INTO it_temp-description
WHERE lgart = it_temp-lgart AND
sprsl = 'EN'.
IF sy-subrc = 0.
MODIFY it_temp INDEX sy-tabix.
ENDIF.
ENDLOOP.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGART'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'LGART'
value_org = 'S'
TABLES
value_tab = it_temp[]
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
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_f4help
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |