Designing a calculator using selection screen(abap)

hi i just now stepped into this technology. iam learning abap.  i like to jknow how to design a calculator using selection screen. 
could any one give your  suggestions or any sites having such example programs . 
thankyou

Hi
Welcome to SDN.
Use the sample peace of code for design Calculator.
Hi,
Create push buttons for the + , - , / , * , = in your dialog program.
Create an input field with the data type that can accept decimal places..
When the enter 12 then press the push button "+" button store the value 12 in a variable v1..Then clear the input field..
Then when the user enters another number..lets say "13"..
Then if the user presses the "=" button...Then sum the values from the variable v1 with the input field..
Hope this helps..
Check this sample code..
MODULE USER_COMMAND.
CASE SY-UCOMM.
WHEN 'ADDITION'.
ASSUMING THE INPUT FIELD NAME IS P_INPUT.
V_V1 = P_INPUT.
V_OPERATION = '+'.
CLEAR: P_INPUT.
WHEN 'EQUALTO'.
CASE V_OPERATION.
ADDITION
WHEN '+'.
SUM UP THE VALUES.
P_INPUT = P_INPUT + V_V1.
ENDCASE.
MULTIPLICATION
WHEN '*'.
MULTIPLY UP THE VALUES.
P_INPUT = P_INPUT * V_V1.
ENDCASE.
ENDCASE.
ENDMODULE.
Regards,
Sree

