Tuesday, 17 September 2013

SEPTEMBER 17

*&---------------------------------------------------------------------*
*&      Module  STATUS_0117  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0117 OUTPUT.
  SET PF-STATUS '117'.
  SET TITLEBAR '117'.

  SELECT SINGLE EMP_ID EMP_NAME DEPT_NAME
    FROM ZPROJECT_EMP
    INTO (ZPROJECT_EMP-EMP_ID , ZPROJECT_EMP-EMP_NAME , ZPROJECT_EMP-DEPT_NAME)
     WHERE EMP_ID = USER_ID.

  SELECT SINGLE PROJECT_START_DATE PROJECT_END_DATE
    FROM ZPROJECT_DETAILS
    INTO (ZPROJECT_DETAILS-PROJECT_START_DATE , ZPROJECT_DETAILS-PROJECT_END_DATE)
    WHERE EMP_ID = USER_ID.

ENDMODULE.                 " STATUS_0117  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0117  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0117 INPUT.
  CASE SY-UCOMM.

    WHEN 'EXIT'.
      LEAVE PROGRAM.

    WHEN 'CANCEL'.
      CLEAR : USER_ID , PASSWORD.
      CALL SCREEN 1000.

    WHEN 'BACK'.
      clear zproject_kpi.
      CALL SCREEN 0115.

    WHEN 'RESET'.
      CLEAR : ZPROJECT_KPI.

    WHEN 'SUBMIT'.
      TEMP_KPI-EMP_ID = ZPROJECT_EMP-EMP_ID.
      TEMP_KPI-EMP_NAME = ZPROJECT_EMP-EMP_NAME.
      TEMP_KPI-DEPT_NAME = ZPROJECT_EMP-DEPT_NAME.
      TEMP_KPI-KPI_1 = ZPROJECT_KPI-KPI_1.
      TEMP_KPI-KPI_2 = ZPROJECT_KPI-KPI_2.
      TEMP_KPI-KPI_3 = ZPROJECT_KPI-KPI_3.
      TEMP_KPI-KPI_4 = ZPROJECT_KPI-KPI_4.
      TEMP_KPI-KPI_5 = ZPROJECT_KPI-KPI_5.
      TEMP_KPI-TIME_1 = ZPROJECT_KPI-TIME_1.
      TEMP_KPI-TIME_2 = ZPROJECT_KPI-TIME_2.
      TEMP_KPI-TIME_3 = ZPROJECT_KPI-TIME_3.
      TEMP_KPI-TIME_4 = ZPROJECT_KPI-TIME_4.
      TEMP_KPI-TIME_5 = ZPROJECT_KPI-TIME_5.
      TEMP_KPI-QUALITY_1 = ZPROJECT_KPI-QUALITY_1.
      TEMP_KPI-QUALITY_2 = ZPROJECT_KPI-QUALITY_2.
      TEMP_KPI-QUALITY_3 = ZPROJECT_KPI-QUALITY_3.
      TEMP_KPI-QUALITY_4 = ZPROJECT_KPI-QUALITY_4.
      TEMP_KPI-QUALITY_5 = ZPROJECT_KPI-QUALITY_5.


      total =  ZPROJECT_KPI-TIME_1 + ZPROJECT_KPI-TIME_2 + ZPROJECT_KPI-TIME_3 +
        ZPROJECT_KPI-TIME_4 + ZPROJECT_KPI-TIME_5 + ZPROJECT_KPI-QUALITY_1 + ZPROJECT_KPI-QUALITY_2 +
        ZPROJECT_KPI-QUALITY_3 + ZPROJECT_KPI-QUALITY_4 + ZPROJECT_KPI-QUALITY_5 .

      if total gt 100.
        MESSAGE i003(zmsg_eas).
        MESSAGE i004(zmsg_eas).
        CLEAR : ZPROJECT_KPI-TIME_1 , ZPROJECT_KPI-TIME_2 , ZPROJECT_KPI-TIME_3 ,
      ZPROJECT_KPI-TIME_4 , ZPROJECT_KPI-TIME_5 , ZPROJECT_KPI-QUALITY_1 , ZPROJECT_KPI-QUALITY_2 ,
      ZPROJECT_KPI-QUALITY_3 , ZPROJECT_KPI-QUALITY_4 , ZPROJECT_KPI-QUALITY_5 .
      ELSE.
        Modify ZPROJECT_KPI FROM TEMP_KPI.
        MESSAGE i005(zmsg_eas).
        CALL SCREEN 115.
      ENDIF.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0117  INPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_1115  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_1115 OUTPUT.
  SET PF-STATUS '1115'.
  SET TITLEBAR '1115'.

  if sy-ucomm = 'RESET_ALL' or sy-ucomm = 'CLEAR'.
  else.

    SELECT SINGLE EMP_ID EMP_NAME DEPT_NAME
      FROM ZPROJECT_EMP
      INTO (ZPROJECT_EMP-EMP_ID , ZPROJECT_EMP-EMP_NAME , ZPROJECT_EMP-DEPT_NAME )
      WHERE EMP_ID = USER_ID.

    SELECT SINGLE  KPI_1 KPI_2 KPI_3 KPI_4 KPI_5
    TIME_1 TIME_2 TIME_3 TIME_4 TIME_5
    QUALITY_1 QUALITY_2 QUALITY_3 QUALITY_4 QUALITY_5
      FROM ZPROJECT_KPI
      INTO (ZPROJECT_KPI-KPI_1 ,  ZPROJECT_KPI-KPI_2 ,ZPROJECT_KPI-KPI_3 ,
     ZPROJECT_KPI-KPI_4 , ZPROJECT_KPI-KPI_5 ,ZPROJECT_KPI-TIME_1 ,
    ZPROJECT_KPI-TIME_2 , ZPROJECT_KPI-TIME_3 , ZPROJECT_KPI-TIME_4 ,
    ZPROJECT_KPI-TIME_5, ZPROJECT_KPI-QUALITY_1 , ZPROJECT_KPI-QUALITY_2 ,
     ZPROJECT_KPI-QUALITY_3 , ZPROJECT_KPI-QUALITY_4 , ZPROJECT_KPI-QUALITY_5)
      WHERE EMP_ID = USER_ID.

  endif.
