Check user name on selection screen

Dear all,
I have been able to make a field mandatory on a selection screen. This is field username. However, the system does not check if the user exists.
What I have done is made a copy of the program behind LX16: RLINV015
Now I have ZLX16 and ZRLINV015
I know the SAP users are found in tabel USR02, so I have added this table under data definition where the other tables are mentioned.
How do I enforce that only existing usernames are entered?
Thanks,
Nick

Marcin,
I really appreciate your answer, it brought me somewhere. However, the code I pasted is addeing a new field, whereas I really need the user name in field LINK-UNAME, otherwise my inventory document is not getting the user name.
I have tried the following to achieve this:
AT SELECTION-SCREEN.
  SELECT SINGLE bname FROM usr02 INTO link-uname
                                 WHERE bname = pa_user
This was however not doing the job.
Do you have any more suggestions?
Thanks,
Nick

Similar Messages

  • Dynamic check box creation in selection screen

    Hello,
    I am trying to put up some check boxes dynamically in a selection screen. The number: of check boxes required and the 'checkbox label text' is to be retrieved from a database table. I have retrieved all these values in AT SELECTION-SCREEN OUTPUT event. But, I dont know how to create check box parameters using these dynamic values.  Please help..

    hi Giffin,
    Create a program with name 'Z_13317_DYN_CHKBOX' and paste the following code in it. Also make ensure that an include with name 'Z_13317_DYN_INCL' is not existing earlier because this program will be overwritten each and everytime.
    Z_13317_DYN_CHKBOX will take an integer as an input. After giving input, click on the button on selection screen.
    Suppose, if you have given 3 as input and if you have clicked the button, then 3 checkboxes will be generated on your selection screen.
    REPORT  Z_13317_DYN_CHKBOX.
    types :begin of t_itab1,
            line(72),
           end of t_itab1.
    data: incl type table of t_itab1 with header line.
    parameters: p_tab type i,
                p_frst type c no-display.
    selection-screen begin of line.
    selection-screen: pushbutton 2(20) but1 user-command cli1.
    selection-screen end of line.
    include z_13317_dyn_incl if found.
    initialization.
    at selection-screen output.
      if p_frst = ' '.
        p_frst = 'X'.
        perform crt_dyn_incl.
      endif.
    at selection-screen.
      case sy-ucomm.
        when 'CLI1'.
        perform crt_dyn_incl.
      endcase.
    *&      Form  crt_dyn_incl
    *       text
    form crt_dyn_incl .
      perform populate_incl.
      perform del_incl.
      insert report 'Z_13317_DYN_INCL' from incl.
      commit work.
      submit z_13317_dyn_chkbox via selection-screen with p_frst = p_frst.
    endform.                    " crt_dyn_incl
    *&      Form  del_incl
    *       text
    form del_incl .
      call function 'RS_DELETE_PROGRAM'
        exporting
         program                          = 'Z_13317_DYN_INCL'
         suppress_checks                  = 'X'
         suppress_popup                   = 'X'
         with_cua                         = ' '
         with_documentation               = ' '
         with_dynpro                      = 'X'
         with_includes                    = ' '
         with_textpool                    = ' '
         with_variants                    = ' '
      if sy-subrc <> 0.
      endif.
    endform.                    " del_incl
    *&      Form  populate_incl
    *       text
    form populate_incl .
      data: v_cnt type n.
      do p_tab times.
        v_cnt = v_cnt + 1.
        incl-line = 'parameters: '.
        concatenate incl-line 'p_chk' v_cnt into incl-line.
        concatenate incl-line 'as checkbox.' into incl-line separated by space.
        append incl.
        clear incl.
      enddo.
    endform.                    " populate_incl
    Regards,
    Sailaja.

  • Check User Name: Isn't happening

    I have a registration page in JavaScript that is working fine except for the fact that I need it to check username against the database to insure that usernames do not get duplicated in the database. Because it does not check username I come to realize that user’s information is getting mixed up if the username are the same.  I am sure I am not doing this correctly because I have not used JavaScript before…. So I than created an Insert Record on the registration:
    Submit Values From: Form 1
    Connection: Rescue
    Insert Table: user_registration
    Columns: ‘ID’Gets Value From “FORM.username as Integer’
    Submit as: Integer
    After insert, go to: myprofile.php
    After creating the Insert Record I created the Check New Username:
    Username Field: username
    If already exist, go to: register.php
    So I tested to see if what I added worked and it does not.  What does happen- is when I create a new record in which the user has the same username that is all ready in the database…it allows me to create a duplicate username in the database and then send me to the following blank screen with the URL: http://www.rescuealerts.com/forms/user_registration/user_registration.php. Instead of sending me back to registration page to try again. I also realize I need to program in a message stating that username is unavailable try again but I hadn’t gotten to that point because I am first trying to get the Check New Username to work.  Please find below the code for the Insert Record, the Check New Username and the registration input form.
    Insert Record and Check New Username Code:
    <?php require_once('Connections/rescue.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      if (PHP_VERSION < 6) {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;   
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      return $theValue;
    // *** Redirect if username exists
    $MM_flag="MM_insert";
    if (isset($_POST[$MM_flag])) {
      $MM_dupKeyRedirect="register.php";
      $loginUsername = $_POST['username'];
      $LoginRS__query = sprintf("SELECT ID FROM user_registration WHERE ID=%s", GetSQLValueString($loginUsername, "int"));
      mysql_select_db($database_rescue, $rescue);
      $LoginRS=mysql_query($LoginRS__query, $rescue) or die(mysql_error());
      $loginFoundUser = mysql_num_rows($LoginRS);
      //if there is a row in the database, the username was found - can not add the requested username
      if($loginFoundUser){
        $MM_qsChar = "?";
        //append the username to the redirect page
        if (substr_count($MM_dupKeyRedirect,"?") >=1) $MM_qsChar = "&";
        $MM_dupKeyRedirect = $MM_dupKeyRedirect . $MM_qsChar ."requsername=".$loginUsername;
        header ("Location: $MM_dupKeyRedirect");
        exit;
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
      $insertSQL = sprintf("INSERT INTO user_registration (ID) VALUES (%s)",
                           GetSQLValueString($_POST['username'], "text"));
      mysql_select_db($database_rescue, $rescue);
      $Result1 = mysql_query($insertSQL, $rescue) or die(mysql_error());
      $insertGoTo = "myprofile.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      header(sprintf("Location: %s", $insertGoTo));
    ?>
    Registration Code:
    <script src='http://www.rescuealerts.com/forms/user_registration/scripts/gen_validatorv5.js' type='text/javascript'></script>
    <script src='http://www.rescuealerts.com/forms/user_registration/scripts/sfm_captcha_validator.js' type='text/javascript'></script>
    <script src='http://www.rescuealerts.com/forms/user_registration/scripts/sfm-png-fix.js' type='text/javascript'></script>
    <link rel='stylesheet' type='text/css' href='http://www.rescuealerts.com/forms/user_registration/style/user_registration.css'/>
    <form id='user_registration' method='post' action='http://www.rescuealerts.com/forms/user_registration/user_registration.php' accept-charset='UTF-8'>
       <div id='user_registration_errorloc' class='error_strings' style='width:500px;text-align:left'></div>
      <div id='user_registration_outer_div' style='width:500px;height:1120px'>
          <div style='position:relative; font-weight: normal;' id='user_registration_inner_div'>
             <input type='hidden' name='sfm_form_submitted' value='yes'/>
             <div id='heading_container'>
                <div id='heading'>Please Enter Your Information Here:</div>
             </div>
             <div id='Image2_container'>
                <img class='sfm_image_in_form' src='http://www.rescuealerts.com/forms/user_registration/images/rescue_logo_3 copy.jpg' width='128' height='24' alt='Rescue Alerts Logo'/>
             </div>
             <div id='register_name_container'>
                <input type='text' name='register_name' id='register_name' size='20' class='sfm_textbox'/>
             </div>
             <div id='label39_container'>
                <label id='label39' for='register_name' class='sfm_form_label'>Name:</label>
             </div>
             <div id='register_semail_container'>
                <input type='text' name='register_semail' id='register_semail' size='20' class='sfm_textbox'/>
             </div>
             <div id='register_pemail_container'>
                <input type='text' name='register_pemail' id='register_pemail' size='20' class='sfm_textbox'/>
             </div>
             <div id='label2_container'>
                <label id='label2' for='register_pemail' class='sfm_form_label'>Primary Email:</label>
             </div>
             <div id='label3_container'>
                <label id='label3' for='register_semail' class='sfm_form_label'>Secondary Email:</label>
             </div>
             <div id='register_cellphone_container'>
                <input type='text' name='register_cellphone' id='register_cellphone' size='20' class='sfm_textbox'/>
             </div>
             <div id='register_phone_container'>
                <input type='text' name='register_phone' id='register_phone' size='20' class='sfm_textbox'/>
             </div>
             <div id='label4_container'>
                <label id='label4' for='register_phone' class='sfm_form_label'>Home Phone:</label>
             </div>
             <div id='label5_container'>
                <label id='label5' for='register_cellphone' class='sfm_form_label'>Cell Phone:</label>
             </div>
             <div id='register_pass_container'>
                <input type='password' name='register_pass' id='register_pass' size='20' class='sfm_textbox'/>
             </div>
             <div id='register_login_container'>
                <input type='text' name='register_login' id='register_login' size='20' class='sfm_textbox'/>
             </div>
             <div id='label6_container'>
                <label id='label6' for='register_pass' class='sfm_form_label'>User Password:</label>
             </div>
             <div id='label38_container'>
                <label id='label38' for='register_login' class='sfm_form_label'>User Login:</label>
             </div>
             <div id='heading1_container'>
                <div id='heading1'>Enter Emergency Contact  Information Here:</div>
             </div>
             <div id='label14_container'>
                <div id='label14'>Contact 1:</div>
             </div>
             <div id='con1_cell_container'>
                <input type='text' name='con1_cell' id='con1_cell' size='20' class='sfm_textbox'/>
             </div>
             <div id='con1_name_container'>
                <input type='text' name='con1_name' id='con1_name' size='20' class='sfm_textbox'/>
             </div>
             <div id='label11_container'>
                <label id='label11' for='con1_cell' class='sfm_form_label'>Cell Phone:</label>
             </div>
             <div id='label40_container'>
               <label id='label40' for='con1_name' class='sfm_form_label'>Name:</label>
             </div>
             <div id='con1_land_container'>
                <input type='text' name='con1_land' id='con1_land' size='20' class='sfm_textbox'/>
             </div>
             <div id='label10_container'>
                <label id='label10' for='con1_land' class='sfm_form_label'>Land Line:</label>
             </div>
             <div id='con1_email_container'>
                <input type='text' name='con1_email' id='con1_email' size='20' class='sfm_textbox'/>
             </div>
             <div id='label12_container'>
                <label id='label12' for='con1_email' class='sfm_form_label'>Email:</label>
             </div>
             <div id='label15_container'>

    hjohnson2011 wrote:
    I have a registration page in JavaScript that is working fine except for the fact that I need it to check username against the database to insure that usernames do not get duplicated in the database. Because it does not check username I come to realize that user’s information is getting mixed up if the username are the same.  I am sure I am not doing this correctly because I have not used JavaScript before….
    When asking for help, you stand a much better chance of getting the answers you need if you create a simple test page to illustrate the problem, rather than posting hundreds of lines of code. A test page helps isolate the problem without being distracted by everything else in your complex form.
    What's not clear from your description is what the JavaScript is intended to do. Taking a quick look at the code you have posted here, the Insert Record server behavior handles only the username. Yet your form has dozens of fields. Also, the form's action attribute points to user_registration.php. Is this the same page or a different script? If it's a different script, that's what's inserting the values into the database. The Check User Name server behavior is never called. Or is an external JavaScript file taking the values after validation and using an Ajax call to insert them in the database? Again, this would bypass the Check User Name server behavior.
    Having said that, the Check User Name server behavior is, to my mind, worse than useless, because it redirects the user to another page, thereby losing all the user input. The simple solution is to add a UNIQUE index to the username column in the database. This prevents a duplicate entry from being inserted. However, you need to customize the Insert Record server behavior to intercept the MySQL error like this:
      // remove the or die() clause
      $Result1 = mysql_query($insertSQL, $rescue);
      // if the username is already in use
      if (!$Result1 && mysql_errno() == 1062) {
          $error = $_POST['username'] . ' is already in use. Choose another.';
      } elseif (mysql_error()) {
          $error = 'Sorry, there is a problem with the database. Try later.';
      } else {
          $insertGoTo = "myprofile.php";
          if (isset($_SERVER['QUERY_STRING'])) {
            $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
            $insertGoTo .= $_SERVER['QUERY_STRING'];
          header(sprintf("Location: %s", $insertGoTo));
      }  // close extra conditional statement
    You can then redisplay the page if the username is already taken, and use the $_POST array to preserve the user's input in the form.

  • Handling Check Boxes in the selection screen

    Hi All,
    I have defined 3 Check Boxes in the selection screen and one box will be ticked as 'X" by default.
    I need to put restriction so that only any one should be selected as 'X' whenever user wish to select.
    Hence any time, when user selects a box, other two should be unchecked.
    How to put this kind of control?
    Regards
    Pavan

    I think you should go for 'Radiobutton'
    But if U want check box then
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF cb_option1 = 'X'.
          CLEAR cb_option2.
          MODIFY SCREEN.
        ELSEIF cb_option2 = 'X'.
          CLEAR cb_option1.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.

  • Check Box On Standrad Selection-screen

    Hi Friends
    I am working on HR ABAP .I added 4 check boxes On Standrad Selection-screen. Its working on Development but its not working on production.can anyone suggest how its happend.

    Hello,
    A few questions.
    - what exactly is not working in production? 
    - do the check boxes appear at all?
    - did the changes get recorded on a change request and transported?
    - was the transport successful?
    - do the checkboxes 'work' in the QA envirionment?
    Regards
    Greg Kern

  • Can I get field name of Selection screen ?

    Hi, experts.
    I'd like to manage PGM's screens & fields of screens. I need to know field names of selection screen in  external PGMs to manage input values of those fields.
    For values, I'll use 'Dynp_values_read', but what should I use for getting field names of selection screen?
    Is there any functions, classes or tables for PGM's fields of selection screen?
    I've found tables&functions for this and I found D020S, D020T, D021T for PGM's screen. But I counld't see proper field names that shows on a selection screen when I excuted PGM. I guess there's a conversion routine between data that saved in repository and field name on screen.
    Please let me know what should I use a function, tables or else.
    Thanks.

    Hi
    Use Read text pool syntax
    READ TEXTPOOL program name
    INTO T_TPOOL
    LANGUAGE 'NL'.
    within TB_TPOOL all select option field namees will be stored under field ID with type S
    Edited by: Lavanya K on Apr 22, 2009 10:02 AM

  • PL/SQL Function to check user name and password

    Hi,
    I am new to PL/SQL. I have a table that stores user name and password. I want to write a PL/SQL function that checks if the entered user name and password is correct, by validation against the values in the table... Can someone help me with the code? Both user name and password is varchar2

    First of all, I believe you mean a procedure that would check the application username and password. Fot, if you mean a PL/SQL procedure, that runs in the database, and that means it has to be executed after the client application is connected to the database.
    Maybe you need a procedure like this:
    procedure check_pass(p_user varchar2, p_pass varchar2) is
    pragma autonomous_transaction;
    v_passwd varchar2(200);
    begin
    select passwd into v_passwd
    from password_table
    where user_name=p_user;
    if v_passwd!=p_pass then
    update password_table set
    last_unsucc_logon=sysdate
    ,unsucc_logon_n=nvl(unsucc_logon_n,0)+1
    where user_name=p_user;
    commit;
    raise_application_error(-20101,'Invalid username/password!');
    end if;
    exception
    when no_data_found then
    raise_application_error(-20101,'Invalid username/password!');
    end;
    Study this piece of code and see if this will do.

  • 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

  • How to get a check box on the selection screen

    Hi all
    can any body tell me how to get a check box on the selection screen

    parameter: pa_check   as checkbox.
    To define the input field of a parameter as a checkbox, you use the following syntax:
    PARAMETERS <p> ...... AS CHECKBOX ......
    Parameter <p> is created with type C and length 1. In this case, you may not use the additions TYPE and LIKE. Valid values for <p> are ' ' and 'X'. These values are assigned to the parameter when the user clicks the checkbox on the selection screen.
    If you use the TYPE addition to refer to a data type in the ABAP Dictionary of type CHAR and length 1 for which 'X' and ' ' are defined as valid values in the domain, the parameter automatically appears as a checkbox on the selection screen.
    REPORT DEMO.
    PARAMETERS: A AS CHECKBOX,
    B AS CHECKBOX DEFAULT 'X'.

  • How to create check boxes dynamically in selection screen

    Hi Experts,
    I have a requirement of creating dynamic check boxes based on the number of records that are retrieved from a database table.
    Can you please suggest me how to achieve it.
    Regards
    RP.

    Hey RP,
    Try this way.
    REPORT ztest_program .
    DATA: it_data TYPE TABLE OF t001.
    DATA:check    TYPE char3.
    DATA:sy_index TYPE char2.
    DEFINE checkbox.
      parameters:&1 as checkbox.
    END-OF-DEFINITION.
    CHECKbox:c01,c02,c03,c04,c05,c06,c07,c08,c09,c10,
             c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,
             c21,c22,c23,c24,c25,c26,c27,c28,c29,c30,
             c31,c32,c33,c34,c35,c36,c37,c38,c39,c40.
    AT SELECTION-SCREEN OUTPUT.
      DESCRIBE TABLE it_data LINES sy-tfill.
      sy-tfill = 39. "This will be changed based on the itab records. I just hardcoded the value
      sy_index = 1.
      LOOP AT SCREEN.
        CONCATENATE 'C' sy_index INTO check.
        IF screen-name = check.
          IF sy_index GT sy-tfill.
            screen-active = '0'.
            MODIFY SCREEN.
            sy_index = sy_index + 1.
            CONTINUE.
          ENDIF.
          sy_index = sy_index + 1.
        ENDIF.
      ENDLOOP.
    Thanks
    Venkat.O

  • Check box in ALV selection screen

    Hi to all
              I like to know how to create a checkbox in the input screen of an ALV.

    What do you mean by ALV check box selection screen?
    ALV and selection screen check box( you are mixing two cases in your Question).
    You need use the Function moduel in the user command to get the updated data.
    in fieldcatalog you have to use INPUT = 'X' and EDIT = 'X' for the columns which ever you want edit.
    GET_GLOBALS_FROM_SLVC_FULLSCR
    follow the sample code.
    REPORT ZTEST_ALV_CHECK MESSAGE-ID ZZ .
    TYPE-POOLS: SLIS.
    DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
    IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    L_LAYOUT TYPE SLIS_LAYOUT_ALV,
    X_EVENTS TYPE SLIS_ALV_EVENT,
    IT_EVENTS TYPE SLIS_T_EVENT.
    DATA: BEGIN OF ITAB OCCURS 0,
    VBELN LIKE VBAK-VBELN,
    POSNR LIKE VBAP-POSNR,
    CHK(1),
    color(4),
    END OF ITAB.
    SELECT VBELN
    POSNR
    FROM VBAP
    UP TO 20 ROWS
    INTO TABLE ITAB.
    X_FIELDCAT-FIELDNAME = 'CHK'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS = 1.
    X_FIELDCAT-INPUT = 'X'.
    X_FIELDCAT-EDIT = 'X'.
    X_FIELDCAT-CHECKBOX = 'X'.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'VBELN'.
    X_FIELDCAT-SELTEXT_L = 'VBELN'.
    X_FIELDCAT-HOTSPOT = 'X'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS = 2.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'POSNR'.
    X_FIELDCAT-SELTEXT_L = 'POSNR'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS = 3.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    L_LAYOUT-info_fieldname = 'COLOR'.
    *L_LAYOUT-ZEBRA = 'X'.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT = L_LAYOUT
    I_CALLBACK_PF_STATUS_SET = 'STATUS'
    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    IT_FIELDCAT = IT_FIELDCAT
    TABLES
    T_OUTTAB = ITAB
    EXCEPTIONS
    PROGRAM_ERROR = 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.
    *& Form STATUS
    text
    -->P_EXTAB text
    FORM STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.
    Pf status
    SET PF-STATUS 'STATUS'.
    ENDFORM. " STATUS
    *& Form USER_COMMAND
    text
    -->R_UCOMM text
    -->RS_SELFIELD text
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
    DATA: GD_REPID LIKE SY-REPID, "Exists
    REF_GRID TYPE REF TO CL_GUI_ALV_GRID.
    IF REF_GRID IS INITIAL.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
    E_GRID = REF_GRID.
    ENDIF.
    IF NOT REF_GRID IS INITIAL.
    CALL METHOD REF_GRID->CHECK_CHANGED_DATA .
    ENDIF.
    loop at itab where chk = 'X'.
    itab-color = 'C300'.
    modify itab index sy-tabix transporting color.
    endloop.
    RS_SELFIELD-refresh = 'X'.
    break-point.
    ENDFORM. "USER_COMMAND
    Regards
    Vijay Babu Dudla

  • RAR5.3 not able to cut and paste list of users to Multiple Selection screen

    CC V4.0 on ABAP system has a feature where you can cut and paste a list of many users from the clipboard to Single Values column in the Multiple Selection screen, so you can run SOD Analysis Report for all those users.  The Multiply Selection screen is a standard SAP supplied pop up screen.
    With RAR 5.3 the Multiply Selection screen design is different.  There is no longer feature to cut and paste from clipboard.  We have to input each user one at a time.  So if you have many users (20, 30, etc.) it is a time consuming task.  It is not acceptable to our business power users.
    We can import the list of users to a Custom User Group (in the Configuration Tab).  First of all, there is no mass delete on Custom User Group.  You have to delete each user one at a time which is time consuming.  The alternative is to create a new Custom User Group each time, then it becomes a maintenance nightmare.  Secondly, it is in the Configuration Tab which is only available to Administrators (fear of users changing configuation data), so the Administrator (or whomever has access to the Configuration Tab) has to maintain the Custom User Groups which is a lot of work for him or her or them.
    We talk to SAP every week.  But they are looking at this as a long time project.  Does any one of you (or your company) has the same requirements?  How do you get around it?  Did you setup some other procedures so users can cut and paste the users list and run the Risk Analysis report themselves?
    Thanks,
    John.

    This is probably a JVM issue. Are you using JInitiator or the IE native JVM?
    I suggest you turn on the JVM console, set the trace level to maximum, and then watch what happens when you attempt the copy.
    Also, check the key mapping (usually ctrl-k) that the forms applet is implementing. Perhaps ctrl-c means something else...

  • Problem with User Defined Second Selection Screen

    Hi Gurus,
                       I have a problem with the selection  screen selections. My requirement is that , User when he selects a check box on the main selection screen ( which is 1000) then at the at-selection event, another screen (whose number is 2000) will be called and it has some parameters to enter values. My problem is that how to get the values from this second screen and use them in the in my program. There is an execute button on the second selection screen and when i click that, nothing is happening.
                       Can anybody suggest me how to get the values from this screen which we called, and entered values in that screen. How to use these values and is there any way that we can do this.
    Thanks in advance for helping me out.
    Regards,
    Srinivas.

    Use <b>DYNP_VALUES_READ</b> FM to read the values from your dynpro screen...
    Like this...
    DATA: ls_dyname     TYPE d020s-prog,
            ls_dynumb     TYPE d020s-dnum.
    gt_dynpfields TYPE STANDARD TABLE OF dynpread WITH HEADER LINE.
        ls_dynumb = '0112'.
        gt_dynpfields-fieldname = 'RF05A-NEWKO'.
        APPEND gt_dynpfields.
      CALL FUNCTION 'DYNP_VALUES_READ'
        EXPORTING
          dyname               = ls_dyname
          dynumb               = ls_dynumb
        TABLES
          dynpfields           = gt_dynpfields
        EXCEPTIONS
          invalid_abapworkarea = 1
          invalid_dynprofield  = 2
          invalid_dynproname   = 3
          invalid_dynpronummer = 4
          invalid_request      = 5
          no_fielddescription  = 6
          invalid_parameter    = 7
          undefind_error       = 8
          double_conversion    = 9
          stepl_not_found      = 10
          OTHERS               = 11.
    Greetings,
    Blag.

  • Quick Viewer SQVI: how to switch to Technical Field Names on select screen?

    Hi all,
    I have created in SQ01 a Quick view and want to see the technical field names (and not the descriptions) on the selection screen.
    In SE16 in the selection screen you go to
    -> Settings
    -> User parameters
    unter 'keywords' you find FIELD NAME / LABEL and you can choose.
    But in SQVI there is not that option.
    Only in the creation of the query you can 'switch between techniucal name and long text'.
    However if you execute and come to the selection screen then there is only the long text....
    Who knows????
    Thanks in advance,
    Thomas

    I also tried with different options but it looks like SAP does not have option to display technical fields in output, however we can see technical names while creating query.

  • Do you know how to place "enter by user name" to initial screen of fb03?

    Hello,
        When we enter fb03 display finance document, and click "header" button, I can see the "entery by username". But we want the "enter by name" display in the initial screen of fb03.
       Is anyone can suggest how to make it?
    Thanks,
    Li Jing

    Hi,
    In FB03, first you need to navigate to the Document list and from there you can choose the use name in the dynamic selection. The user name will not come in the initial screen of FB03.
    Alternatively, you can create a selection screen program which will have use name on the selection screen alongwith other fields and then pass on this selection details to the program RFBUEB00 selection data. Your ABAPer can do it for you.
    Regards,
    Gaurav

Maybe you are looking for

  • Which is best video format for storage of video media files?

    Greetings, good folk and happy holidays! My question involves the conversion of physical video media, DVDs, video files, etc, and storage for use with multiple devices. Like many of you, I have video in many formats and in multiple places... DVDs, Bl

  • How can i share folders at Mac mini late 2009 with Apple Tv 3?

    I'm using Mac mini 2009 and I can't share any folder with Apple tv 3...anyone managed to get a way to do so, so far?

  • Slow/fast/reverse in video effects

    Hi I've just got the new iMac with iMovie 08. Does anyone know how I can get into the video effects and the slow/fast/reverse function?

  • How do I get itunes to play the local file instead of streaming it?

    I have my iTunes Library on an external FW800 drive.  Recently I didn't realize the drive was not attached and tried to play a song.  iTunes couldn't find the file and started streaming it from iTunes Match.  I've since reattached the drive, but iTun

  • Clipboard problem in CS5

    We often have to copy images in Word documents and paste them into a new file in Photoshop. Hitting New... in CS4 Photoshop opens a blank file of the correct size and resolution to paste in the clipboard file. CS5 cuts the file down to a tiny size an