2007 Jul 11 11:33 AM
hi,
My query is, if the user enters the value in the seclection screen.it displays what he entered but i dont want this, i want the asteric or stars to be displayed in the field where he enters. for example as we enter the password field.
2007 Jul 11 11:38 AM
do coding like this..
at selection-screen output.
loop at screen.
if screen-name = <ur parameter name or selectoption-low or high in CAPS>
screen-invisible = '1'.
modify screen.
endif.
endloop.
regards
shiba dutta
Message was edited by:
SHIBA DUTTA
2007 Jul 11 11:40 AM
2007 Jul 11 11:42 AM
Hi,
PROGRAM ZHIDE NO STANDARD PAGE HEADING.
************************************************************************
This program hides any ABAP's source code and protects it with a
password. One can still run the abap (the load version is intact)
but it can not be displayed, edited, traced, transported or generated.
If the ABAP is not hidden, the program hides it, if it is hidden, it
unhides it.
The password is hard-coded in a source code, so the first candidate
to be hided sholuld be ZHIDE itself.
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK BLOCK.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(8) PWD.
SELECTION-SCREEN POSITION 35.
PARAMETERS: PASSWORD(8) MODIF ID AAA.
SELECTION-SCREEN END OF LINE.
PARAMETERS: PROGRAM(8).
SELECTION-SCREEN END OF BLOCK BLOCK.
*
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'AAA'.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
*
INITIALIZATION.
PWD = 'PASSWORD'.
*
START-OF-SELECTION.
TABLES: TRDIR.
User name and passsword check
IF SY-UNAME <> 'IMRE' OR PASSWORD <> 'TITOK'.
WRITE: / 'Wrong password'.
EXIT.
ENDIF.
SAP owned?
IF NOT PROGRAM CP 'Z' AND NOT PROGRAM CP 'Y'.
WRITE: / 'Do not hide original SAP programs!'.
EXIT.
ENDIF.
Exists?
SELECT SINGLE * FROM TRDIR WHERE NAME = PROGRAM.
IF SY-SUBRC <> 0.
WRITE: / 'Program does not exists!'.
EXIT.
ENDIF.
Does it have a current generated version?
DATA: F1 TYPE D, F3 TYPE D.
DATA: F2 TYPE T, F4 TYPE T.
EXEC SQL.
SELECT UDAT, UTIME, SDAT, STIME INTO :F1, :F2, :F3, :F4 FROM D010LINF
WHERE PROG = :PROGRAM
ENDEXEC.
IF F1 < F3 OR ( F1 = F3 AND F2 < F4 ).
WRITE: / 'The program has no recent generated version!'.
EXIT.
ENDIF.
Compose a new program name
DATA: NEW_NAME(8), I TYPE I, J TYPE I.
NEW_NAME = PROGRAM.
DO 8 TIMES.
I = SY-INDEX - 1.
NEW_NAME+I(1) = '_'.
Search for acceptable program name variations
J = 0.
SELECT * FROM TRDIR WHERE NAME LIKE NEW_NAME.
J = J + 1.
ENDSELECT.
IF J = 1.
EXIT.
ENDIF.
NEW_NAME = PROGRAM.
ENDDO.
Can not generate appropriate program name
IF J > 1.
WRITE: / 'Can not generate appropriate program name'.
EXIT.
ENDIF.
Check if it is already in d010s (already hidden)
DATA: F5(8).
EXEC SQL.
SELECT PROG INTO :F5 FROM D010S WHERE PROG = :NEW_NAME
ENDEXEC.
IF F5 IS INITIAL.
There is no such hidden program, hide it
EXEC SQL.
UPDATE D010S SET PROG = :NEW_NAME WHERE PROG = :PROGRAM
ENDEXEC.
ELSE.
There is already a hidden program there, unhide it
EXEC SQL.
UPDATE D010S SET PROG = :PROGRAM WHERE PROG = :NEW_NAME
ENDEXEC.
ENDIF.
Reward if useful!
2007 Jul 11 11:43 AM
Hi,
The following code sets a PARAMETER to be a password input field, where for security
purposes only *'s are displayed on the screen during input
i.e. Password: *******
Parameters: p_passw like sy-uname.
*******************************************************
*AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN OUTPUT.
loop at screen.
check screen-name eq 'P_PASSW'.
move: 1 to screen-invisible.
modify screen.
endloop.
Hope this helps.
Reward if helpful.
Regards,
Sipra