ENDMODULE.                 " STATUS_1115  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_1115  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_1115 INPUT.
  CASE SY-UCOMM.

    WHEN 'EXIT'.
      LEAVE PROGRAM.

    WHEN 'CANCEL'.
      CLEAR : USER_ID , PASSWORD.
      CALL SCREEN 1000.

    WHEN 'BACK'.
      CALL SCREEN 115.

    WHEN 'RESET_ALL'.
      CLEAR ZPROJECT_KPI.

    WHEN 'CLEAR'.
      IF R1 = 'X'.
        CLEAR : ZPROJECT_KPI-KPI_1 , ZPROJECT_KPI-TIME_1 , ZPROJECT_KPI-QUALITY_1.
      ELSEIF R2 = 'X'.
        CLEAR : ZPROJECT_KPI-KPI_2 , ZPROJECT_KPI-TIME_2 , ZPROJECT_KPI-QUALITY_2.
      ELSEIF R3 = 'X'.
        CLEAR : ZPROJECT_KPI-KPI_3 , ZPROJECT_KPI-TIME_3 , ZPROJECT_KPI-QUALITY_3.
      ELSEIF R4 = 'X'.
        CLEAR : ZPROJECT_KPI-KPI_4 , ZPROJECT_KPI-TIME_4 , ZPROJECT_KPI-QUALITY_4.
      ELSEIF R5 = 'X'.
        CLEAR : ZPROJECT_KPI-KPI_5 , ZPROJECT_KPI-TIME_5 , ZPROJECT_KPI-QUALITY_5.
      ENDIF.

    WHEN 'SUBMIT'.
      IF USER_ID EQ TEMP_ID.
        TEMP_KPI-EMP_ID = ZPROJECT_EMP-EMP_ID.
        TEMP_KPI-EMP_NAME = ZPROJECT_EMP-EMP_NAME.
        TEMP_KPI-DEPT_NAME = ZPROJECT_EMP-DEPT_NAME.
        TEMP_KPI-KPI_1 = ZPROJECT_KPI-KPI_1.
        TEMP_KPI-KPI_2 = ZPROJECT_KPI-KPI_2.
        TEMP_KPI-KPI_3 = ZPROJECT_KPI-KPI_3.
        TEMP_KPI-KPI_4 = ZPROJECT_KPI-KPI_4.
        TEMP_KPI-KPI_5 = ZPROJECT_KPI-KPI_5.
        TEMP_KPI-TIME_1 = ZPROJECT_KPI-TIME_1.
        TEMP_KPI-TIME_2 = ZPROJECT_KPI-TIME_2.
        TEMP_KPI-TIME_3 = ZPROJECT_KPI-TIME_3.
        TEMP_KPI-TIME_4 = ZPROJECT_KPI-TIME_4.
        TEMP_KPI-TIME_5 = ZPROJECT_KPI-TIME_5.
        TEMP_KPI-QUALITY_1 = ZPROJECT_KPI-QUALITY_1.
        TEMP_KPI-QUALITY_2 = ZPROJECT_KPI-QUALITY_2.
        TEMP_KPI-QUALITY_3 = ZPROJECT_KPI-QUALITY_3.
        TEMP_KPI-QUALITY_4 = ZPROJECT_KPI-QUALITY_4.
        TEMP_KPI-QUALITY_5 = ZPROJECT_KPI-QUALITY_5.
        MODIFY ZPROJECT_KPI FROM TEMP_KPI.
        MESSAGE i005(zmsg_eas).
      ENDIF.

  ENDCASE.
