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: 

Cursor position problem in custom screen of mobile data entry

Former Member
0 Kudos

Dear SAP Gurus,


We have developed a new sub screen to include batch field in the LM03/LM05, we have written a logic to validate the field, but while creating the sub screen we have removed the OK_CODE,because of that the cursor is not moving to next field,please suggest what is the logic we need to include in the user exit to move cursor to next field after scanning from sap console(Mobile device).




Thanks & Regards,

Pavan kumar.

3 REPLIES 3

Former Member
0 Kudos

Dear Sap Gurus,

Waiting for your Valuable suggestions.

Thanks & Regards,

Pavan kumar.

Former Member
0 Kudos

Dear SAP Gurus,

Below is the user exits and screen logic we have written in abap code to get enter functionality, please suggest what are the modifications we have to do in the current logic.

EXIT_SAPLLMOB_170

&---------------------------------------------------------------------*
*&  Include           ZXLRFU12
*&---------------------------------------------------------------------*
***********
data:v_batch type charg_d,
v_batch1
type charg_d.
*data:rlmob type i_rlmob.

ltap
= i_ltap.
IMPORT LTAP-CBATCH FROM MEMORY ID 'CBATCH'.
*IMPORT CURRENT_FIELD FROM MEMORY ID 'CURRFIELD'.
*EXPORT I_CURRENT_FIELD TO MEMORY ID 'CURRFIELD'.
LTAK
= I_LTAK.
rlmob
= i_rlmob.
RL02B
= I_RL02B.
TAP_INIT_SIZE
= I_TAP_INIT_SIZE.
TAP_TOTAL_LINES
= I_TAP_TOTAL_LINES.
TAP_INDEX
= I_TAP_INDEX.
TEMPORARY_INDEX
= I_TEMPORARY_INDEX.
LINE_NO_STEP_LOOP
= I_LINE_NO_STEP_LOOP.
SCREEN_FCODE
= I_SCREEN_FCODE.
CURRENT_FIELD
= I_CURRENT_FIELD.
**************
*v_batch = i_rlmob-CBATCH.
*v_batch1 = i_ltap-CHARG.

*exPORT  v_batch = v_batch to MEMORY ID 'ACTION'.
*exPORT  v_batch1 = v_batch1 to MEMORY ID 'ACTION'.

EXIT_SAPLLMOB_480

*&---------------------------------------------------------------------*
*&  Include           ZXLRFU43
*&---------------------------------------------------------------------*

*if v_batch ne v_batch1.
*  message 'Please check batch' type 'E'.
*  endif.
**************
data:v_batch type charg_d,
v_batch1
type charg_d.

data: wa_verification type SPROT_U.
O_RLMOB_PCLEAR
= RLMOB-PCLEAR.
O_RLMOB_PSAVE
= RLMOB-PSAVE.
O_RLMOB_PBACK
= RLMOB-PBACK.
O_RLMOB_PNEXT
= RLMOB-PNEXT.
O_RLMOB_PDETAIL
= RLMOB-PDETAIL.
O_RLMOB_PPGUP
= RLMOB-PPGUP.
O_RLMOB_PPGDN
= RLMOB-PPGDN.
O_RLMOB_PDIFF
= RLMOB-PDIFF.
O_LTAP_KZQUI
= LTAP-KZQUI.
O_RLMOB_CLGPLA
= RLMOB-CLGPLA.
O_RLMOB_CMATNR
= RLMOB-CMATNR.
O_RLMOB_CQTY
= RLMOB-CQTY.

EXPORT LTAP-CBATCH TO MEMORY ID 'CBATCH'.
*EXPORT CURRENT_FIELD TO MEMORY ID 'CURRFIELD'.
*O_RLMOB_CBATCH = RLMOB-CBATCH.
O_RLMOB_PENTER
= RLMOB-PENTER.
*O_CURRENT_FIELD = CURRENT_FIELD.

v_batch
= LTAP-cbatch.
v_batch1
= ltap-charg.

*      if v_batch ne ' '.
if sy-ucomm = 'SAVE'.
if v_batch ne v_batch1.
message 'Please enter correct batch' type 'E'.
*        message 'Please enter correct batch' type 'S' display like 'E'.
*        leave list-processing.
*        stop.
endif.
endif.
*******************
* CLEAR : WA_VERIFICATION.
* WA_VERIFICATION-LANGU    = 'E'.
**WA_VERIFICATION-AG       = 'ZBT'.                   "Message class
**WA_VERIFICATION-MSGNR    = '001'.             "Message number
*WA_VERIFICATION-NEWOBJ   = 'X'.
*WA_VERIFICATION-VAR1     = 'Batch'.     "Value of wrong batch
*WA_VERIFICATION-VAR2     = LTAP-Cbatch.
*WA_VERIFICATION-VAR3     = 'IS INCORRECT'.
*APPEND WA_VERIFICATION TO O_VERIFICATION_ERRORS.
*clear:WA_VERIFICATION.
*endif.

“for Enter(Cursor position from one to another field) functionality we have written the below logic in screen design”

