Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Legend

2021-08-XX v.1.16.0
------------------
* Y_CHECK_FORM: Screen Events (#454)
* Magic Number: CASE SY-TABIX and CO NUMBERS (#480)
* Magic Number: Leading Zeros (#479)
* Prefer New to Create Object: Dynamic Type (#469)
Expand Down
29 changes: 28 additions & 1 deletion src/checks/y_check_form.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ CLASS y_check_form DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC.
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.

PRIVATE SECTION.
METHODS is_screen_event RETURNING VALUE(result) TYPE abap_bool.

ENDCLASS.


Expand All @@ -28,7 +31,8 @@ CLASS Y_CHECK_FORM IMPLEMENTATION.


METHOD inspect_tokens.
CHECK get_token_abs( statement-from ) = 'FORM'.
CHECK keyword( ) = if_kaizen_keywords_c=>gc_form.
CHECK is_screen_event( ) = abap_false.

DATA(check_configuration) = detect_check_configuration( statement ).

Expand All @@ -39,4 +43,27 @@ CLASS Y_CHECK_FORM IMPLEMENTATION.
ENDMETHOD.


METHOD is_screen_event.
DATA(form) = get_token_abs( statement_wa-from + 1 ).

SELECT tabname
FROM tvimf
INTO TABLE @DATA(views)
WHERE formname = @form.

IF views IS INITIAL.
RETURN.
ENDIF.

LOOP AT views ASSIGNING FIELD-SYMBOL(<view>).
LOOP AT ref_scan->tokens TRANSPORTING NO FIELDS WHERE str = <view>.
IF get_token_abs( sy-tabix - 1 ) = if_kaizen_keywords_c=>gc_tables.
result = abap_true.
RETURN.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDMETHOD.


ENDCLASS.