ENDMODULE.                 " USER_COMMAND_1115  INPUT


Output:
define KPI and marks screen
here, the entry for appraisal year is mandatory. As, the performance is measured periodically, so the date field is mandatory. further all the details to display or view will depend on the appraisal year selected.

values for KPI and marks entered
To modify KPI or marks or to view the details the following screen appears. here, the dates correponding to the employee lgged in will be available in the drop down list. and the data is retrieved according to the year selected.

mandatory date fields entered
display of values for the selected appraisal year



Monday, 16 September 2013

SEPTEMBER 16

*&---------------------------------------------------------------------*
*&      Module  STATUS_0116  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0116 OUTPUT.
  SET PF-STATUS '116'.
  SET TITLEBAR '116'.

  SELECT SINGLE EMP_ID EMP_NAME DEPT_NAME  FROM ZPROJECT_EMP
    INTO (ZPROJECT_EMP-EMP_ID , ZPROJECT_EMP-EMP_NAME , ZPROJECT_EMP-DEPT_NAME )
    WHERE EMP_ID = USER_ID.

ENDMODULE.                 " STATUS_0116  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0116  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0116 INPUT.
  CASE SY-UCOMM.

    WHEN 'RESET'.
      CLEAR : PROJECT_NAME , PROJECT_DESCRIPTION.

    WHEN 'CANCEL'.
      CLEAR : USER_ID , PASSWORD.
      CALL SCREEN 1000.

    WHEN 'EXIT'.
      LEAVE PROGRAM.

    WHEN 'BACK'.
      CALL SCREEN 115.

    WHEN 'SUBMIT'.
      TEMP_ID = USER_ID.
      TEMP_P_NAME = PROJECT_NAME.
      TEMP_P_STAT = PROJECT_STATUS.

      TEMP_DETAILS-EMP_ID = USER_ID.
      TEMP_DETAILS-EMP_NAME = ZPROJECT_EMP-EMP_NAME.
      TEMP_DETAILS-DEPT_NAME = ZPROJECT_EMP-DEPT_NAME.
      TEMP_DETAILS-PROJECT_NAME = PROJECT_NAME.
      TEMP_DETAILS-PROJECT_DESCRIPTION = PROJECT_DESCRIPTION.
      TEMP_DETAILS-PROJECT_START_DATE = PROJECT_START_DATE.
      TEMP_DETAILS-PROJECT_END_DATE = PROJECT_END_DATE.

      IF COMPLETE = 'X'.
        PROJECT_STATUS = 'COMPLETE'.
        TEMP_DETAILS-PROJECT_STATUS = PROJECT_STATUS.
      ELSEIF UNDER_PROCESS = 'X'.
        PROJECT_STATUS = 'UNDER PROCESS'.
        TEMP_DETAILS-PROJECT_STATUS = PROJECT_STATUS.
      ELSEIF NOT_STARTED = 'X'.
        PROJECT_STATUS = 'NOT STARTED'.
        TEMP_DETAILS-PROJECT_STATUS = PROJECT_STATUS.
      ENDIF.
      MODIFY ZPROJECT_DETAILS FROM TEMP_DETAILS.
      MESSAGE i005(zmsg_eas).
      CLEAR : PROJECT_NAME , PROJECT_DESCRIPTION, PROJECT_START_DATE, PROJECT_START_DATE ,
      PROJECT_END_DATE, PROJECT_STATUS.
      call SCREEN 115.

      IF USER_ID EQ TEMP_ID AND PROJECT_NAME EQ TEMP_P_NAME
        AND NOT PROJECT_STATUS EQ TEMP_P_STAT.
        MODIFY ZPROJECT_DETAILS FROM TEMP_DETAILS.
      ENDIF.
      MESSAGE i005(zmsg_eas).
      CLEAR : PROJECT_NAME , PROJECT_DESCRIPTION, PROJECT_START_DATE, PROJECT_START_DATE ,
      PROJECT_END_DATE , PROJECT_STATUS.
      CALL SCREEN 115.
  ENDCASE.
