Wednesday, March 26, 2014

Campaign for buttons



REPORT  zctreatment.

INCLUDE zctreatment_top.

START-OF-SELECTION.

  DATA: lwa_p1000 TYPE hrp1000,
        lwa_p0001 TYPE pa0001,
          lv_msg TYPE string,
          gv_stop TYPE char1.

* Campaign validity check
  SELECT SINGLE * FROM zpftcamp_head INTO gwa_camp_head WHERE campaign = s_campid-low AND process = 'HP' AND camp_begda LE sy-datum AND camp_endda GE sy-datum.
  IF sy-subrc NE 0.
    MESSAGE ID '00' TYPE 'I' NUMBER 2.
    EXIT.
  ENDIF.

* Employee number validity check.
  CLEAR: lv_msg, lwa_p1000.
  LOOP AT s_pernr.
    SELECT SINGLE * FROM pa0001 INTO lwa_p0001 WHERE pernr = s_pernr-low AND begda LE sy-datum AND endda GE sy-datum.
    IF sy-subrc NE 0.
      MESSAGE ID 'LR' TYPE 'I' NUMBER 22 WITH s_pernr-low.
      gv_stop = 'X'.
      EXIT.
    ENDIF.
  ENDLOOP.
  IF gv_stop EQ 'X'.
    CLEAR gv_stop.
    EXIT.
  ENDIF.

* Brach validity check
  CLEAR: lv_msg, lwa_p1000.
  LOOP AT s_branch.
    SELECT SINGLE * FROM hrp1000 INTO lwa_p1000 WHERE plvar = '01' AND otype = '9Y' AND objid = s_branch-low AND begda LE sy-datum AND endda GE sy-datum.
    IF sy-subrc NE 0.
      CONCATENATE text-031 s_branch-low text-030 INTO lv_msg SEPARATED BY space.
      MESSAGE lv_msg TYPE 'I'.
      gv_stop = 'X'.
    ENDIF.
  ENDLOOP.
  IF gv_stop EQ 'X'.
    CLEAR gv_stop.
    EXIT.
  ENDIF.

* Organizational Unit check.
  CLEAR: lv_msg, lwa_p1000.
  LOOP AT s_ou.
    SELECT SINGLE * FROM hrp1000 INTO lwa_p1000 WHERE plvar = '01' AND otype = 'O' AND objid = s_ou-low AND begda LE sy-datum AND endda GE sy-datum.
    IF sy-subrc NE 0.
      CONCATENATE text-029 s_ou-low text-030 INTO lv_msg SEPARATED BY space.
      MESSAGE lv_msg TYPE 'I'.
      gv_stop = 'X'.
    ENDIF.
  ENDLOOP.
  IF gv_stop EQ 'X'.
    CLEAR gv_stop.
    EXIT.
  ENDIF.

  DATA: gv_answer.
  IF ck_test IS INITIAL.
    CALL FUNCTION 'POPUP_TO_CONFIRM'
      EXPORTING
        titlebar              = 'Confirmation'
        text_question         = text-025
        text_button_1         = 'Yes'(026)
*       ICON_BUTTON_1         = ' '
        text_button_2         = 'No'(027)
*       ICON_BUTTON_2         = ' '
        default_button        = '2'
        display_cancel_button = ' '
      IMPORTING
        answer                = gv_answer
      EXCEPTIONS
        text_not_found        = 1
        OTHERS                = 2.
    IF sy-subrc EQ 0.
      IF gv_answer EQ '2'.
        EXIT.
      ENDIF.
    ENDIF.
  ENDIF.

  REFRESH gt_camp_head[].
  SELECT * FROM zpftcamp_head INTO TABLE gt_camp_head WHERE campaign IN s_campid AND camp_begda LE sy-datum AND camp_endda GE sy-datum.

  REFRESH: gt_1001_ou[],
           gt_1001_emp[].
  IF NOT s_branch[] IS INITIAL.
* Get all Org Units based on branch.
    SELECT objid sobid FROM hrp1001 INTO CORRESPONDING FIELDS OF TABLE gt_1001_ou
              WHERE plvar = '01'
              AND otype = '9Y'
              AND objid IN s_branch
              AND rsign = 'B'
              AND relat = 'Z96'
              AND sclas = 'O'
              AND sobid IN s_ou
              AND begda LE sy-datum
              AND endda GE sy-datum.
    IF sy-subrc EQ 0.