Similar Messages

  • How to get ME23 screen using selection-screen

    Hi,
    I am trying to get the ME23 screen using selection-screen with following code.
    select-options: purordno for ekko-ebeln NO intervals.
    SUBMIT SAPMM06E VIA SELECTION-SCREEN .
    But at the time of execution i got this error "INCORRECT PROGRAM TYPE WITH SUBMIT".
    Can any one please provide me some sample code how to get the ME23  screen
    using Abap program.
    Regards,
    krishna/rajesh.

    Hi Rajesh,
    You can't submit a pool modul ( SAPMM06E ).
    Only executable prog can be submit .
    What you can try is use "CALL TRANSACTION" statement.
    Hope this helps,
    Erwan

  • HOW TO USE SELECTION SCREEN

    HOW TO USE SELECTION SCREEN
    I WANT TO INSERT PURCHASE DOCUMENT NUMBER
    AND WANT TO SEE ALL INFORMATION FOR THAT PURCHASE DOCUMNET NUMBER.
    THANKS IN ADVANCED.

    The main use of the selection-screen is to select screen in the back ground
    ex :    
    TABNAME
    IN THE ABOVE FIGURE  TABNAME IS THE FIELD AND THE BACK END IS   CREATED SCREEN IN THE BACK END
    THIS SCREEN CREATION WE CAN USED THE SCREEN SELECTION

  • How to set my own gui status when i use selection-screen

    how to set my own gui status when i use selection-screen command
    and
    how to set the names in the application tool bar when function keys are created

    Make sure that you do this in event "AT SELECTION-SCREEN OUTPUT".
    Run Txn ABAPDOCU and check 'DEMO_SEL_SCREEN_STATUS' for sample.
    Also check out following discussion -
    Selection Screen PF-STATUS
    Cheers,
    Sanjeev

  • Submitting of report using selection screen

    Hi,
                       My requirement is iam having one report so it is executed when we r given site and date it gives one excel file data so now iam having 150 sites so now I want to write the report as date as selection screen and I want to submit that report in this one (new report) so it wants to take the sites automatically from werks (t001w table) and it wants to execute in a loop upto 150 times then it gives 150 excel files so now how can I pass the sites and date to the submitting selection screen date as same for all but only the site wants to varry in the submitting report pls provide the coding ..
    Thanks & Regards,
    Mohan Reddy.

    Hello Mohan Reddy,
    I think we can try in this way
      data:     y_v_rspar_line    LIKE LINE OF y_v_rspar_tab,
                  y_v_rspar_tab     TYPE TABLE OF rsparams,
            y_lk_parm3 TYPE char5 VALUE 'SPERR'.  " Selection screen variable name
      y_v_rspar_line-selname = y_lk_parm3.
      y_v_rspar_line-kind    = y_k_p.
      y_v_rspar_line-sign    = y_k_i.
      y_v_rspar_line-option  = y_k_eq.
      y_v_rspar_line-low     = y_k_e.                "Excel file site value.
      APPEND y_v_rspar_line TO y_v_rspar_tab.
        SUBMIT Program name USING SELECTION-SCREEN '1000'
        WITH SELECTION-TABLE y_v_rspar_tab  AND RETURN.
    But try in 2different ways i.e
    1) Keep the submit program in the loop of the excel file internal table
       and take the site value in the variable and pass the value to this y_v_rspar_line-low
      and call submit program.
    2) Sort the excel file internal table then pass all the values to y_v_rspar_line-low and use the append statement in the same way and then call the SUBMIT program outside the loop.

  • Screen Saver does not use selected Screen Saver when activated

    Screen Saver does not use selected Screen Saver when activated. After "Start screen saver" elapse time has been reached, a blank black full screen is displayed. I can activate the selected screen saver by using the hot corners function. Any help with this matter will be greatfully received.

    Hi again sassey,
    You're assuming correctly. Simply change the settings so that your screen saver activates before the sleep settings.
    Hope this solves your problem...

  • ABAP Program using Selection Screen in Process Chain

    Hi,
    I have included an ABAP Program in the Process Chain.
    The ABAP Program takes a selection screen value from user before execution.
    I have created a variant for both the ABAP Process (YPV_ABC) and a variant for the Selection Screen (YPV_XYZ).
    The ABAP Program executes perfectly well in SE 38.
    I get the following message when I execute the Process Chain.
    "Status Change of Process ABAP YPV_ABC.
    Save Status and Trigger Events if Appropriate "
    When I click Yes, the ABAP Process becomes red.
    These are error messages in the log
    516 -  Job started     
    550 -  Step 001 started (program RSPROCESS, variant &0000000012961, user ID ALEREMOTE)
    25 -    Could not ascertain code page     
    546 -  Job cancelled after system exception ERROR_MESSAGE     
    My questions are:
    1) Is it possible to use an  ABAP Program which has a user input screen in Process Chain?
    2) Could you please help  with the above error?

    1) Is it possible to use an ABAP Program which has a user input screen in Process Chain?
    ABAP programs, with variants established for selection screens, are possible. We use them quite extensively for setting triggers to allow Process Chain to continue after an Interrupt Process has been hit.
    2) Could you please help with the above error?
    I'm not quite sure what could be causing this. When you tested this program in SE38, did you test it with the same variant for the selection screen and did you execute it in background?

  • Trigger Process chains through ABAP program using selection screens

    Hi All
       I am loading flat files through process chains. My requirment is such that i need to create a ABAP selection screen so that user can load the flat file from his PC. when the user is loading the flat file i have to copy the file onto the application server folder and then display him the monitor errors/warnings (if any). when my data load is complete i need to archive the file with time stamp onto the application server folder.
    Please help me in this regard....
    thanks and regards
    sairam phani

    Hi sairam
    can you check this link hope this might help you out
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3507aa90-0201-0010-6891-d7df8c4722f7
    Going thru your query hope i get the right   solution
    Thanks=points in SDN
    Sanjeev kumar hamsala

  • How  to filter by manager's name using selection screen

    Hi all,
      I am trying to modify the report to filter data from the report based on the manger name given in selection screen. As the manger's name was given in selection screen.. records have to come only of the employee how were working under that entered manager name.
      I am unable to follow this code to modify.. where to add select criteria to filter... please make modify to my code..
      I am pasting my code here, Can any one kindly help for this scenario.
    TABLES: PA0001,  "HR Master Record: Infotype 0001 (Org. Assignment),
            PA0002,
            P0000,
            PA9001,
            PA0007,
            HRP1001, "Infotype 1001 DB Table
            PA0034. "HR Master Record: Infotype 0034 (Corporate Function)
    *Internal table for holding output data
    DATA: IT_PA0002 LIKE PA0002  OCCURS 100 WITH HEADER LINE,
          IT_PA9001 LIKE PA9001  OCCURS 100 WITH HEADER LINE,
          IT_PA0007 LIKE PA0007  OCCURS 100 WITH HEADER LINE,
          IT_PA0034 LIKE PA0034  OCCURS 100 WITH HEADER LINE.
    DATA: IT_RET LIKE BAPIRET2,
          IT_ACT LIKE BAPI_SWHACTOR OCCURS 0,
          IT_STR LIKE BAPI_STRUC OCCURS 0,
          IT_ORG LIKE BAPI_OBJEC OCCURS 0,
          IT_POS LIKE BAPI_OBJEC OCCURS 0,
          IT_SUP LIKE BAPI_OBJEC OCCURS 0,
          IT_FCAT LIKE BAPI_HRAQFIELDDESCRIPTION OCCURS 0,
          IT_FDAT LIKE BAPI_HRFIELDDATA OCCURS 0,
          IT_ORGS TYPE STANDARD TABLE OF BAPI_OBJEC WITH HEADER LINE,
          IT_POSS TYPE STANDARD TABLE OF BAPI_OBJEC WITH HEADER LINE,
          IT_SUPR TYPE STANDARD TABLE OF BAPI_OBJEC WITH HEADER LINE,
          V_DATE  TYPE SY-DATUM,
          IT_T500P LIKE T500P OCCURS 0 WITH HEADER LINE,
          IT_TT500P LIKE T500P OCCURS 0 WITH HEADER LINE,
          IT_T001P LIKE T001P OCCURS 0 WITH HEADER LINE      .
    DATA: IT_PA0001 LIKE PA0001 OCCURS 100 WITH HEADER LINE,
          P_ENDDA LIKE sy-datum.
    DATA: Begin of I_HRE,
            pernr  like  pa0001-pernr,  "Emp Number
            nachn  like  pa0002-nachn,  "Last Name
            vorna  like  pa0002-vorna,  "First Name
            plans  like  BAPI_OBJEC-LONG_TEXT,  "Position
            div_text  like  pa9001-div_text,
            kztim  like  ZKZTIM_VAUES-name,
            stext  like  T591S-STEXT,     "Corporate function text
            werks  like  BAPI_OBJEC-LONG_TEXT,
            btrtl  like  pa0001-btrtl,
            orgeh  like  BAPI_OBJEC-LONG_TEXT,
            kostl  like  pa0001-kostl,
            mstbr  like  pa0001-mstbr,  "Supervisor
          End of I_HRE.
    DATA: I_HR like I_HRE occurs 100 with header line.
    DATA: V_PLANS LIKE PA0001-PLANS,
          V_EMP   LIKE PA0001-PERNR,
          V_KOSTL LIKE PA0001-KOSTL,
          V_SUPER LIKE BAPI_OBJEC-LONG_TEXT,
          V_EMP_POS LIKE BAPI_OBJEC-LONG_TEXT,
          V_SUPER_POS LIKE BAPI_OBJEC-LONG_TEXT,
          V_HEADER TYPE N VALUE 1,
          V_COUNTER TYPE N VALUE 1,
          EMP_INDICATOR TYPE N,
          V_ORGEH LIKE BAPI_OBJEC-LONG_TEXT,
          V_WERKS LIKE BAPI_OBJEC-LONG_TEXT,
          V_KZTIM LIKE ZKZTIM_VAUES-NAME,
          V_STEXT LIKE T591S-STEXT.
      DATA: v_file TYPE string,         "Detail Filename
            v_filerecord(1000),
            f_filerecord(1000),
            drive(3),
            mstbr  like  pa0001-mstbr,  "Supervisor
            count  type n value 0.
    SELECTION-SCREEN BEGIN OF BLOCK SELECTION WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_PERNR FOR P0000-PERNR,
                    S_WERKS FOR PA0001-WERKS,
                    S_BTRTL FOR PA0001-BTRTL,
                    S_PERSG FOR PA0001-PERSG,
                    S_ORGEH FOR PA0001-ORGEH,
                    S_DIV   FOR PA9001-DIV_CODE,
                    S_KZTIM FOR PA0007-KZTIM,
                   S_sname for pa0001-sname, " this is to enter name
                                                             " as manager name
                    S_FUNKT FOR PA0034-FUNKT.
    SELECTION-SCREEN END OF BLOCK SELECTION.
    SELECTION-SCREEN BEGIN OF BLOCK SELECTION1 WITH FRAME TITLE TEXT-002.
    PARAMETERS:     P_BEGDA LIKE SY-DATUM DEFAULT sy-datum.
    *                P_ENDDA LIKE SY-DATUM DEFAULT '99991231'.
    SELECTION-SCREEN END OF BLOCK SELECTION1.
    START-OF-SELECTION.
    if P_BEGDA is initial.
      p_begda = sy-datum.
    endif.
    if P_ENDDA is initial.
      p_endda = sy-datum.
    endif.
    if S_PERSG is initial.
    *    S_PERSG-SIGN = 'I'.
    *    S_PERSG-OPTION = 'EQ'.
    *    S_PERSG-LOW = '1'.
    *    APPEND S_PERSG.
    *    S_PERSG-SIGN = 'I'.
    *    S_PERSG-OPTION = 'EQ'.
    *    S_PERSG-LOW = '6'.
    *    APPEND S_PERSG.
        S_PERSG-SIGN = 'I'.
        S_PERSG-OPTION = 'NE'.
        S_PERSG-LOW = '5'.
        APPEND S_PERSG.
    endif.
      SELECT * FROM PA0001 into IT_PA0001
        WHERE PERNR IN S_PERNR
          AND WERKS IN S_WERKS
          AND BTRTL IN S_BTRTL
          AND PERSG IN S_PERSG
          AND ORGEH IN S_ORGEH
          AND BEGDA LE P_BEGDA
          AND ENDDA GE P_ENDDA.
        APPEND IT_PA0001.
      ENDSELECT.
      IF not S_DIV[] is initial.
        SELECT * FROM PA9001 into IT_PA9001
          WHERE DIV_CODE IN S_DIV.
          APPEND IT_PA9001.
        ENDSELECT.
      ENDIF.
      IF not S_KZTIM[] is initial.
        SELECT * FROM PA0007 into IT_PA0007
          WHERE KZTIM IN S_KZTIM.
          APPEND IT_PA0007.
        ENDSELECT.
      ENDIF.
      IF not S_FUNKT[] is initial.
        SELECT * FROM PA0034 into IT_PA0034
          WHERE FUNKT IN S_FUNKT.
          APPEND IT_PA0034.
        ENDSELECT.
      ENDIF.
      SORT IT_PA0001 by SNAME.
      LOOP AT IT_PA0001.
        IF not S_DIV[] is initial.
          READ TABLE IT_PA9001 with key pernr = IT_PA0001-PERNR.
          IF sy-subrc ne 0.
            continue.
          ENDIF.
        ENDIF.
        IF not S_KZTIM[] is initial.
          READ TABLE IT_PA0007 with key pernr = IT_PA0001-PERNR.
          IF sy-subrc ne 0.
            continue.
          ENDIF.
        ENDIF.
        IF not S_FUNKT[] is initial.
          READ TABLE IT_PA0034 with key pernr = IT_PA0001-PERNR.
          IF sy-subrc ne 0.
            continue.
          ENDIF.
        ENDIF.
          V_COUNTER = 1.
                V_EMP = IT_PA0001-PERNR.
                V_KOSTL = IT_PA0001-KOSTL.
    *            WRITE: (10) V_EMP, (20) PA0002-NACHN, (20) PA0002-VORNA.
          WRITE: / SY-VLINE.                   " Left border
            WHILE V_EMP NE ''.
                PERFORM GET_SUPER CHANGING V_EMP V_SUPER
                                    V_EMP_POS.
              if v_emp ne ''.
                  select single * into it_pa0002 from pa0002
                    where pernr = v_emp
                      and begda LE p_begda
                      and endda GE p_endda.
                  IF V_HEADER = 1.
                        PERFORM HEADING.
                    V_HEADER = 0.
                  ENDIF.
                  WRITE:  (10) V_EMP, (17) IT_PA0002-NACHN
                          ,(17) IT_PA0002-VORNA, (40) V_EMP_POS.
                  move v_emp  to  i_hr-pernr.
                  move IT_PA0002-NACHN  to  i_hr-nachn.
                  move IT_PA0002-VORNA  to  i_hr-vorna.
                  move V_EMP_POS  to  i_hr-plans.
                  EMP_INDICATOR = V_COUNTER.
                  IF V_COUNTER = 1.
                    select single * into it_pa9001 from pa9001
                      where pernr = v_emp
                        and begda LE p_begda
                        and endda GE p_endda.
                    select single * into it_pa0007 from pa0007
                      where pernr = v_emp
                        and begda LE p_begda
                        and endda GE p_endda.
                    PERFORM GET_KZTIM_TEXT CHANGING it_pa0007-kztim V_KZTIM.
                    select single * into it_pa0034 from pa0034
                      where pernr = v_emp
                        and begda LE p_begda
                        and endda GE p_endda.
                    PERFORM GET_FUNKT_TEXT CHANGING it_pa0034-funkt v_stext.
                    write: (8) IT_PA9001-DIV_CODE, (17) V_KZTIM,
                           (25) V_STEXT.
                    move  IT_PA9001-DIV_CODE  to  i_hr-div_text.
                    move  v_KZTIM  to  i_hr-kztim.
                  ENDIF.
                  IF V_COUNTER = 0.
                    WRITE: (1) '|'.
                  ENDIF.
                  IF V_COUNTER = 1.
                    PERFORM GET_NAMES.
                    WRITE: (20) V_WERKS, (5) IT_PA0001-BTRTL
                            ,(20) V_ORGEH,(11) V_KOSTL, (3) '|'.
                    V_COUNTER = 0.
                    move  V_WERKS  to  i_hr-werks.
                    move  IT_PA0001-BTRTL  to  i_hr-btrtl.
                    move  V_ORGEH  to  i_hr-orgeh.
                    move  V_KOSTL  to  i_hr-kostl.
                  ENDIF.
                clear it_pa0002.
                refresh it_pa0002.
              endif.
                V_EMP = V_SUPER.
                move V_SUPER to i_hr-mstbr.
                if EMP_INDICATOR EQ 1.
                  append i_hr.
                endif.
                clear i_hr.
            ENDWHILE.
      NEW-LINE.
      CLEAR : V_KZTIM, it_pa9001, it_PA0007.
      ENDLOOP.
    * Check if its a background Job
      IF SY-BATCH NE SPACE.
        perform write_file.     "Output File
      ENDIF.
      ULINE.
    *&      Form  GET_SUPER
    *       This subroutine takes the position number and get the position
    * number that it reports to and then who is holding that position and
    * then the name of the person who is holding that position in order to
    * provide the supervisors name for the person in that position.
    *  -->  p1        text
    *  <--  p2        text
    FORM GET_SUPER CHANGING EMP_SUB EMP_SUPER
                               EMP_SUB_POS  .
      DATA: v_reporto like hrp1001-varyf value space,
            v_holder  like hrp1001-varyf value space,
            v_filled  like hrp1001-varyf value space,
            v_otype   like hrp1001-otype value space,
            v_objid   like hrp1001-objid value space.
      CLEAR: v_reporto, v_holder, v_filled, v_otype, v_objid,
                              EMP_SUB_POS.
      Select single plans
        into v_plans
        from pa0001
            where pernr = emp_sub
              and begda LE p_begda
              and endda GE p_endda.
            CALL FUNCTION 'BAPI_ORGUNITEXT_DATA_GET'
               EXPORTING
                  PLVAR                = '01'
                  OTYPE                = 'S'
                  OBJID                = v_PLANS
                  KEYDATE              = SY-DATUM
                  SCENARIO             = '    '
    *                 EVALPATH             = 0
                  EVALDEPTH            = 0
               IMPORTING
                  RETURN               = IT_RET
               TABLES
    *                 ACTORTAB             = IT_ACT
    *                 STRUCTURALDATA       = IT_STR
                  OBJECTSDATA          = IT_SUP
    *                 FIELDCATALOGUE       = IT_FCAT
    *                 FIELDDATA            = IT_FDAT
            IF SY-SUBRC EQ 0.
              READ TABLE IT_SUP INTO IT_SUPR
                 WITH KEY PLAN_VERS  = '01'
                          OBJECTTYPE = 'S'
                          OBJECT_ID  = v_PLANS.
              IF SY-SUBRC EQ 0.
                MOVE IT_SUPR-LONG_TEXT TO EMP_SUB_POS.
              ENDIF.
            ENDIF.
      Select Single varyf
         into v_reporto
         from hrp1001
            where otype = 'S'
              and objid = v_plans
              and rsign = 'A'
              and relat = '002'
              and begda LE p_begda
              and endda GE p_endda.
      if sy-subrc = 0.
        move v_reporto+0(1) to v_otype.
        move v_reporto+2(8) to v_objid.
        Select single varyf
           into v_holder
           from hrp1001
              where otype = v_otype
                and objid = v_objid
                and rsign = 'A'
                and relat = '008'
              and begda LE p_begda
              and endda GE p_endda.
        if sy-subrc = 0.
          move v_holder+0(1) to v_otype.
          move v_holder+2(8) to v_objid.
          EMP_SUPER = v_objid.
        IF EMP_SUB = EMP_SUPER.
           EMP_SUPER = ''.
        ENDIF.
    *      Select single varyf
    *         into v_filled
    *            from hrp1001
    *               where otype = v_otype
    *                 and objid = v_objid
    *                 and rsign = 'A'
    *                 and relat = '209'.
    *      if sy-subrc = 0.
    *        CLEAR: IT_RET, IT_ACT, IT_STR,  IT_FCAT, IT_FDAT,
    *               IT_SUP, IT_SUPR.
    *        REFRESH: IT_POSS.
    *        move v_filled+0(2) to v_otype.
    *        move v_filled+2(8) to v_objid.
    *        CALL FUNCTION 'BAPI_ORGUNITEXT_DATA_GET'
    *           EXPORTING
    *              PLVAR                = '01'
    *              OTYPE                = v_otype
    *              OBJID                = v_objid
    *              KEYDATE              = V_DATE
    *              SCENARIO             = '    '
    **                 EVALPATH             = 0
    *              EVALDEPTH            = 0
    *           IMPORTING
    *              RETURN               = IT_RET
    *           TABLES
    **                 ACTORTAB             = IT_ACT
    **                 STRUCTURALDATA       = IT_STR
    *              OBJECTSDATA          = IT_SUP
    **                 FIELDCATALOGUE       = IT_FCAT
    **                 FIELDDATA            = IT_FDAT
    *        IF SY-SUBRC EQ 0.
    *          READ TABLE IT_SUP INTO IT_SUPR
    *             WITH KEY PLAN_VERS  = '01'
    *                      OBJECTTYPE = v_otype
    *                      OBJECT_ID  = v_objid.
    *          IF SY-SUBRC EQ 0.
    *            MOVE IT_SUPR-LONG_TEXT TO EMP_SUPER.
    *          ENDIF.
    *        ENDIF.
    *      endif.
        endif.
      endif.
        if sy-subrc <> 0.
           EMP_SUPER = ''.
        endif.
    ENDFORM.                    " GET_SUPER
    *&      Form  HEADING
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM HEADING .
      FORMAT INTENSIFIED OFF.              " Remove any INTENSIFIED
      FORMAT COLOR COL_HEADING INTENSIFIED." Title color
      WRITE:  (10) 'Employee', (17) 'Last Name'
                          ,(17) 'First Name', (40) 'Position'
                          ,(8) 'Division', (17) 'Management Type'
                          ,(25) 'Corporate Function'
          ,(20) 'Personnel Area', (5) 'PSA'
          ,(20) 'Org. Unit',(11) 'Cost Center',(3) '|'
              ,(10) 'Supervisor', (17) 'Last Name'
                          ,(17) 'First Name', (40) 'Position', (1) '|'
              ,(10) 'Supervisor', (17) 'Last Name'
                          ,(17) 'First Name', (40) 'Position', (1) '|'
              ,(10) 'Supervisor', (17) 'Last Name'
                          ,(17) 'First Name', (40) 'Position', (1) '|'
              ,(10) 'Supervisor', (17) 'Last Name'
                          ,(17) 'First Name', (40) 'Position', (1) '|'
              ,(10) 'Supervisor', (17) 'Last Name'
                          ,(17) 'First Name', (40) 'Position', (1) '|'
              ,(10) 'Supervisor', (17) 'Last Name'
                          ,(17) 'First Name', (40) 'Position', (1) '|'
              ,(10) 'Supervisor', (17) 'Last Name'
                          ,(17) 'First Name', (40) 'Position', (1) '|'
              ,(10) 'Supervisor', (17) 'Last Name'
                          ,(17) 'First Name', (40) 'Position', (1) '|'
              ,(10) 'Supervisor', (17) 'Last Name'
                          ,(17) 'First Name', (40) 'Position', (1) '|'
      ULINE  .                    " Line below titles
        NEW-LINE.
          WRITE: / SY-VLINE.                   " Left border
      FORMAT COLOR OFF.
    ENDFORM.                    " HEADING
    *&      Form  GET_NAMES
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM GET_NAMES .
      CLEAR: IT_RET, IT_ACT, IT_STR, IT_ORG, IT_POS, IT_FCAT, IT_FDAT,
             IT_ORGS, IT_POSS, V_ORGEH, V_WERKS.
      REFRESH: IT_ORGS, IT_POSS.
      MOVE SY-DATUM TO V_DATE.
      CALL FUNCTION 'BAPI_ORGUNITEXT_DATA_GET'
         EXPORTING
            PLVAR                = '01'
            OTYPE                = 'O '
            OBJID                = IT_PA0001-ORGEH
            KEYDATE              = V_DATE
            SCENARIO             = '    '
    *         SCENARIO             = 'MDT1'
    *         EVALPATH             = '0       '
            EVALDEPTH            = 0
         IMPORTING
            RETURN               = IT_RET
         TABLES
    *         ACTORTAB             = IT_ACT
    *         STRUCTURALDATA       = IT_STR
             OBJECTSDATA          = IT_ORG
    *         FIELDCATALOGUE       = IT_FCAT
    *         FIELDDATA            = IT_FDAT
      IF SY-SUBRC EQ 0.
        READ TABLE IT_ORG INTO IT_ORGS
           WITH KEY PLAN_VERS  = '01'
                    OBJECTTYPE = 'O '
                    OBJECT_ID  = IT_PA0001-ORGEH.
        IF SY-SUBRC EQ 0.
          MOVE IT_ORGS-LONG_TEXT TO V_ORGEH.
        ENDIF.
      ENDIF.
      CALL FUNCTION 'HR_TMW_READ_T500P'
        EXPORTING
          PERSA          = IT_PA0001-WERKS
        IMPORTING
          W500P          = IT_T500P
        EXCEPTIONS
          NO_ENTRY_FOUND = 1
          OTHERS         = 2.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      IF SY-SUBRC EQ 0.
        MOVE IT_T500P-NAME1 TO V_WERKS.
        CLEAR:  IT_T500P.
        REFRESH: IT_T500P.
      ENDIF.
    *  CALL FUNCTION 'HR_TMW_READ_T001P'
    *    EXPORTING
    *      PERSA          = PA0001-WERKS
    *      BTRTL          = PA0001-BTRTL
    *    IMPORTING
    *      W001P          = IT_T001P
    *    EXCEPTIONS
    *      NO_ENTRY_FOUND = 1
    *      OTHERS         = 2.
    *  IF SY-SUBRC <> 0.
    *    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *  ENDIF.
    *  IF SY-SUBRC EQ 0.
    *    MOVE IT_T001P-BTEXT TO IT_HRR05-BTRTL.
    *  ENDIF.
    ENDFORM.                    " GET_NAMES
    *&      Form  GET_KZTIM_TEXT
    *       text
    *      <--P_V_EMP  text
    *      <--P_V_KZTIM  text
    FORM GET_KZTIM_TEXT  CHANGING P_KZTIM_ID
                                  P_KZTIM.
      select single NAME into P_KZTIM from ZKZTIM_VAUES
              where TYPE eq P_KZTIM_ID.
    ENDFORM.                    " GET_KZTIM_TEXT
    *&      Form  GET_FUNKT_TEXT
    *       text
    *      <--P_V_EMP  text
    *      <--P_V_KZTIM  text
    FORM GET_FUNKT_TEXT  CHANGING P_FUNKT_ID
                                  P_STEXT.
      select single STEXT into P_STEXT from T591S
              where SPRSL eq 'EN' and
                    INFTY eq '0034' and
                    SUBTY eq P_FUNKT_ID.
    ENDFORM.                    " GET_KZTIM_TEXT
    *&      Form  write_file
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM write_file .
    *   Checking the System ID
      if sy-sysid = 'RD1'.
        drive = 'D:\'.
      else.
        drive = 'M:\'.
      endif.
    *  concatenate drive sy-sysid
    *              '\Output\Reports\HR\HR_Public\Emp_Hierarchy'
    *              sy-datum
    *              '.xls' into v_file.
      concatenate drive sy-sysid
                  '\Output\Reports\HR\HR_Public\Emp_Hierarchy.xls'
                  into v_file.
      OPEN DATASET v_file FOR OUTPUT in text mode encoding default.
      concatenate 'Employee'
                  'Last Name'
                  'First Name'
                  'Position'
                  'Division'
                  'Management Type'
                  'Corporate Function'
                  'Personnel Area '
                  'PSA'
                  'Org. Unit'
                  'Cost Center'
                  'Supervisor'
                  'Last Name'
                  'First Name'
                  'Position'
                  'Supervisor'
                  'Last Name'
                  'First Name'
                  'Position'
                  'Supervisor'
                  'Last Name'
                  'First Name'
                  'Position'
                  'Supervisor'
                  'Last Name'
                  'First Name'
                  'Position'
                  'Supervisor'
                  'Last Name'
                  'First Name'
                  'Position'
                  'Supervisor'
                  'Last Name'
                  'First Name'
                  'Position'
                  'Supervisor'
                  'Last Name'
                  'First Name'
                  'Position'
                  'Supervisor'
                  'Last Name'
                  'First Name'
                  'Position'
                  'Supervisor'
                  'Last Name'
                  'First Name'
                  'Position'
                   into v_filerecord
                   separated by CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
      transfer v_filerecord to v_file.    "Writing to file
      clear v_filerecord.
      loop at IT_PA0001.
        do.
          if count eq 0.
            read table i_hr with key pernr = IT_PA0001-pernr.
            concatenate i_hr-pernr
                        i_hr-nachn
                        i_hr-vorna
                        i_hr-plans
                        i_hr-div_text
                        i_hr-kztim
                        i_hr-stext
                        i_hr-werks
                        i_hr-btrtl
                        i_hr-orgeh
                        i_hr-kostl
                        into v_filerecord
                        separated by CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
             mstbr = i_hr-mstbr.
             count = count + 1.
          else.
            read table i_hr with key pernr = mstbr.
            concatenate v_filerecord
                        i_hr-pernr
                        i_hr-nachn
                        i_hr-vorna
                        i_hr-plans
                        into f_filerecord
                        separated by CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
            v_filerecord = f_filerecord.
            mstbr = i_hr-mstbr.
            clear i_hr.
          endif.
          if mstbr eq space.
            exit.
          endif.
        enddo.
        transfer v_filerecord to v_file.  "Writing to file
        clear: v_filerecord, f_filerecord, count.
      endloop.
      CLOSE DATASET v_file.
    ENDFORM.                    " write_file
    Edited by: Surender Batlanki on Feb 20, 2008 7:50 AM
    Edited by: Surender Batlanki on Feb 20, 2008 7:59 AM
    Edited by: Surender Batlanki on Feb 20, 2008 8:12 AM
    Edited by: Surender Batlanki on Feb 20, 2008 3:16 PM
    Edited by: Alvaro Tejada Galindo on Feb 20, 2008 9:26 AM

    Hi Surender,
    In the Perform GET_SUPER, you are getting manager's OBJID. Use this OBJID and from PA0001 get Manger's name.
    While passing data to output table, filter that table by Manager's name and then pass output table for display.
    Hope this helps u.
    <REMOVED BY MODERATOR>
    Regards,
    Preeti
    Edited by: Alvaro Tejada Galindo on Feb 20, 2008 9:26 AM

  • Displaying Data Using Selection-screen in Module Pool

    Hi All,
    Currently I'm working on a module pool program.In that i'm having two screens 9000 and 9001.
    I want to select a bookrefno using a selection screen and display header & table control data in 9001 screen when the bookrefno is validated.
    can anyone help me sending sample code regarding this
    Regards
    Ravi S

    Hi Ravi
    Place "bookrefno." field on screen 9000.
    Use validations on that particular field by using chain-endchain.
    in PAI of 9000
    case sy-ucomm
    when 'display'
    call screen 9001
    write select statment to display data i.e header & table control in 9001 .
    hope this would solve your problem.
    reward points, if its helpful.
    Thanks
    RK Nimma

  • Wrong date format when using selection screen query

    Hi all,
    I have a problem in a report when usign the selection screen of the query.
    the system has been upgraded recently from a 3.5 to 7.0. when a query is run in the bex web the user can put in the selection date needer to run the query.
    currently if u select a month using the selection screen next to the input form, the month will show up in the input field
    as 006 09 (006space09) instead of 06.2009 for the selection of june. 
    does anyone know how to fix this? it was working good using the 3.5 version of the bex web.
    Any help apriciated

    Using the list cube transaction and using the selection sceen and selecting the month it does put the right selection in the input field. ive also just tested it using de bx excel plugin and using the selection screen the correct value is set in the input field.  so i think it more of a bex we b problem but i dont know where to start the search for the solution.

  • Using Selection screen and selection screen output

    Hi All,
    I am trying to execute AT SELECTION-SCREEN and AT SELECTION-SCREEN output. Both the para's working fine seperately. But when I execute them together AT SELECTION-SCREEN output is not working. Please let me know how to solve this problem. Please see below for the code.
    PARAMETERS:  p_werks LIKE marc-werks OBLIGATORY MEMORY ID WRK,
                 p_lgort LIKE mard-lgort OBLIGATORY,
                 p_rlgort LIKE mard-lgort OBLIGATORY.
        PARAMETERS: p_boml TYPE c RADIOBUTTON GROUP mode user-command flag.
            SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
                PARAMETERS: p_aufnr LIKE aufk-aufnr MODIF ID cp2.
            SELECTION-SCREEN: END OF BLOCK b1.
    *SELECTION-SCREEN COMMENT 1(44) text-004 FOR FIELD p_cmpl.
        PARAMETERS: p_cmpl TYPE c RADIOBUTTON GROUP mode.
           SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
                PARAMETERS: p_matnr type marc-matnr MODIF ID cp1,
                            p_verid type afpo-verid MODIF ID cp1,
                            p_labst type mard-labst MODIF ID cp1.
           SELECTION-SCREEN: END OF BLOCK b2.
       PARAMETERS: p_mstr TYPE c RADIOBUTTON GROUP mode.
    AT SELECTION-SCREEN output.
      LOOP AT SCREEN.
        IF p_boml <> 'X' AND
           screen-group1 = 'CP1'.
           screen-active = '1'.
           MODIFY SCREEN.
        ENDIF.
        IF p_cmpl <> 'X' AND
           screen-group1 = 'CP2'.
           screen-active = '1'.
           MODIFY SCREEN.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    AT SELECTION-SCREEN.
      IF p_boml EQ 'X'.
        IF p_AUFNR EQ space.
            MESSAGE e000(z1) WITH 'Please fill Production Order.'.
        ENDIF.
      endif.
      IF p_cmpl EQ 'X'.
        IF p_MATNR EQ space  OR p_verid EQ space OR p_labst EQ space.
            MESSAGE e000(z1) WITH text-003 'Production Version & Quantity. '.
        ENDIF.
      endif.
    Thanks,
    Senthil

    Hi Senthil,
    As far as my knowledge is concerned AT Selection-Screen output and AT Selection-Screen wont work together.In this code you are trying to do the validation in AT Selection-Screen. Instead of that try doin your validations in Start-of-selection Event.
    i,e., modify your code as follows:
    PARAMETERS: p_werks LIKE marc-werks OBLIGATORY MEMORY ID WRK,
    p_lgort LIKE mard-lgort OBLIGATORY,
    p_rlgort LIKE mard-lgort OBLIGATORY.
    PARAMETERS: p_boml TYPE c RADIOBUTTON GROUP mode user-command flag.
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_aufnr LIKE aufk-aufnr MODIF ID cp2.
    SELECTION-SCREEN: END OF BLOCK b1.
    *SELECTION-SCREEN COMMENT 1(44) text-004 FOR FIELD p_cmpl.
    PARAMETERS: p_cmpl TYPE c RADIOBUTTON GROUP mode.
    SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: p_matnr type marc-matnr MODIF ID cp1,
    p_verid type afpo-verid MODIF ID cp1,
    p_labst type mard-labst MODIF ID cp1.
    SELECTION-SCREEN: END OF BLOCK b2.
    PARAMETERS: p_mstr TYPE c RADIOBUTTON GROUP mode.
    AT SELECTION-SCREEN output.
    LOOP AT SCREEN.
    IF p_boml <> 'X' AND
    screen-group1 = 'CP1'.
    screen-active = '1'.
    MODIFY SCREEN.
    ENDIF.
    IF p_cmpl <> 'X' AND
    screen-group1 = 'CP2'.
    screen-active = '1'.
    MODIFY SCREEN.
    ENDIF.
    MODIFY SCREEN.
    ENDLOOP.
    START-OF-Selection.
    Perform validation.
    form validation.
    IF p_boml EQ 'X'.
    IF p_AUFNR EQ space.
    MESSAGE e000(z1) WITH 'Please fill Production Order.'.
    ENDIF.
    endif.
    IF p_cmpl EQ 'X'.
    IF p_MATNR EQ space OR p_verid EQ space OR p_labst EQ space.
    MESSAGE e000(z1) WITH text-003 'Production Version & Quantity. '.
    ENDIF.
    endif.
    endform.
    Kindly reward if useful.
    Thanks,
    pavithra

  • Re: About radio button enable by using selection screen

    Hi,
       this is suresh babu.i am doing one report on Competency table. About details of the report..
    there are four text feilds and 3 radio buttons in main screen.if we select one of the radio button then i want screen to required table..
    text feild:
    Division:----
    personnal area:----
    employee group:----
    Year:----
    select the type of report you wiish to execute.
    radio button1: low competency
    radio button2: low KPI
    radio button3: low competeny and KPI
    *this is my main screen of the report.my requirement is when we click any of the radio buttn i have to go for the required table in my program.
    so i want how to enable radio buton and how to generate New T-code in ABAP.

    HI create program inwhich u hav only 3 radio buttons as parameters
    parameters : p1 radiobutton group rg1,
                     p2 radiobutton group rg1,
                 p3 radiobutton group rg1.
    if p1 = 'X'.
    submit Zprogram1 VIA SELECTION-SCREEN .
    ***Zprogram1 is program to b called for radiobutton 1.
    elseif p2 = 'X'.
    submit Zprogram2 VIA SELECTION-SCREEN
    else if P3 = 'X'.
    submit Zprogram3 VIA SELECTION-SCREEN
    endif.
    goto SE93..
    and create new tcode and assign this program name der...

  • Trailing space when using SELECTION-SCREEN COMMENT

    Hi All,
    I need to display a continuous text (length :130) in selection screen. I am trying with SELECTION-SCREEN COMMENT option and i m aware that we can display max of 79 characters. So i split the text into length: 70 & 60 and coded as below
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(70) text-001.
    SELECTION-SCREEN POSITION 73.
    SELECTION-SCREEN COMMENT 73(60) text-002.
    SELECTION-SCREEN END OF LINE.
    Problem is: After displaying first text (text-001), there is a gap of 10-15 characters, then second text starts (text-002). I mean, there is a trailing space.
    If i give all text-001 in CAPS, then there is no trailing space. But i dont need to display the text in CAPS.
    Do i need to proceed in any other way?, please provide your inputs
    Vinoth

    Your SAPgui to use a proportional font for texts and descriptions (where "i" is much shorter than "W") when it use a non-proportional for input fields. But it use this non-proportional font for input fields even if input is not allowed.
    Try this sample to solve your problem. (But your text will be in a box)
    REPORT zfontst.
    CONSTANTS ctxt TYPE c LENGTH 80 VALUE 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'.
    PARAMETERS: p1 TYPE c LENGTH 56.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT (2) p2a.
    SELECTION-SCREEN POSITION POS_LOW.
    SELECTION-SCREEN COMMENT (56) p2.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS: p3 TYPE c LENGTH 56 MODIF ID dsp.
    AT SELECTION-SCREEN OUTPUT.
      p1 = ctxt.
      p2 = ctxt.
      p2a = 'P2'.
      p3 = ctxt.
      LOOP AT SCREEN.
        CASE screen-group1.
          WHEN 'DSP'.
            screen-input = '0'.
        ENDCASE.
        MODIFY SCREEN.
      ENDLOOP.
    Regards,
    Raymond

  • Select criteria without using SELECTION SCREENs

    Hi everybody,
    I have a report with a single screen, 4 fields for search criteria and 2 alv grids for the output.
    I search db tables with a select statement.
    Is it possible to define a select statement that searches for 3 out of 4 criteria, if the fourth input field isn't filled it?
    Because right now the select statement doesn't return any data if I leave one parameter blank.
    And how can I provide the possibility to define more than one search criteria of one kind withour adding several input fields on the screen?
    For example: Data created on 20070101 and 20070105.
    I know that most of this can be done with selection screens, but is there a possibility to do this without a selection screen?
    Best regards
    Tobias

    You should use SELECT-OPTIONS on your selection screen.  This allows the user to enter all kinds of possiblities, including leaving something blank.  Then in your SELECT statement, you use the IN operator.
    select-options: s_datum for sy-datum.
    select * into table itab
               from ztable
                      where datum IN s_datum.
    If you truly do not want to use a Selection-screen, you could hard code values in the SELECT statement or create a range using the RANGE statement.  The RANGE statement works exactly like SELECT-OPTION statement but without the selection-screen.
    Regards,
    Rich Heilman