ENDMODULE.               " USER_COMMAND_0116  INPUT


Output:
entry for project details of employee

the data is entered by the employee as shown:
values of project entered

when submitted a successfully submitted message is displayed and the data is stored in the DDIC table ZPROJECT_DETAILS.

data submitted successfully

Friday, 13 September 2013

SEPTEMBER 13

*&---------------------------------------------------------------------*
*&      Module  STATUS_0110  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0110 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
  SET TITLEBAR '110'.

ENDMODULE.                 " STATUS_0110  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0110  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0110 INPUT.
  CASE SY-UCOMM.

    WHEN 'RESET'.
      CLEAR: USER_ID , PASSWORD.

    WHEN 'EXIT' .
      LEAVE PROGRAM.

    WHEN 'DISPLAY'.
      SELECT SINGLE EMP_ID FROM ZPROJECT_EMP INTO TEMP_ID
           WHERE EMP_ID = USER_ID.
      SELECT SINGLE PASSCODE FROM ZPROJECT_EMP INTO  TEMP_PASS
        WHERE EMP_ID = USER_ID.
      IF USER_ID  EQ TEMP_ID AND PASSWORD EQ TEMP_PASS .
        MESSAGE 'EMPLOYEE LOGIN' TYPE 'S'.
        CALL SCREEN 0115.
      ELSEIF USER_ID EQ TEMP_ID AND PASSWORD EQ '   '.
        MESSAGE I000(zmsg_eas).
      ELSEIF USER_ID EQ TEMP_ID AND NOT PASSWORD EQ TEMP_PASS.
        CLEAR PASSWORD.
        MESSAGE I001(ZMSG_EAS).
      ELSE.
        CLEAR: USER_ID , PASSWORD.
        MESSAGE I002(ZMSG_EAS).
        CALL SCREEN 1000.
      ENDIF.

    WHEN 'BACK'.
      CLEAR : USER_ID , PASSWORD.
      CALL SCREEN 1000.

  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0110  INPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0115  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0115 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
  SET TITLEBAR '115'.