* Filter Org Units based on the selection criteria.
      SELECT objid sobid FROM hrp1001 INTO CORRESPONDING FIELDS OF TABLE gt_1001_emp
                    FOR ALL ENTRIES IN gt_1001_ou
                    WHERE plvar = '01'
                    AND otype = 'P'
                    AND rsign = 'B'
                    AND relat = 'Z97'
                    AND sclas = 'O'
                    AND sobid = gt_1001_ou-sobid
                    AND begda LE sy-datum
                    AND endda GE sy-datum.

      IF sy-subrc EQ 0.
        LOOP AT gt_1001_emp INTO gwa_1001_emp.
          READ TABLE gt_1001_ou INTO gwa_1001_ou WITH KEY sobid = gwa_1001_emp-sobid.
          IF sy-subrc EQ 0.
            gwa_oubr-emp = gwa_1001_emp-objid.
            gwa_oubr-br = gwa_1001_ou-objid.
            gwa_oubr-ou = gwa_1001_emp-sobid.
            APPEND gwa_oubr TO gt_oubr.
            CLEAR gwa_oubr.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDIF.
  ELSE.
*   if only Org Unit it seleceted.
    IF NOT s_ou IS INITIAL.
* Filter Org Units based on the selection criteria.
      REFRESH: gt_1001_emp[],
               gt_oubr.
      SELECT objid sobid FROM hrp1001 INTO CORRESPONDING FIELDS OF TABLE gt_1001_emp
                    WHERE plvar = '01'
                    AND otype = 'P'
                    AND rsign = 'B'
                    AND relat = 'Z97'
                    AND sclas = 'O'
                    AND sobid IN s_ou
                    AND begda LE sy-datum
                    AND endda GE sy-datum.
      IF sy-subrc EQ 0.
        LOOP AT gt_1001_emp INTO gwa_1001_emp.
          gwa_oubr-emp = gwa_1001_emp-objid.
          gwa_oubr-ou = gwa_1001_emp-sobid.
          APPEND gwa_oubr TO gt_oubr.
          CLEAR gwa_oubr.
        ENDLOOP.
      ENDIF.
    ELSE.
* No branch and No orgunit

    ENDIF.
  ENDIF.

  REFRESH: r_employee[].
  LOOP AT gt_oubr INTO gwa_oubr.
    wa_emp-sign = 'I'.
    wa_emp-option = 'EQ'.
    wa_emp-low = gwa_oubr-emp.

    APPEND wa_emp TO r_employee.
    CLEAR wa_emp.

  ENDLOOP.


  REFRESH: gt_9020[],
           gt_9021[],
           gt_all[].

  DATA: lt_1001    TYPE TABLE OF p1001,
        ls_1001    TYPE p1001,
        lv_objid TYPE plog-objid.

  IF rb_all EQ 'X' OR rb_hpgr EQ 'X'.
    SELECT * FROM pa9020 INTO TABLE gt_9020 WHERE pernr IN s_pernr AND cmpgn IN s_campid AND begda LE sy-datum AND endda GE sy-datum.
    IF sy-subrc EQ 0.
      LOOP AT gt_9020 INTO gwa_9020.
        IF gwa_9020-pernr IN r_employee.
* Get Campaign details.p
          READ TABLE gt_camp_head INTO gwa_camp_head WITH KEY campaign = gwa_9020-cmpgn.
          IF sy-subrc EQ 0.
            IF gwa_9020-endda NE gwa_camp_head-camp_endda.
* Move record to output table.

*        pernr
              gwa_all-pernr = gwa_9020-pernr.
* Read IT0002 data.
              REFRESH gt_0002[].
              CLEAR gwa_0002.
              CALL FUNCTION 'RH_READ_INFTY'
                EXPORTING
                  authority            = 'DISP'
                  plvar                = '01'
                  otype                = 'P'
                  objid                = gwa_9020-pernr
                  infty                = '0002'
                  begda                = sy-datum
                  endda                = sy-datum
                TABLES
                  innnn                = gt_0002
                EXCEPTIONS
                  all_infty_with_subty = 1
                  nothing_found        = 2
                  no_objects           = 3
                  wrong_condition      = 4
                  wrong_parameters     = 5
                  OTHERS               = 6.
              READ TABLE gt_0002 INTO gwa_0002 INDEX 1.
              IF sy-subrc EQ 0.
*        name2
                gwa_all-vorna = gwa_0002-vorna.
*        nachn
                gwa_all-nachn = gwa_0002-nachn.
              ENDIF.
              READ TABLE gt_oubr INTO gwa_oubr WITH KEY emp = gwa_9020-pernr. "#EC WARNOK
              IF sy-subrc EQ 0.
*        branch
                gwa_all-branch = gwa_oubr-br.
*        org_unit
                gwa_all-org_unit = gwa_oubr-ou.
              ELSE.