Maybe you are looking for

  • Error In Activation Of New GL

    Dear All, I have configured the settings of newgl the leading ledger and additional ledgers after that when am trying to activate the new gl T - Code (FAGL_ACTIVATION) an error message is coming as follows View/table VFAGL_ACTIVEC can only be display

  • Error in Windows 8 default Broadcom netb57vx.inf file?

    Hello all, We are trying and failing to install Windows 8 32bit enterprise on some older machines that use a Broadcom b5786 NIC. Hardware Id PCI\VEN_14e4&DEV_169A&SUBSYS_101f17AA. We can install Windows 8 from a USB stick and Windows finds the NIC an

  • PSE 7 with windows 7 cannot get edited pics just  not back in Org ?

    Since installinng windows 7 I have not been able to edit pictures and have them back in Organizer just have a blank icon this happend after installing windows photo gallery. went to default tried to put defalt as Adobe photoshop elements organizer bu

  • Alert user when saving PDF if required fields are empty/null

    Greetings, I've read a fair number of threads on this topic. I am not trying to force the user to stay in a field or otherwise be annoyed. I would just like to alert the user when they save the PDF if there are required fields that have not been fill

  • Error when syncing iTunes 8 with iphone 3GS "Notes"

    "iTunes could not sync notes to 'Scott's iPhone' because the iPhone is disconnected" Have tried rebooting, checking/unchecking notes box, etc but I keep getting this error message. Everything else seems to sync fine. Also, I'm unable to even use "not