ENDMODULE.                 " STATUS_0115  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0115  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0115 INPUT.
  CASE SY-UCOMM.

    WHEN 'BACK'.
      CLEAR : USER_ID , PASSWORD.
      CALL SCREEN 110.

    WHEN 'EXIT'.
      LEAVE PROGRAM.

    WHEN 'CANCEL'.
      CLEAR : USER_ID , PASSWORD.
      CALL SCREEN 1000.

    WHEN 'PRINT'.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname = 'ZPROJECT_EAS'
        IMPORTING
          fm_name  = fname.

      CALL FUNCTION fname
        EXPORTING
          user_id = USER_ID.

    WHEN 'PROJECT_DETAILS'.
      CALL SCREEN 0116.

    WHEN 'DEFINE_KPI_&_MARKS'.
      CALL SCREEN 0117.

    WHEN 'UPDATE_BASIC_DETAILS'.
      CALL SCREEN 0118.

    WHEN 'VMAAR'.
      CALL SCREEN 119.

    WHEN 'RGAMR'.
      CALL SCREEN 123.

    WHEN 'MKOM'.
      CALL SCREEN 1115.

    WHEN 'VKM'.
      SELECT * FROM ZPROJECT_KPI INTO TABLE KPI_DETAILS WHERE EMP_ID = USER_ID.
      refresh IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'EMP_ID'.
      WA_FIELDCAT-SELTEXT_M = 'EMP_ID'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'DEPT_NAME'.
      WA_FIELDCAT-SELTEXT_M = 'DEPT_NAME'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'KPI_1'.
      WA_FIELDCAT-SELTEXT_M = 'KPI_1'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'TIME_1'.
      WA_FIELDCAT-SELTEXT_M = 'TIME_1'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'QUALITY_1'.
      WA_FIELDCAT-SELTEXT_M = 'QUALITY_1'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'KPI_2'.
      WA_FIELDCAT-SELTEXT_M = 'KPI_2'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'TIME_2'.
      WA_FIELDCAT-SELTEXT_M = 'TIME_2'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'QUALITY_2'.
      WA_FIELDCAT-SELTEXT_M = 'QUALITY_2'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'KPI_3'.
      WA_FIELDCAT-SELTEXT_M = 'KPI_3'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'TIME_3'.
      WA_FIELDCAT-SELTEXT_M = 'TIME_3'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'QUALITY_3'.
      WA_FIELDCAT-SELTEXT_M = 'QUALITY_3'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'KPI_4'.
      WA_FIELDCAT-SELTEXT_M = 'KPI_4'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'TIME_4'.
      WA_FIELDCAT-SELTEXT_M = 'TIME_4'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'QUALITY_4'.
      WA_FIELDCAT-SELTEXT_M = 'QUALITY_4'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'KPI_5'.
      WA_FIELDCAT-SELTEXT_M = 'KPI_5'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'TIME_5'.
      WA_FIELDCAT-SELTEXT_M = 'TIME_5'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'QUALITY_5'.
      WA_FIELDCAT-SELTEXT_M = 'QUALITY_5'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          IT_FIELDCAT = IT_FIELDCAT
        TABLES
          T_OUTTAB    = KPI_DETAILS.

    WHEN 'VPR'.
      SELECT * FROM ZPROJECT_DETAILS INTO TABLE PROJECT_DETAILS
        WHERE EMP_ID = USER_ID.
      refresh IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'EMP_ID'.
      WA_FIELDCAT-SELTEXT_M = 'EMP_ID'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'DEPT_NAME'.
      WA_FIELDCAT-SELTEXT_M = 'DEPT_NAME'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.


      WA_FIELDCAT-FIELDNAME = 'PROJECT_NAME'.
      WA_FIELDCAT-SELTEXT_M = 'PROJECT_NAME'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      WA_FIELDCAT-FIELDNAME = 'PROJECT_STATUS'.
      WA_FIELDCAT-SELTEXT_M = 'PROJECT_STATUS'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.

      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          IT_FIELDCAT = IT_FIELDCAT
        TABLES
          T_OUTTAB    = PROJECT_DETAILS.

  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0115  INPUT