* No branch and No OU selected.
* Get OU
                CLEAR lv_objid.
                lv_objid = gwa_9020-pernr.
                CALL FUNCTION 'RH_READ_INFTY_1001'
                  EXPORTING
                    authority        = 'DISP'
                    with_stru_auth   = 'X'
                    plvar            = '01'
                    otype            = 'P'
                    objid            = lv_objid
                    istat            = '1'
                    subty            = 'BZ97'
                    begda            = sy-datum
                    endda            = sy-datum
                  TABLES
                    i1001            = lt_1001
*                   OBJECTS          =
                  EXCEPTIONS
                    nothing_found    = 1
                    wrong_condition  = 2
                    wrong_parameters = 3
                    OTHERS           = 4.
                IF sy-subrc EQ 0.
                  READ TABLE lt_1001 INTO ls_1001 WITH KEY otype = 'P' objid = lv_objid sclas = 'O'.
                  IF sy-subrc EQ 0.
                    gwa_all-org_unit = ls_1001-sobid.
* Get Branch
                    CLEAR lv_objid.
                    lv_objid = ls_1001-sobid.
                    CALL FUNCTION 'RH_READ_INFTY_1001'
                      EXPORTING
                        authority        = 'DISP'
                        with_stru_auth   = 'X'
                        plvar            = '01'
                        otype            = 'O'
                        objid            = lv_objid
                        istat            = '1'
                        subty            = 'AZ96'
                        begda            = sy-datum
                        endda            = sy-datum
                      TABLES
                        i1001            = lt_1001
*                       OBJECTS          =
                      EXCEPTIONS
                        nothing_found    = 1
                        wrong_condition  = 2
                        wrong_parameters = 3
                        OTHERS           = 4.
                    IF sy-subrc EQ 0.
                      READ TABLE lt_1001 INTO ls_1001 WITH KEY otype = 'O' objid = lv_objid sclas = '9Y'.
                      IF sy-subrc EQ 0.
                        gwa_all-branch = ls_1001-sobid.
                      ENDIF.
                    ENDIF.
                  ENDIF.
                ENDIF.
              ENDIF.
*        cmpgn
              gwa_all-cmpgn = gwa_9020-cmpgn.
*        camp_endda
              gwa_all-camp_endda = gwa_camp_head-camp_endda.
*        oldgr_endda
              gwa_all-oldgr_endda  = gwa_9020-endda.
*        newgr_endda
              gwa_all-newgr_endda = gwa_camp_head-camp_endda.
*        oldbr_endda
*        newbr_endda
*        comment(100)

*Move campaign enddate to 9020 enddate
              CLEAR: gv_old_endda,
                     gwa_p9020.
              gv_old_endda = gwa_9020-endda.
              MOVE-CORRESPONDING gwa_9020 TO gwa_p9020.

              gwa_p9020-infty = '9020'.
              gwa_p9020-endda = gwa_camp_head-camp_endda.
              gwa_p9020-aedtm = sy-datum.
              gwa_p9020-uname = sy-uname.

* Update Infotype 9020.
              IF ck_test IS INITIAL.
*                CLEAR gv_nocommit.
*              ELSE.
*                gv_nocommit = 'X'.
*              ENDIF.
                CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
                  EXPORTING
                    number = gwa_p9020-pernr.

                CLEAR: gwa_return.
                CALL FUNCTION 'HR_INFOTYPE_OPERATION'
                  EXPORTING
                    infty         = '9020'
                    number        = gwa_p9020-pernr
                    objectid      = gwa_p9020-objps
                    validityend   = gwa_9020-endda
                    validitybegin = gwa_p9020-begda
                    recordnumber  = gwa_p9020-seqnr
                    record        = gwa_p9020
                    operation     = 'MOD'
                    dialog_mode   = '0'
*                   nocommit      = gv_nocommit
                  IMPORTING
                    return        = gwa_return.

                IF gwa_return-number = '000' OR gwa_return-type = 'S'.
                  IF ck_test IS INITIAL.
                    gwa_all-status = '@08@'.
                    gwa_all-comment = 'End date modification could be performed'(019).
                  ELSE.
*                    gwa_all-status = '@09@'.
*                    gwa_all-comment = 'End date modification could be performed'(019).
                  ENDIF.
                ELSE.
                  IF gwa_return-type = 'E'.
                    gwa_all-status = '@0A@'.
                    CONCATENATE text-020 gwa_p9020-pernr text-021 INTO gwa_all-comment SEPARATED BY space.
                  ENDIF.
                ENDIF.
                CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
                  EXPORTING
                    number = gwa_p9020-pernr.
              ENDIF.
              IF NOT ck_test IS INITIAL.
                gwa_all-status = '@09@'.
                gwa_all-comment = 'End date modification could be performed'(019).
              ENDIF.
              APPEND gwa_all TO gt_all.
              CLEAR gwa_all.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDIF.
  IF rb_all EQ 'X' OR rb_hpbr EQ 'X'.
    SELECT * FROM pa9021 INTO TABLE gt_9021 WHERE pernr IN s_pernr AND cmpgn IN s_campid AND begda LE sy-datum AND endda GE sy-datum.
    IF sy-subrc EQ 0.
      LOOP AT gt_9021 INTO gwa_9021.
        IF gwa_9021-pernr IN r_employee.
