Thursday, August 21, 2025

๐Ÿ”„ Practicals Basics Programs - Imperative Logic 5

Write an executable program which has a routine that receives an internal table and prints how many fields are blank by line (the type of table must have at least 4 fields).

Output must be generated as:
Line [line number] => [number of blank fields] + " blank fields"
Total: [total number of blank fields]

Solution:

REPORT z_abap101_062. 
"---------------------------
" 1. Define Types
"---------------------------
TYPES: BEGIN OF ty_line,
         id            TYPE c LENGTH 10,
         name          TYPE string,
         value         TYPE i,
         creation_date TYPE d,
       END OF ty_line.
TYPES: ty_table TYPE STANDARD TABLE OF ty_line.

 

"---------------------------
" 2. Routine: Count Blank Fields
"---------------------------
FORM count_initial_fields_of_line USING us_table TYPE ty_table.
  DATA lwa_line TYPE ty_line.
  DATA lv_initial_field_total TYPE i.
  DATA lv_initial_field TYPE i.
  LOOP AT us_table INTO lwa_line.
    CLEAR lv_initial_field.
    " Check each field for blank/initial values
    IF lwa_line-id IS INITIAL.
      lv_initial_field = lv_initial_field + 1.
    ENDIF.
    IF lwa_line-name IS INITIAL.
      lv_initial_field = lv_initial_field + 1.
    ENDIF.
    IF lwa_line-value IS INITIAL.
      lv_initial_field = lv_initial_field + 1.
    ENDIF.
    IF lwa_line-creation_date IS INITIAL.
      lv_initial_field = lv_initial_field + 1.
    ENDIF.
    " Print per line result
    WRITE: / 'Line', sy-tabix, '=>', lv_initial_field, 'blank fields'.
    " Add to total
    lv_initial_field_total = lv_initial_field_total + lv_initial_field.
  ENDLOOP.
  " Print total count
  WRITE: / 'Total:', lv_initial_field_total.
  WRITE: / sy-uline.
ENDFORM. " count_initial_fields_of_line

 

"---------------------------
" 3. Start-of-Selection
"---------------------------
START-OF-SELECTION.
  DATA itab TYPE ty_table.
  DATA wa   TYPE ty_line.
  " Line 1: All fields filled
  wa-id = '1'.
  wa-name = 'John'.
  wa-value = 50.
  wa-creation_date = '20140727'.
  APPEND wa TO itab.
  CLEAR wa.
  PERFORM count_initial_fields_of_line USING itab.
  " Line 2: Missing creation_date
  wa-id = '2'.
  wa-name = 'Mary'.
  wa-value = 20.
  APPEND wa TO itab.
  CLEAR wa.
  PERFORM count_initial_fields_of_line USING itab.
  " Line 3: Missing value & creation_date
  wa-id = '3'.
  wa-name = 'Max'.
  APPEND wa TO itab.
  CLEAR wa.
  PERFORM count_initial_fields_of_line USING itab.
  " Line 4: Only id filled
  wa-id = '4'.
  APPEND wa TO itab.
  CLEAR wa.
  PERFORM count_initial_fields_of_line USING itab.

Output:



1 comment:

  1. Hi , It would be helpful if post some technical topics for functional consultant. Ex: Bapi,Fm, Api etc....

    ReplyDelete