Output:


Employee Login Page
Employee Navigation page

Thursday, 12 September 2013

SEPTEMBER 12

first we define all the data types required in the program work spaces and internal tables and data dictionary tables used in the program. 
there are temporary data items to hold the data for certain time and then their spaces are cleared. they are also declared in the beginning.

*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
*& Report  ZPROJECT_EAS
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*

REPORT  ZPROJECT_EAS.
*&---------------------------------------------------------------------*
*&* DATA DECLARATION FOR SCREEN ELEMENTS
*&
*&---------------------------------------------------------------------*
DATA:
      USER_ID                 TYPE I,
      PASSWORD(10)            TYPE C,
      PROJECT_NAME(35)        TYPE C,
      PROJECT_DESCRIPTION(50) TYPE C,
      PROJECT_STATUS(15)      TYPE C,
      PROJECT_START_DATE      TYPE date,
      PROJECT_END_DATE        TYPE date,
      COMPLETE(1)             TYPE C ,
      UNDER_PROCESS(1)        TYPE C ,
      NOT_STARTED(1)          TYPE C,
      DEPT_NAME               TYPE ZPROJECT_EMP-DEPT_NAME,
      EMP_ID                  TYPE ZPROJECT_EMP-EMP_ID,
      EMP_NAME                TYPE ZPROJECT_EMP-EMP_NAME,
      DEPT_NO                 TYPE ZPROJECT_EMP-DEPT_NO,
      JOINING_DATE            TYPE ZPROJECT_EMP-JOINING_DATE,
      PASSCODE                TYPE ZPROJECT_EMP-PASSCODE,
      EMP_PHONE               TYPE ZPROJECT_EMP-EMP_PHONE,
      ADDRESS                 TYPE ZPROJECT_EMP-ADDRESS,
      KPI_1                   TYPE ZPROJECT_KPI-KPI_1,
      KPI_2                   TYPE ZPROJECT_KPI-KPI_2,
      KPI_3                   TYPE ZPROJECT_KPI-KPI_3,
      KPI_4                   TYPE ZPROJECT_KPI-KPI_4,
      KPI_5                   TYPE ZPROJECT_KPI-KPI_5,
      TIME_1                  TYPE ZPROJECT_KPI-TIME_1,
      TIME_2                  TYPE ZPROJECT_KPI-TIME_2,
      TIME_3                  TYPE ZPROJECT_KPI-TIME_3,
      TIME_4                  TYPE ZPROJECT_KPI-TIME_4,
      TIME_5                  TYPE ZPROJECT_KPI-TIME_5,
      QUALITY_1               TYPE ZPROJECT_KPI-QUALITY_1,
      QUALITY_2               TYPE ZPROJECT_KPI-QUALITY_2,
      QUALITY_3               TYPE ZPROJECT_KPI-QUALITY_3,
      QUALITY_4               TYPE ZPROJECT_KPI-QUALITY_4,
      QUALITY_5               TYPE ZPROJECT_KPI-QUALITY_5,
      MARKS_T1                TYPE ZPROJECT_MARKS-MARKS_T1,
      MARKS_T2                TYPE ZPROJECT_MARKS-MARKS_T2,
      MARKS_T3                TYPE ZPROJECT_MARKS-MARKS_T3,
      MARKS_T4                TYPE ZPROJECT_MARKS-MARKS_T4,
      MARKS_T5                TYPE ZPROJECT_MARKS-MARKS_T5,
      MARKS_Q1                TYPE ZPROJECT_MARKS-MARKS_Q1,
      MARKS_Q2                TYPE ZPROJECT_MARKS-MARKS_Q2,
      MARKS_Q3                TYPE ZPROJECT_MARKS-MARKS_Q3,
      MARKS_Q4                TYPE ZPROJECT_MARKS-MARKS_Q4,
      MARKS_Q5                TYPE ZPROJECT_MARKS-MARKS_Q5,
      MARK                    TYPE ZPROJECT_KPI-MARK,
      MAXIMUM_MARKS_TIME      TYPE ZPROJECT_RECORD-MAXIMUM_MARKS_TIME,
      MAXIMUM_MARKS_QUALITY   TYPE ZPROJECT_RECORD-MAXIMUM_MARKS_QUALITY,
      MARKS_OBTAINED_TIME     TYPE ZPROJECT_RECORD-MARKS_OBTAINED_TIME,
      MARKS_OBTAINED_QUALITY  TYPE ZPROJECT_RECORD-MARKS_OBTAINED_QUALITY,
      TOTAL_MAXIMUM_MARKS     TYPE ZPROJECT_RECORD-TOTAL_MAXIMUM_MARKS,
      TOTAL_OBTAINED_MARKS    TYPE ZPROJECT_RECORD-TOTAL_OBTAINED_MARKS,
      PERFORMANCE             TYPE ZPROJECT_RECORD-PERFORMANCE,
      total                   TYPE i,
      R1 , R2 , R3 , R4 , R5 , R6 , R7 , R8 ,R9 ,R10 TYPE C,
      CHK1 , CHK2 , CHK3 , CHK4 , CHK5 , CHK6 , CHK7 , CHK8 , CHK9 ,CHK10  TYPE C,
      fname TYPE rs38l_fnam.