* Get Campaign details.p
          READ TABLE gt_camp_head INTO gwa_camp_head WITH KEY campaign = gwa_9021-cmpgn.
          IF sy-subrc EQ 0.
            IF gwa_9021-endda NE gwa_camp_head-camp_endda.


* Move record to output table.
*        pernr
              gwa_all-pernr = gwa_9021-pernr.
* Read IT0002 data.
              REFRESH gt_0002[].
              CLEAR gwa_0002.
              CALL FUNCTION 'RH_READ_INFTY'
                EXPORTING
                  authority            = 'DISP'
                  plvar                = '01'
                  otype                = 'P'
                  objid                = gwa_9020-pernr
                  infty                = '0002'
                  begda                = sy-datum
                  endda                = sy-datum
                TABLES
                  innnn                = gt_0002
                EXCEPTIONS
                  all_infty_with_subty = 1
                  nothing_found        = 2
                  no_objects           = 3
                  wrong_condition      = 4
                  wrong_parameters     = 5
                  OTHERS               = 6.
              READ TABLE gt_0002 INTO gwa_0002 INDEX 1.
              IF sy-subrc EQ 0.
*        name2
                gwa_all-vorna = gwa_0002-vorna.
*        nachn
                gwa_all-nachn = gwa_0002-nachn.
              ENDIF.

              READ TABLE gt_oubr INTO gwa_oubr WITH KEY emp = gwa_9021-pernr. "#EC WARNOK
              IF sy-subrc EQ 0.
*        branch
                gwa_all-branch = gwa_oubr-br.
*        org_unit
                gwa_all-org_unit = gwa_oubr-ou.
              ENDIF.
*        cmpgn
              gwa_all-cmpgn = gwa_9021-cmpgn.
*        camp_endda
              gwa_all-camp_endda = gwa_camp_head-camp_endda.
*        oldgr_endda
*        newgr_endda
*        oldbr_endda
              gwa_all-oldbr_endda  = gwa_9021-endda.
*        newbr_endda
              gwa_all-newbr_endda = gwa_camp_head-camp_endda.
*        comment(100)
*Move campaign enddate to 9021 enddate
              CLEAR: gv_old_endda,
                     gwa_p9021.
              gv_old_endda = gwa_9021-endda.
              MOVE-CORRESPONDING gwa_9021 TO gwa_p9021.

              gwa_p9021-infty = '9021'.
              gwa_p9021-endda = gwa_camp_head-camp_endda.
              gwa_p9021-aedtm = sy-datum.
              gwa_p9021-uname = sy-uname.
*              *************
* Update Infotype 9021.
              IF ck_test IS INITIAL.
*                CLEAR gv_nocommit.
*              ELSE.
*                gv_nocommit = 'X'.
*              ENDIF.

                CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
                  EXPORTING
                    number = gwa_9021-pernr.
                CLEAR: gwa_return.
                CALL FUNCTION 'HR_INFOTYPE_OPERATION'
                  EXPORTING
                    infty         = '9021'
                    number        = gwa_p9021-pernr
                    objectid      = gwa_p9021-objps
                    validityend   = gwa_9021-endda
                    validitybegin = gwa_p9021-begda
                    recordnumber  = gwa_p9021-seqnr
                    record        = gwa_p9021
                    operation     = 'MOD'
                    dialog_mode   = '0'
*                   nocommit      = gv_nocommit
                  IMPORTING
                    return        = gwa_return.

                IF gwa_return-number = '000' OR gwa_return-type = 'S'.
                  IF ck_test IS INITIAL.
                    gwa_all-status = '@08@'.
                    gwa_all-comment = 'End date modification could be performed'(019).
                  ELSE.
                    gwa_all-status = '@09@'.
                    gwa_all-comment = 'End date modification could be performed'(019).
                  ENDIF.
                ELSE.
                  IF gwa_return-type = 'E'.
                    gwa_all-status = '@0A@'.
                    CONCATENATE text-020 gwa_p9020-pernr text-021 INTO gwa_all-comment SEPARATED BY space.
                  ENDIF.
                ENDIF.

                CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
                  EXPORTING
                    number = gwa_9021-pernr.
              ENDIF.
              IF NOT ck_test IS INITIAL.
                gwa_all-status = '@09@'.
                gwa_all-comment = 'End date modification could be performed'(019).
              ENDIF.
              APPEND gwa_all TO gt_all.
              CLEAR gwa_all.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDIF.



  IF gt_all IS INITIAL.
    MESSAGE text-028 TYPE 'I'.
    EXIT.
  ENDIF.

