Application Development and Automation 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: 
Read only

validation the input value input value

Former Member
0 Likes
842

hi,

how we can validate the user input value during alv reports.

pls give me code.

thanks and regard's.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
777

hiii

you can validate user input values on selection screen like below code

AT SELECTION-SCREEN .
  PERFORM f010_validate_material.


FORM f010_validate_material .
* Validate Material
  CHECK s_matnr IS NOT INITIAL.

  SELECT matnr
    INTO w_matnr
    FROM mara
    UP TO 1 ROWS
    WHERE matnr IN s_matnr.
  ENDSELECT.

  CHECK sy-subrc NE 0.

  SET CURSOR FIELD 'S_MATNR'.
  MESSAGE e210(zmsg).                  " Invalid Material



ENDFORM.                               " f010_validate_material

regards

twinkal

6 REPLIES 6
Read only

Former Member
0 Likes
777

Hi,

You can do the validations in the at selection-screen event.



at selection-screen.

"check for the codition.

message 'Error' type 'E'.

Thanks,

Sriram POnna.

Read only

Former Member
0 Likes
777

If its OO alv then you can do it using data changed event and then using th protocol for displaying error message.

refer BCALV_GRID_04 example program for this.

Read only

Former Member
0 Likes
778

hiii

you can validate user input values on selection screen like below code

AT SELECTION-SCREEN .
  PERFORM f010_validate_material.


FORM f010_validate_material .
* Validate Material
  CHECK s_matnr IS NOT INITIAL.

  SELECT matnr
    INTO w_matnr
    FROM mara
    UP TO 1 ROWS
    WHERE matnr IN s_matnr.
  ENDSELECT.

  CHECK sy-subrc NE 0.

  SET CURSOR FIELD 'S_MATNR'.
  MESSAGE e210(zmsg).                  " Invalid Material



ENDFORM.                               " f010_validate_material

regards

twinkal

Read only

Former Member
0 Likes
777

The Best example is

BCALV_EDIT_03

In this example it is implemented.


It is for
"Verification of modified cells

Read only

Former Member
0 Likes
777

hi,

Are you using Editable columns in your ALV? How the user is inputting the value?

Regards

Sumit AGarwal

Read only

Former Member
0 Likes
777

REPORT ZTESTDFALV1 .

*Data Declaration

*----


DATA: BEGIN OF T_EKKO,

EBELN TYPE EKPO-EBELN,

EBELP TYPE EKPO-EBELP,

END OF T_EKKO.

DATA: BEGIN OF IT_EKKO OCCURS 0.

INCLUDE STRUCTURE T_EKKO.

DATA: END OF IT_EKKO.

DATA: BEGIN OF IT_BACKUP OCCURS 0.

INCLUDE STRUCTURE T_EKKO.

DATA: END OF IT_BACKUP.

*ALV data declarations

TYPE-POOLS: SLIS. "ALV Declarations

DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV,

GD_REPID LIKE SY-REPID.

************************************************************************

*Start-of-selection.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_FIELDCATALOG.

PERFORM BUILD_LAYOUT.

IT_BACKUP[] = IT_EKKO[].

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form build_fieldcatalog

&----


  • text

----


FORM BUILD_FIELDCATALOG.

REFRESH FIELDCATALOG.

CLEAR FIELDCATALOG.

*

FIELDCATALOG-FIELDNAME = 'EBELN'.

FIELDCATALOG-SELTEXT_M = 'Purchase Order'.

FIELDCATALOG-INPUT = 'X'.

FIELDCATALOG-EDIT = 'X'.

FIELDCATALOG-COL_POS = 2.

APPEND FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'EBELP'.

FIELDCATALOG-SELTEXT_M = 'PO Item'.

FIELDCATALOG-COL_POS = 3.

APPEND FIELDCATALOG.

CLEAR FIELDCATALOG.

ENDFORM. " BUILD_FIELDCATALOG

&----


*& Form BUILD_LAYOUT

&----


  • Build layout for ALV grid report

----


FORM BUILD_LAYOUT.

"Permet d'ajuster les colonnes au text

  • gd_layout-colwidth_optimize = 'X'.

GD_LAYOUT-TOTALS_TEXT = 'Totals'(201).

  • gd_layout-box_fieldname = 'SELECT'.

  • gd_layout-box_tabname = 'IT_EKKO'.

ENDFORM. " BUILD_LAYOUT

&----


*& Form DISPLAY_ALV_REPORT

&----


  • Display report using ALV grid

----


FORM DISPLAY_ALV_REPORT.

GD_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = GD_REPID

  • i_callback_top_of_page = 'TOP-OF-PAGE'

I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • i_grid_title = 'My Title'

IS_LAYOUT = GD_LAYOUT

IT_FIELDCAT = FIELDCATALOG[]

TABLES

T_OUTTAB = IT_EKKO

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC 0.

WRITE:/ SY-SUBRC.

ENDIF.

ENDFORM. " DISPLAY_ALV_REPORT

&----


*& Form DATA_RETRIEVAL

&----


  • Retrieve data form EKPO table and populate itab it_ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN EBELP

UP TO 10 ROWS

FROM EKPO

INTO CORRESPONDING FIELDS OF TABLE IT_EKKO.

ENDFORM. " DATA_RETRIEVAL

----


  • FORM SET_PF_STATUS *

----


FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'STANDARD_FULLSCREEN1' EXCLUDING RT_EXTAB.

ENDFORM. "set_pf_status

&----


*& Form user_command

&----


  • text

----


  • -->R_UCOMM text

  • -->RS_SELFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

DATA: GD_REPID LIKE SY-REPID, "Exists

REF_GRID TYPE REF TO CL_GUI_ALV_GRID. "new

*then insert the following code in your USER_COMMAND routine...

IF REF_GRID IS INITIAL.

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

IMPORTING

E_GRID = REF_GRID.

ENDIF.

IF NOT REF_GRID IS INITIAL.

CALL METHOD REF_GRID->CHECK_CHANGED_DATA

.

ENDIF.

CASE R_UCOMM.

WHEN '&IC1'.

CHECK RS_SELFIELD-TABINDEX > 0.

IF RS_SELFIELD-VALUE EQ '6000000001'.

CALL TRANSACTION 'ZDF2'.

ENDIF.

WHEN 'REFRESH'.

READ TABLE IT_EKKO INDEX RS_SELFIELD-TABINDEX.

IF SY-SUBRC = 0.

READ TABLE IT_BACKUP INDEX RS_SELFIELD-TABINDEX.

IF SY-SUBRC = 0.

IF IT_EKKO IT_BACKUP.

  • then do your check

ENDIF.

ENDIF.

ENDIF.

PERFORM DATA_RETRIEVAL.

RS_SELFIELD-REFRESH = 'X'.

ENDCASE.

ENDFORM. "user_command

hi This will Have Input Edit field check this also..

regards

Mohammed