*&---------------------------------------------------------------------*
*&* DATA DECLARATION FOR TEMPORARY ITEMS
*&
*&---------------------------------------------------------------------*
DATA:  TEMP_PASS(10)     TYPE C,
       TEMP_ID           TYPE I,
       TEMP_P_STAT(15)   TYPE C,
       TEMP_P_NAME(35)   TYPE C ,
       TEMP_MGR_DEPT(15) TYPE C,
       TEMP_EMP_ID       TYPE I,
       TEMP_DEPT(15)     TYPE C.

*&---------------------------------------------------------------------*
*&* DATA DECLARATION FOR WORKSPACE ITEMS
*&
*&---------------------------------------------------------------------*
DATA:  TEMP_DETAILS   TYPE ZPROJECT_DETAILS,
       TEMP_KPI       TYPE ZPROJECT_KPI ,
       TEMP_EMP       TYPE ZPROJECT_EMP,
       TEMP_MARKS     TYPE ZPROJECT_MARKS,
       TEMP_RECORD    TYPE ZPROJECT_RECORD,
       TEMP_RESULT    TYPE ZPROJECT_RESULT.


*&---------------------------------------------------------------------*
*&* DATA DECLARATION FOR INTERNAL TABLES & ALV GRID
*&
*&---------------------------------------------------------------------*
DATA : EMP_DETAILS      TYPE TABLE OF ZPROJECT_EMP,
       PROJECT_DETAILS  TYPE TABLE OF ZPROJECT_DETAILS,
       KPI_DETAILS      TYPE TABLE OF ZPROJECT_KPI,
       MARKS_DETAILS    TYPE TABLE OF ZPROJECT_MARKS.


DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
       WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA : OK_CODE LIKE SY-UCOMM.

*&---------------------------------------------------------------------*
*&* TYPE POOLS DECLARATION
*&
*&---------------------------------------------------------------------*
TYPE-POOLS : SLIS.

*&---------------------------------------------------------------------*
*&* TABLES DECLARATION
*&
*&---------------------------------------------------------------------*
TABLES sscrfields.

TABLES : ZPROJECT_EMP , ZPROJECT_MGR , ZPROJECT_RO , ZPROJECT_AO , ZPROJECT_RESULT ,
         ZPROJECT_DETAILS , ZPROJECT_KPI  , ZPROJECT_MARKS , ZPROJECT_RECORD .