END-OF-SELECTION.

  CALL SCREEN 100.

*&---------------------------------------------------------------------*
*&      Module  ALV_GRID_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE alv_grid_0100 OUTPUT.
  PERFORM free.

  IF go_custom_container_100 IS INITIAL.
    CREATE OBJECT go_custom_container_100
      EXPORTING
        container_name = 'GV_CONTAINER'.
  ENDIF.

  CLEAR go_grid_100.
  IF go_grid_100 IS INITIAL.
    CREATE OBJECT go_grid_100
      EXPORTING
        i_parent = go_custom_container_100.
  ENDIF.

  PERFORM build_fieldcat_100.

  IF rb_all EQ 'X'.
    gs_layout_100-grid_title = 'Group Potential and Branch Potential Updation'(022)."'PA9020 and PA9021 Updation'.
  ELSEIF rb_hpgr EQ 'X'.
    gs_layout_100-grid_title = 'Group Potential Updation'(023)."'PA9020 Updation'.
  ELSEIF rb_hpbr EQ 'X'.
    gs_layout_100-grid_title = 'Branch Potential Updation'(024)."'PA9021 Updation'.
  ENDIF.
  gs_layout_100-cwidth_opt = 'X'.
  PERFORM outputlog_alv_disp CHANGING gt_all.

ENDMODULE.                 " ALV_GRID_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  FREE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM free .
  IF go_grid_100 IS NOT INITIAL.

    CALL METHOD go_grid_100->free
      EXCEPTIONS
        cntl_error        = 1
        cntl_system_error = 2
        OTHERS            = 3.
    IF sy-subrc NE 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
      FREE go_grid_100.
    ENDIF.
  ENDIF.

  IF go_custom_container_100 IS NOT INITIAL.
    CALL METHOD go_custom_container_100->free
      EXCEPTIONS
        cntl_error        = 1
        cntl_system_error = 2
        OTHERS            = 3.
    IF sy-subrc NE 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
      FREE go_custom_container_100.
    ENDIF.
  ENDIF.
ENDFORM.                    " FREE

*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT_100
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

FORM build_fieldcat_100 .

  DATA:ls_fcat            TYPE lvc_s_fcat.
  REFRESH: gt_fieldcat_100[].

*  IF rb_all EQ 'X'. "Fieldcatlog for All
  ls_fcat-col_pos    = 1.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'STATUS'.
  ls_fcat-coltext    = 'Status'.
  ls_fcat-outputlen  = 7.
  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 2.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'PERNR'.
  ls_fcat-coltext    = 'Personal Number'(006).
  ls_fcat-outputlen  = 17.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 3.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'VORNA'.
  ls_fcat-coltext    = 'First Name'(007).
  ls_fcat-outputlen  = 25.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 4.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'NACHN'.
  ls_fcat-coltext    = 'Last name'(008).
  ls_fcat-outputlen  = 25.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 5.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'BRANCH'.
  ls_fcat-coltext    = 'Branch'(009).
  ls_fcat-outputlen  = 10.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 6.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'ORG_UNIT'.
  ls_fcat-coltext    = 'Organisational unit'(010).
  ls_fcat-outputlen  = 26.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 7.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'CMPGN'.
  ls_fcat-coltext    = 'Campaign Id selected'(011).
  ls_fcat-outputlen  = 24.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 8.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'CAMP_ENDDA'.
  ls_fcat-coltext    = 'End date campaign'(012).
  ls_fcat-outputlen  = 24.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 9.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'OLDGR_ENDDA'.
  ls_fcat-coltext    = 'Old end date HP Group'(013).
  ls_fcat-outputlen  = 33.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.
  ls_fcat-col_pos    = 10.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'NEWGR_ENDDA'.
  ls_fcat-coltext    = 'New end date HP Group'(014).
  ls_fcat-outputlen  = 34.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 11.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'OLDBR_ENDDA'.
  ls_fcat-coltext    = 'Old end date HP Branch'(015).
  ls_fcat-outputlen  = 37.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 12.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'NEWBR_ENDDA'.
  ls_fcat-coltext    = 'New end date HP Branch'(016).
  ls_fcat-outputlen  = 35.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

  ls_fcat-col_pos    = 13.
  ls_fcat-tabname    = 'GT_ALL'.
  ls_fcat-fieldname  = 'COMMENT'.
  ls_fcat-coltext    = 'Comment'(017).
  ls_fcat-outputlen  = 100.

  APPEND ls_fcat TO gt_fieldcat_100.
  CLEAR ls_fcat.