*----------------------------------------------------------------------*
***INCLUDE ZXLRFO07 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  SET_CURSOR  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE SET_CURSOR OUTPUT.
*BREAK-POINT.
ok_code
= sy-ucomm.
*****************************   comment on 23.05.2015
IF OK_CODE = 'NEXT'.
if RLMOB-CLGPLA ne ' '.
if rlmob-cmatnr eq ' '.
*     if ok_code = 'NEXT'.
set cursor field 'RLMOB-CMATNR'.
ELSEif RLMOB-CQTY EQ ' '.
SET CURSOR FIELD 'RLMOB-CQTY'.
ELSEIF LTAP-CBATCH EQ ' '.
SET CURSOR FIELD 'LTAP-CBATCH'.
endif.
endif.
ENDIF.
***********************

*************************** add on 23.05.2015
*IF OK_CODE = 'NEXT'.

*DATA: C TYPE I,
*      M TYPE I,
*      Q TYPE I,
*      B TYPE I.
*IMPORT RLMOB-CLGPLA FROM MEMORY ID 'ZC'.
*IMPORT RLMOB-CMATNR FROM MEMORY ID 'ZM'.
*IMPORT RLMOB-CQTY FROM MEMORY ID 'ZQ'.
*IMPORT LTAP-CBATCH FROM MEMORY ID 'ZB'.
*  IF C NE 1.
*  IF LTAK-LGBZO  eq ' ' AND  LTAK-LGTOR EQ ' ' AND RLMOB-CLGPLA EQ ' '.
*    set cursor field 'RLMOB-CLGPLA'.
**     C = 1.
**     EXPORT RLMOB-CLGPLA TO MEMORY ID 'ZC'.
**     ENDIF.
**     ENDIF.
**     IF M NE 1 AND C NE 1.
*  ELSEIF LTAK-LGBZO  eq ' ' AND  LTAK-LGTOR EQ ' ' AND rlmob-cmatnr eq ' '.
**  IF LTAK-LGBZO  eq ' ' AND  LTAK-LGTOR EQ ' ' AND rlmob-cmatnr eq ' '.
**     if ok_code = 'NEXT'.
*       set cursor field 'RLMOB-CMATNR'.
**       M = 1.
**       EXPORT RLMOB-CMATNR TO MEMORY ID 'ZM'.
**       ENDIF.
**       ENDIF.
*    ELSEIF LTAK-LGBZO  eq ' ' AND  LTAK-LGTOR EQ ' ' AND RLMOB-CQTY EQ ' '.
**IF Q NE 1 AND C NE 1.
**IF LTAK-LGBZO  eq ' ' AND  LTAK-LGTOR EQ ' ' AND RLMOB-CQTY EQ ' '.
*      SET CURSOR FIELD 'RLMOB-CQTY'.
**      Q = 1.
**      EXPORT RLMOB-CQTY TO MEMORY ID 'ZQ'.
**      ENDIF.
**      ENDIF.
**      IF B NE 1 AND C NE 1 .
*     ELSEIF LTAK-LGBZO  eq ' ' AND  LTAK-LGTOR EQ ' ' AND LTAP-CBATCH EQ ' '.
**     IF LTAK-LGBZO  eq ' ' AND  LTAK-LGTOR EQ ' ' AND LTAP-CBATCH EQ ' '.
*        SET CURSOR FIELD 'LTAP-CBATCH'.
**        B = 1.
**        EXPORT LTAP-CBATCH TO MEMORY ID 'ZB'.
*    endif.
***    endif.
***    ENDIF.
******************************

*  IMPORT CURRENT_FIELD FROM MEMORY ID 'CURRFIELD'.
*  IMPORT I_CURRENT_FIELD FROM MEMORY ID 'CURRFIELD'.
*  IF CURRENT_FIELD IS INITIAL.
*    CURRENT_FIELD = I_CURRENT_FIELD.
*    ENDIF.

*  IF OK_CODE = 'NEXT'.
*
*    IF RLMOB-CMATNR ne ' '.
*      CURRENT_FIELD = 'RLMOB-CMATNR'.
*      elseIF RLMOB-CLGPLA NE ' '.
*        CURRENT_FIELD = 'RLMOB-CLGPLA'.
*      ENDIF.
**    ENDIF.
**  PERFORM CURSOR_POS_BY_TCODE.
*  I = STRLEN( RLMOB-VSOLA ).
*  IF LINE_NO_STEP_LOOP > 0.
*    CURRENT_LINE = TAP_INDEX + ( LINE_NO_STEP_LOOP - 1 ).
*  ELSE.
*    CURRENT_LINE = TAP_INDEX.
*  ENDIF.
*  IF NOT CURRENT_FIELD IS INITIAL.
*    ASSIGN (CURRENT_FIELD) TO <FIELDNAME>.
*  ENDIF.
*  ENDIF.
ENDMODULE.                 " SET_CURSOR  OUTPUT

Former Member
0 Kudos

Dear SAP Gurus,

Waiting for your valuable suggestion.

Regards,

Pavan Kumar.