Wednesday, 11 September 2013

SEPTEMBER 11

Created log-in screens for each role.
To create the screens, right click on report, select create -> screens.
Now provide the screen number , short description and select  "normal screen" radio button.
Now in the following screen painter, create the desired fields.
Here, I have created 2 I/O fields to take input from user, 3 text fields to display where to enter what value to user and four push buttons for taking further actions.



By using similar methods, I have created four such screens numbering 110 ,120 ,130 and 140 for employee ,manager ,reviewing officer and accepting officer respectively.

Now, executed the previous again, and clicked on employee button. The following output is obtained:
OUTPUT:
Similarly when I click on any other push buttons, the log-in screen appears and on every screen it is mentioned the name of the role who have logged in. As in this case ,it is 'employee login screen'.

Using the same procedures, log in  screens for each role is displayed .

Tuesday, 10 September 2013

SEPTEMBER 10

The first task is to create a main page where the individual role can log-in into the system.
I created here four push buttons  naming employee , manager , reviewing officer and accepting officer. with click on each button, the respective role can log-in into the system. Here , the size of buttons and the starting co-ordinates of each button is provided so that buttons appear in a proper way on the screen.
Fifth button is 'exit' button. By clicking exit, I leave the screen area and enter into the coding part.
At the main screen, now I want that when employee clicks the 'EMPLOYEE' button, the log-in page should be displayed where only an employee can log-in but not any other role. same validation is to be applied on all the roles.For that  I have created 4 log-in screens naming 110, 120 , 130 , 140.

The final code structure is as below:

*&---------------------------------------------------------------------*
*& Report  ZPROJECT_EAS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZPROJECT_EAS.

*--------------------------------------------------------------*
*Selection-Screen
*--------------------------------------------------------------*
SELECTION-SCREEN:
  BEGIN OF LINE,
      PUSHBUTTON 5(10) button1 USER-COMMAND but1,
PUSHBUTTON 35(10) button2 USER-COMMAND but2,
    END OF LINE,
    SKIP 2,
       begin of line,
PUSHBUTTON 5(18) button3 USER-COMMAND but3,
PUSHBUTTON 35(18) button4 USER-COMMAND but4,
      END OF LINE,
      SKIP 2,
    BEGIN OF LINE,
PUSHBUTTON 22(10) button5 USER-COMMAND but5,
       END OF LINE.

*--------------------------------------------------------------*
*At Selection-Screen
*--------------------------------------------------------------*
AT SELECTION-SCREEN.
  CASE sscrfields.
    WHEN 'BUT1'.
      CALL SCREEN 0110.
    WHEN 'BUT2'.
      CALL SCREEN 0120.
    WHEN 'BUT3'.
      CALL SCREEN 0130.
    WHEN 'BUT4'.
      CALL SCREEN 0140.
    WHEN 'BUT5'.
      LEAVE PROGRAM.
  ENDCASE.
*--------------------------------------------------------------*
*Initialization
*--------------------------------------------------------------*
INITIALIZATION.
  button1 = 'EMPLOYEE'.
  button2 = 'MANAGER'.
  BUTTON3 = 'REVIEWING OFFICER'.
  BUTTON4 = 'ACCEPTING OFFICER'.
  BUTTON5 = 'EXIT'.

. After executing the above part, following screen is displayed.

OUTPUT:


Monday, 9 September 2013

SEPTEMBER 9



Now we need to create a main program.
Step 1. Go to transaction SE38. following screen appears.




provide program name as " ZPROJECT_EAS" and select "source code" radio button and click create. The following screen is shown.


Step 2. provide the title for the report. - EMPLOYEE APPRAISAL SYSTEM.
type -  'executable program'.
status - 'test program'.
application - 'basis'.
press enter button now. Following screen is displayed. Here we enter "$temp" as package name and save it as local object.


Finally the report is created and is displayed like this:



The entire coding part is done under this report.