*  ELSEIF rb_hpgr EQ 'X'. "Fieldcatlog for Branch
*
*    ls_fcat-col_pos    = 1.
*    ls_fcat-tabname    = 'GT_BRANCH'.
*    ls_fcat-fieldname  = 'PERNR'.
*    ls_fcat-coltext    = 'Personal Number'(006).
*    ls_fcat-outputlen  = 17.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 2.
*    ls_fcat-tabname    = 'GT_BRANCH'.
*    ls_fcat-fieldname  = 'NAME2'.
*    ls_fcat-coltext    = 'First Name'(007).
*    ls_fcat-outputlen  = 25.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 3.
*    ls_fcat-tabname    = 'GT_BRANCH'.
*    ls_fcat-fieldname  = 'NACHN'.
*    ls_fcat-coltext    = 'Last name'(008).
*    ls_fcat-outputlen  = 25.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 4.
*    ls_fcat-tabname    = 'GT_BRANCH'.
*    ls_fcat-fieldname  = 'BRANCH'.
*    ls_fcat-coltext    = 'Branch'(009).
*    ls_fcat-outputlen  = 10.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 5.
*    ls_fcat-tabname    = 'GT_BRANCH'.
*    ls_fcat-fieldname  = 'ORG_UNIT'.
*    ls_fcat-coltext    = 'Organisational unit'(010).
*    ls_fcat-outputlen  = 26.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 6.
*    ls_fcat-tabname    = 'GT_BRANCH'.
*    ls_fcat-fieldname  = 'CAMPAIGN'.
*    ls_fcat-coltext    = 'Campaign Id selected'(011).
*    ls_fcat-outputlen  = 24.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 7.
*    ls_fcat-tabname    = 'GT_BRANCH'.
*    ls_fcat-fieldname  = 'CAM_ENDDA'.
*    ls_fcat-coltext    = 'End date campaign'(012).
*    ls_fcat-outputlen  = 24.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 8.
*    ls_fcat-tabname    = 'GT_BRANCH'.
*    ls_fcat-fieldname  = 'OLDGR_ENDDA'.
*    ls_fcat-coltext    = 'Old end date HP Group'(013).
*    ls_fcat-outputlen  = 33.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*    ls_fcat-col_pos    = 9.
*    ls_fcat-tabname    = 'GT_BRANCH'.
*    ls_fcat-fieldname  = 'NEWGR_ENDDA'.
*    ls_fcat-coltext    = 'New end date HP Group'(014).
*    ls_fcat-outputlen  = 34.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 10.
*    ls_fcat-tabname    = 'GT_BRANCH'.
*    ls_fcat-fieldname  = 'COMMENT'.
*    ls_fcat-coltext    = 'Comment'(017).
*    ls_fcat-outputlen  = 100.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*  ELSEIF rb_hpbr EQ 'X'.  "Fieldcatlog for Org unit
*
*    ls_fcat-col_pos    = 1.
*    ls_fcat-tabname    = 'GT_ORGUNIT'.
*    ls_fcat-fieldname  = 'PERNR'.
*    ls_fcat-coltext    = 'Personal Number'(006).
*    ls_fcat-outputlen  = 17.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 2.
*    ls_fcat-tabname    = 'GT_ORGUNIT'.
*    ls_fcat-fieldname  = 'NAME2'.
*    ls_fcat-coltext    = 'First Name'(007).
*    ls_fcat-outputlen  = 25.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 3.
*    ls_fcat-tabname    = 'GT_ORGUNIT'.
*    ls_fcat-fieldname  = 'NACHN'.
*    ls_fcat-coltext    = 'Last name'(008).
*    ls_fcat-outputlen  = 25.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 4.
*    ls_fcat-tabname    = 'GT_ORGUNIT'.
*    ls_fcat-fieldname  = 'BRANCH'.
*    ls_fcat-coltext    = 'Branch'(009).
*    ls_fcat-outputlen  = 10.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 5.
*    ls_fcat-tabname    = 'GT_ORGUNIT'.
*    ls_fcat-fieldname  = 'ORG_UNIT'.
*    ls_fcat-coltext    = 'Organisational unit'(010).
*    ls_fcat-outputlen  = 26.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 6.
*    ls_fcat-tabname    = 'GT_ORGUNIT'.
*    ls_fcat-fieldname  = 'CAMPAIGN'.
*    ls_fcat-coltext    = 'Campaign Id selected'(011).
*    ls_fcat-outputlen  = 24.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 7.
*    ls_fcat-tabname    = 'GT_ORGUNIT'.
*    ls_fcat-fieldname  = 'CAM_ENDDA'.
*    ls_fcat-coltext    = 'End date campaign'(012).
*    ls_fcat-outputlen  = 24.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 8.
*    ls_fcat-tabname    = 'GT_ORGUNIT'.
*    ls_fcat-fieldname  = 'OLDBR_ENDDA'.
*    ls_fcat-coltext    = 'Old end date HP Branch'(015).
*    ls_fcat-outputlen  = 37.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 9.
*    ls_fcat-tabname    = 'GT_ORGUNIT'.
*    ls_fcat-fieldname  = 'NEWGR_ENDDA'.
*    ls_fcat-coltext    = 'New end date HP Branch'(016).
*    ls_fcat-outputlen  = 35.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.
*
*    ls_fcat-col_pos    = 10.
*    ls_fcat-tabname    = 'GT_ORGUNIT'.
*    ls_fcat-fieldname  = 'COMMENT'.
*    ls_fcat-coltext    = 'Comment'(017).
*    ls_fcat-outputlen  = 100.
*
*    APPEND ls_fcat TO gt_fieldcat_100.
*    CLEAR ls_fcat.

