Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

field-symbols

0 Kudos

Hello,

I'm beginner of abap,

I need to set-up checkbox-click to put/delete number in internal table.

but there is a way to minimize code using field-symbol or ranges.

Could you advise me how to build like ?

CASE sy-ucomm.
WHEN P01.
IF P01 = 'X'.
ls_number-lv_number = 1.
MODIFY lt_number FROM ls_number. "put number 1 to internal table

ELSE.
DELETE lt_number WHERE lv_number = 1.

ENDIF.

WHEN P02.
IF P02 = 'X'.
ls_number-lv_number = 2.
MODIFY lt_number FROM ls_number. "put number 2 to internal table

ELSE.
DELETE lt_number WHERE lv_number = 2.

ENDIF.

WHEN P03.
IF P03 = 'X'.
ls_number-lv_number = 3.
MODIFY lt_number FROM ls_number.

ELSE.
DELETE lt_number WHERE lv_number = 3.

ENDIF.
WHEN P04 ~ P99
ENDIF.
2 REPLIES 2

FredericGirod
Active Contributor

You don't need field-symbol, as you don't have dynamic field.

if sy-tcode+0(1) eq P and sy-tcode+1(2) co '0123456789'.
data(the_number) = sy-tcode+1(2).
ls_number-lv_number = the_number.
...
endif.

Sandra_Rossi
Active Contributor

frdric.girod sy-ucomm instead of sy-tcode; ASSIGN is needed for doing "if p?? = 'X'"

if sy-ucomm+0(1) eq P and sy-ucomm+1(2) co '0123456789'.
  data(the_number) = sy-ucomm+1(2).
  data(fieldname) = 'P' && the_number.
  ASSIGN (fieldname) TO FIELD-SYMBOLS(pxx).
  if <pxx> = 'X'.
    ...