*  ENDIF.

ENDFORM.                    " BUILD_FIELDCAT_100
*&---------------------------------------------------------------------*
*&      Form  OUTPUTLOG_ALV_DISP
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

FORM outputlog_alv_disp  CHANGING i_disp_table TYPE STANDARD TABLE.

  CALL METHOD go_grid_100->set_table_for_first_display
    EXPORTING
*     it_toolbar_excluding = gt_exclude_100
      is_layout            = gs_layout_100
    CHANGING
      it_fieldcatalog      = gt_fieldcat_100
      it_outtab            = i_disp_table[].

* Set editable cells to ready for input initially
  CALL METHOD go_grid_100->set_ready_for_input
    EXPORTING
      i_ready_for_input = 0.
ENDFORM.                    " OUTPUTLOG_ALV_DISP

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS100'.
  SET TITLEBAR 'TITLE100'.

ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE sy-ucomm.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'CANCEL'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.                    "user_command_0100 INPUT
*******************************************************************************
*                    A D M I N I S T R A T I O N                              *
*******************************************************************************
*  Program ID        : HP_CO03                                               *
*  Version           : Initial                                                *
*  SAP Version       : ECC 6.0                                                *
*  Program Name      : zphp_ctreatment                                        *
*  Created by        : Rajasekhar Puppala                                     *
*  Created on        : 02.19.2014                                             *
*  Description       : HP End Campaign Treatment                              *
*******************************************************************************
*                    C H A N G E  H I S T O R Y                               *
*******************************************************************************
* Change Id   :                                                               *
* Author      :                                                               *
* Changed On  :                                                               *
* Request No  :                                                               *
* Description :                                                               *
*******************************************************************************
*&---------------------------------------------------------------------*
*&  Include           ZPHP_CTREATMENT_TOP
*&---------------------------------------------------------------------*
INCLUDE .
INCLUDE .

TABLES: zpftcamp_head,
        hrp1002,
        hrp1000,
        pa0002,
        pa0003,
        pa9020,
        pa9021,
        zphp_potentbran.
*******Internal table declaration******************

DATA: gt_9020 TYPE STANDARD TABLE OF pa9020,
        gt_9021 TYPE STANDARD TABLE OF pa9021,
        gwa_9020 TYPE pa9020,
        gwa_9021 TYPE pa9021,
        gwa_p9020 TYPE p9020,
        gwa_p9021 TYPE p9021.
DATA: gwa_return TYPE bapireturn1.


DATA: gt_0002 TYPE p0002_tab,
      gwa_0002 TYPE p0002,
      gv_return TYPE symsgno,
      gv_nocommit LIKE  bapi_stand-no_commit.

TYPES: BEGIN OF ty_all,
    status        TYPE icon_d, "c,
    pernr         TYPE pa9020-pernr,
    vorna         TYPE pa0002-vorna,
    nachn         TYPE pa0002-nachn,
    branch        TYPE hrp1000-objid,
    org_unit    TYPE hrp1000-objid,
    cmpgn        TYPE zpftcamp_head-campaign,
    camp_endda    TYPE zpftcamp_head-camp_endda,
    oldgr_endda   TYPE pa9020-begda,
    newgr_endda   TYPE pa9020-begda,
    oldbr_endda   TYPE pa9021-begda,
    newbr_endda   TYPE pa9021-begda,
    comment(100)  TYPE c,
END OF ty_all.
DATA: gwa_all TYPE ty_all,
      gt_all TYPE TABLE OF ty_all.

*TYPES: BEGIN OF ty_branch,
*
*    pernr         TYPE pa9020-pernr,
*    name2         TYPE pa0002-vorna,
*    nachn         TYPE pa0002-nachn,
*    branch        TYPE hrp1000-objid,
*    org_unit       TYPE hrp1000-objid,
*    cmpgn         TYPE zpftcamp_head-campaign,
*    camp_endda    TYPE zpftcamp_head-camp_endda,
*    oldgr_endda   TYPE pa9020-begda,
*    newgr_endda   TYPE pa9020-begda,
*    comment(100)  TYPE c,
*
*END OF ty_branch.
*
*DATA: gwa_branch TYPE ty_branch,
*      gt_branch TYPE TABLE OF ty_branch.
*
*TYPES: BEGIN OF ty_orgunit,
*
*    pernr         TYPE pa9020-pernr,
*    name2         TYPE pa0002-vorna,
*    nachn         TYPE pa0002-nachn,
*    branch        TYPE hrp1000-objid,
*    org_unit       TYPE hrp1000-objid,
*    campaign       TYPE zpftcamp_head-campaign,
*    cam_endda      TYPE zpftcamp_head-camp_endda,
*    oldbr_endda    TYPE pa9021-begda,
*    newbr_endda    TYPE pa9021-begda,
*    comment(100)  TYPE c,
*
*END OF ty_orgunit.
*
*DATA: gwa_orgunit TYPE ty_orgunit,
*      gt_orgunit TYPE TABLE OF ty_orgunit.
*...............ALV.............................

DATA: gt_fieldcat_100           TYPE lvc_t_fcat.
DATA: gv_disp_table TYPE string.

DATA: go_grid_100               TYPE REF TO cl_gui_alv_grid.
DATA: go_custom_container_100   TYPE REF TO cl_gui_custom_container.

DATA: gs_layout_100             TYPE lvc_s_layo,
      gr_alv                    TYPE REF TO cl_salv_table,
      gr_columns                TYPE REF TO cl_salv_columns_table,
      gr_column                 TYPE REF TO cl_salv_column_table.

TYPES: BEGIN OF ty_1001_ou,
        objid TYPE p1001-objid,
        sobid TYPE p1001-sobid,
       END OF ty_1001_ou.


TYPES: BEGIN OF ty_oubr,
        emp TYPE objid,
        br  TYPE objid,
        ou TYPE objid,
      END OF ty_oubr.

DATA: gt_oubr TYPE STANDARD TABLE OF ty_oubr,
      gwa_oubr TYPE ty_oubr.

DATA: gt_1001_ou TYPE STANDARD TABLE OF ty_1001_ou,
      gwa_1001_ou LIKE LINE OF gt_1001_ou,
      gt_1001_emp TYPE STANDARD TABLE OF ty_1001_ou,
      gwa_1001_emp LIKE LINE OF gt_1001_ou.
DATA: r_employee TYPE RANGE OF objid,
      wa_emp LIKE LINE OF r_employee.
DATA: gt_camp_head TYPE STANDARD TABLE OF zpftcamp_head,
      gwa_camp_head TYPE zpftcamp_head.

DATA: gv_old_endda TYPE p0001-endda.

******selection screen declaration****************
SELECTION-SCREEN:BEGIN OF BLOCK selection WITH FRAME TITLE text-001.

SELECT-OPTIONS: s_campid FOR  zpftcamp_head-campaign MATCHCODE OBJECT zphp_campaign OBLIGATORY NO-EXTENSION NO INTERVALS.
**Radio buttons
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: rb_all RADIOBUTTON GROUP auth USER-COMMAND rusr.
SELECTION-SCREEN COMMENT 7(5) text-003 FOR FIELD rb_all.
PARAMETERS: rb_hpgr  RADIOBUTTON GROUP auth.
SELECTION-SCREEN COMMENT 14(18) text-004 FOR FIELD rb_hpgr.
PARAMETERS: rb_hpbr  RADIOBUTTON GROUP auth.
SELECTION-SCREEN COMMENT 41(18) text-005 FOR FIELD rb_hpbr.

SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS: s_pernr FOR pa0003-pernr. "hrp1002-objid.
SELECT-OPTIONS: s_branch FOR zphp_potentbran-zbranch MATCHCODE OBJECT zh_branch.
SELECT-OPTIONS: s_ou FOR hrp1000-objid MATCHCODE OBJECT zp_e_orgunit.


SELECTION-SCREEN END OF BLOCK selection.

SELECTION-SCREEN:BEGIN OF BLOCK other WITH FRAME TITLE text-002.

PARAMETERS: ck_test AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK other.
---------------------------------------------------------------------------
**********************
*** CALL SCREEN 100***
**********************


PROCESS BEFORE OUTPUT.
  MODULE status_0100.
  MODULE alv_grid_0100.

PROCESS AFTER INPUT.
  MODULE user_command_0100.

No comments:

Tutorials on SAP-ABAP

Adobe Interactive Forms Tutorials

Business Server Pages (BSP)

Userexits/BADIs

Web Dynpro for ABAP (Step by step procedure for web dynpro,Tutorials on Web Dynpro,)

ALV Tutorials

goodsites