How to validate ch field in selection screen

hi experts.......
how to validate ch field selection screen......... and which function module is used to validate parameter field i.e character

Hello,
            Is your requirement to Validate the Character Field? This is what I understand. If it is right, then do you want to Validate whether a Character Value is entered?
            Check the below Sample Code.
At Selection-Screen on P_CHARFIELD.
    IF P_CHARFIELD CA '1234567890'.
        Message 'Enter an Alpha Character only' Type 'E'.
    Endif.
Thanks and Regards,
Venkat Phani Prasad Konduri

Similar Messages

  • How to make a field in selection screen as READ_ONLY !!

    Hi,
       How to make a field in selection screen as READ_ONLY !!.
    Thanks,
    Senthil

    This is the code you need to have in your program.
    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
      IF SCREEN-NAME = 'MYSELFLD'.
        SCREEN-INPUT = 0.
        MODIFY-SCREEN.
      ENDIF.
    ENDLOOP.

  • How to hide input fields on selection screen using variant attribute

    Hello all,
    I want to know how to hide input fields on selection screen using variant attribute conpletely.
    As you know, when setting the attribute of variant "Hide field" checked, the field is temporarily hidden, but when clicking "All Selections(F7)" button on the selection screen, the fileds become appeared.
    I want to hide the field completely. Di you know how to do ?
    Thank you for your support.
    Regards,
    Hideki Kozai

    Use this attribute hide field and save the variant. Then create transaction for this program setting default variant for parameter Start with variant . The user who runs it will have it by defualt set.
    Otherwise
    in PBO simply use LOOP at screen and output = 0 for this field. This will ensure that field is invisible in any case.
    Regards
    Marcin

  • How to make required field on selection screen in Query

    i'm now working with query(SQ01).
    but don't know how to make required field on selection screen in Query.
    thanks in advance

    i'm now working with query(SQ01).
    but don't know how to make required field on selection screen in Query.
    thanks in advance

  • Validate a field on selection screen based on value entered on anothr field

    HI,
    There is a program with some fields in selection screen in EWM. The first field is Warehouse. I need to add another field 'Entity to Dispose' in such that what ever value I enter in Warehouse field, its corresponding values should only be displayed as F4 help for 'Entity to Dispose' field.
    For eg: If I select the warehouse as 0799(lets say), then the F4 help for Entity to Dispose field should display only the values which are related to warehouse 0799 (and any other values pertaining to other warehouse should not appear).
    Could anyone suggest, how this can be achieved?
    Thanks in advance.
    Regards,
    Pavan

    Hi,
    You can use FM
    DYNP_VALUES_READ
    DYNP_VALUES_UPDATE
    to read the another field value and Using that field build your internal table for f4 values.
    and use FM F4IF_INT_TABLE_VALUE_REQUEST for F4 values..
    do this on AT SELECTION-SCREEN ON VALUE REQUEST FOR <YOUR_F4_FIELDNAME>.

  • How to validate input's in selection-screen

    Hi ,
    can any one how to validate input's field's  in selection-screen and each field has diffirent tables and what is the table name which has all the validating fields??
    Thank's in advance..

    hi,
      You can use validate selct-options using select query by obtaining the realtionship from table .Using the selection-screen events You can write code for validation as follows.
    tables:
      kna1.                                " General Customer data
    *"Selection screen elements............................................
    select-options:
      s_kunnr for kna1-kunnr.              " Customer number
    *"Data declarations...................................................
    Data declaration of the structure to hold kna1 details              *
    data:
      begin of fs_customer,
        kunnr type kna1-kunnr,             " Customer number
        adrnr type kna1-adrnr,             " Address
        anred type kna1-anred,             " Title
        erdat type kna1-erdat,             " Created on
        ernam type kna1-ernam,             " Created by
      end of fs_customer.
    *"Constants declarations..............................................
    constants
      w_path type string value 'D:\DOWNLOAD\CUSTOMER'.
    Internal table to hold customer details                             *
    data:
      t_customer like
        standard table
              of fs_customer.
                          AT SELECTION SCREEN OUTPUT                    *
    at selection-screen.
      perform retrieve.
    Form  RETRIEVE                                                     *
    This subroutine retrieve customer data from table kna1             *
    There are no interface parameters to be passed to this subroutine. *
    form retrieve .
      select kunnr                         " Customer number
             adrnr                         " Address
             anred                         " Title
             erdat                         " Created on
             ernam                         " Created by
        into corresponding fields of table t_customer
        from kna1
       where kunnr in s_kunnr.             " END SELECT
      if sy-subrc ne 0.
        message text-001 type 'E'.
        exit.
      endif.                               " IF SY-SUBRC NE 0
    endform.                               " RETRIEVE
    regards,
    veeresh

  • How gray out the fields in selection screen with parameters

    Hi,
    Can any one help me how to gray out the selection screen fields
    Start-of-selection----
    Parameters : p_status TYPE edids-status MODIF ID xyz DEFAULT co_51.
    End-of-selection----
    i want to grayed out the field p_status.
    except At selection-screeen output, can any one suggest the other method of gray out the above field.
    Thank u
    B Ravi Kumar

  • How to disable a field in selection screen based on condition.

    Hi,
    I have 2 radio buttons- p_normd, p_recov  and 2 other controls - like text boxes, say tb1 and tb2. and some mandatory fields below.
    If i choose p_normd, i want one control(tb2) to be disabled and if i choose p_recov, i want the other control(tb1) to be disabled(tb2 should be enabled then.)
    Currently i am using the following code. The 1'st radiobutton is intially checked. But the problem is when i click on the 2'nd radio button, the other control(tb1) is not getting disabled. When i double click, i get an error telling mandatory field to be filled. Only after the other mandatory fields below are filled, and after i double click on the unchecked radiobutton, the other control gets disabled.
    Please suggest what to do..
    The current code below:
      AT SELECTION-SCREEN OUTPUT. "ON RADIOBUTTON GROUP rg01.
      LOOP AT SCREEN.
      IF  p_normd EQ c_x  AND screen-group1 = 'SC2'.
            MOVE 0 TO screen-input.
          MODIFY SCREEN.
      ENDIF.
      IF p_recov EQ c_x AND screen-group1 = 'SC1'. "IF screen-name = 'ERDAT-LOW' OR screen-name = 'ERDAT-HIGH'.
            MOVE 0 TO screen-input.
            MODIFY SCREEN.
      ENDIF.
      ENDLOOP.
    Thanks,
    Ammu

    Hi
    declare your parameter as below:
    parameters: p_x type c radio button group g1 user-command r.
    in at selection screen output event .
    check for the radio button.
    loop at screen.
    if screen group is <desired value>
    then screen-active = 0 or 1. <do whatever you want to do.>
    modify screen.
    endloop.
    see below the sample code.
    <<<<<AT SELECTION SCREEN EVENT>>>>>
    AT SELECTION-SCREEN ON BLOCK B1.
      IF P_LCOST = C_X.
        PERFORM CLEAR_FIELDS.    " Clearing fields before loading the screen
        CALL SELECTION-SCREEN 100 STARTING AT 20 5.
      ELSEIF  P_MCOST = C_X.
        PERFORM CLEAR_FIELDS1.          " Clearing fields before loading the screen
        CALL SELECTION-SCREEN 101 STARTING AT 20 5.
      ENDIF.
      IF SY-SUBRC = 0.
        PERFORM VALIDATION.             " Validating selection screen input
      ELSE.
        LEAVE TO TRANSACTION C_TRAN.
      ENDIF.
    <<<<<<DECLARATION PART>>>>>>
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS: P_LCOST RADIOBUTTON GROUP GI DEFAULT 'X',
                P_MCOST RADIOBUTTON GROUP GI.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF SCREEN 100 AS WINDOW TITLE TEXT-002.
    SELECTION-SCREEN BEGIN OF BLOCK B2.
    PARAMETERS: P_COAREA TYPE CSKS-KOKRS OBLIGATORY,         " controlling area
                P_FYR    TYPE COEP-GJAHR OBLIGATORY,         " fiscal year
                P_PERIOD TYPE COEP-PERIO OBLIGATORY.         " fiscal period
    SELECT-OPTIONS: S_CCNTR FOR V_KOSTL OBLIGATORY,       " Cost Center
                    S_COELM FOR V_KSTAR MODIF ID M1,       " Cost element
                    S_PDATE FOR V_BUDAT OBLIGATORY.       " posting date.
    SELECTION-SCREEN END OF BLOCK B2.
    SELECTION-SCREEN END OF SCREEN 100.
    SELECTION-SCREEN BEGIN OF SCREEN 101 AS WINDOW TITLE TEXT-003.
    SELECTION-SCREEN BEGIN OF BLOCK B3.
    PARAMETERS:     P_CCODE  TYPE T001-BUKRS OBLIGATORY,         " Company Code
                    P_FYEAR  TYPE COEP-GJAHR OBLIGATORY.         " fiscal year
    SELECT-OPTIONS:   S_GLACC FOR V_HKONT OBLIGATORY,       " G/L Account
                      S_PCNTR FOR V_PRCTR MODIF ID M2,      " Profit Center
                      S_PODATE FOR V_BUDAT OBLIGATORY.      " posting date.
    SELECTION-SCREEN END OF BLOCK B3.
    SELECTION-SCREEN END OF SCREEN 101.
    thanks
    LG
    Edited by: LalitG on Apr 13, 2011 1:38 PM

  • Transaction DP97: Need to add 2 fields on selection screen...

    Hi,
    I am using ECC6.0. I need to add 2 extra fields on selection screen of transaction DP97. Program name is RVPKMASS97. i did not find any screen-exit for this. Please can anybody suggest any other way to add fields on selection screen... I think i can use enhancement points. please help if anybody has previously worked on this. I need to know following things:
    1) how to add 2 fields on selection screen ( 2 fields are : MATNR-Service product and FFPRF-DIP profile)
    2) where to add programming logic for this
    Thanks in advance,
    Minal

    Hi,
    Go to program RVPKMASS97.
    Go inside INCLUDE rvpkmasspar.
    (When you double click on the include a pop up screen will come up and in that select the RVPKMASS97)
    Click on spiral icon there on the tool bar.
    right click on the '
    ENHANCEMENT-POINT RVPKMASSPAR_01 SPOTS ES_RVPKMASSPAR STATIC INCLUDE BOUND .' line and select enhancement-> create. and give some implementation name and text.
    now you can declare ur fields in this implementation.
    After declaring save it and activate it.
    Now go back to ur txn and run. you are able to see the custom fields on the screen.
    Reward me points if it is helpful.
    I think it will help you out.
    Thanks,
    Prasanna

  • How can i declare a single radio button field in selection-screen ?

    How can i declare a single radio button field in selection-screen ?

    >
    Rob Burbank wrote:
    > And how will you turn it off once it is turned on??
    >
    > Rob
    Thats correct ;)...See ravi if users will ask so many things its our Job to convay the correct solution ....
    Just post your org requirement..SOo some body guide you better//
    Sas

  • How to add Material type(MTART) field on Selection screen of MB5B transaction code.

    Hi All,
        Please let me know how to add material type field on selection screen of MB5B transaction
    For that i made copy ZMB5B_COPY of original report RM07MLBD.
    Thanks in adv .
    Samadhan

    Hi,
    Once you copied the standard report to Z report, you can MTART in selection screen like below.
    and in order to inlcude the same in programming logic, we have three option.
    1) Check all related select queries, and include MTART in SELECT query using inner join with MARA.
    2) In START-OF-SELECTION event fill MATNR as shown below.
    3) If user entered any value in MTART, then before displaying the report just check material type of each material in the final internal table(which is used to display report) delete enteries from internal table accordingly.
    START-OF-SELECTION.
    IF MTART[] IS NOT INITIAL AND MATNR[] IS INITIAL.
        SELECT MATNR FROM MARA INTO MATNR-LOW WHERE MTART IN MTART.
          MATNR-OPTION = 'EQ'.
          MATNR-SIGN = 'I'.
          APPEND MATNR.
          CLEAR MATNR.
        ENDSELECT.
    ENDIF.
    The above option has one limitation: The selection screen variables has some restriction, please read the below thread.
    Facing problem in select statement dump DBIF_RSQL_INVALID_RSQL CX_SY_OPEN_S
    Getting Dump in the select query has more than 2000 entries
    Hope this will work for you .
    regards,
    Rajesh Sadula.

  • How to do field in selection screen

    Hi,
    Could you please let me know, how to add a field in selection view of KAEP_SCOVP. This view is used in KSB1 transaction code for selection.
    Thanks,
    Sriram Ponna.
    Message was edited by:
            Sriram Ponna

    Would you be able to tell me how you did it?
    I'm working on the same issue also.  I need to add a field to the selection screen of KSB1.
    Thanks.

  • How to fill internal table with selection screen field.

    Hi all,
    i am new to sap . pls tell me how to fill internal table with selection screen field.

    Hi,
    Please see the example below:-
    I have used both select-options and parameter on the selection-screen.
    Understand the same.
    * type declaration
    TYPES: BEGIN OF t_matnr,
            matnr TYPE matnr,
           END OF t_matnr,
           BEGIN OF t_vbeln,
             vbeln TYPE vbeln,
           END OF t_vbeln.
    * internal table declaration
    DATA : it_mara  TYPE STANDARD TABLE OF t_matnr,
           it_vbeln TYPE STANDARD TABLE OF t_vbeln.
    * workarea declaration
    DATA : wa_mara  TYPE t_matnr,
           wa_vbeln TYPE t_vbeln.
    * selection-screen field
    SELECTION-SCREEN: BEGIN OF BLOCK b1.
    PARAMETERS : p_matnr TYPE matnr.
    SELECT-OPTIONS : s_vbeln FOR wa_vbeln-vbeln.
    SELECTION-SCREEN: END OF BLOCK b1.
    START-OF-SELECTION.
    * I am adding parameter value to my internal table
      wa_mara-matnr = p_matnr.
      APPEND wa_mara TO it_mara.
    * I am adding select-options value to an internal table
      LOOP AT s_vbeln.
        wa_vbeln-vbeln =  s_vbeln-low.
        APPEND  wa_vbeln TO  it_vbeln.
      ENDLOOP.
    Regards,
    Ankur Parab

  • How can I add a new field in selection screen for this report

    *& Report  ZGS_BARKODLA_HIZLI_GIRIS
    report  zgs_barkodla_hizli_giris.
    tables: mara,
            mseg,
            mch1,
            *mch1,
            mkpf,
            mchb ,
            makt.
    type-pools: esp1.
    data: i_message_tab  type esp1_message_tab_type,
          wa_message_tab type esp1_message_wa_type ,
          sc_count type i.
    ALV
    type-pools: slis, kkblo.
    data: gs_layout   type slis_layout_alv                     ,
          gt_fldcat   type slis_t_fieldcat_alv with header line,
          gt_header   type slis_t_listheader   with header line,
          gt_sortin   type slis_t_sortinfo_alv with header line,
          g_repid     like sy-repid                            .
    define add-fieldcat.
      gt_fldcat-fieldname     = &1.
      gt_fldcat-ref_tabname   = &2.
      gt_fldcat-seltext_s     = &3.
      gt_fldcat-seltext_m     = &3.
      gt_fldcat-seltext_l     = &3.
      gt_fldcat-reptext_ddic  = &3.
      gt_fldcat-ddictxt       = 'M'.
      append gt_fldcat.
      clear  gt_fldcat.
    end-of-definition.
    types: begin of titab,
            sel   type xfeld,
            matnr type matnr,
            maktx type maktx,
            charg type charg_d,
            menge type menge_d,
            erfmg type erfmg,
           end of titab.
    data : witab type titab.
    data : itab type table of titab.
    data : ok_code type sy-ucomm.
    controls: tc_itab type tableview using screen 0100.
    data: gv_header like bapi2017_gm_head_01,
          gv_code   like bapi2017_gm_code.
    BAPI export parameters
    data: gv_headret type bapi2017_gm_head_ret,
          gv_matdoc  type bapi2017_gm_head_ret-mat_doc,
          gv_matyear type bapi2017_gm_head_ret-doc_year.
    data : lv_objek like inob-objek .
    data : ls_inob  like inob .
    data : imseg type ty_t_mseg.
    data : wmseg type mseg.
    data : answer.
    data : count type i.
    data : v_atinn type atinn.
    BAPI movement details
    data: i_goodsmvt_items type bapi2017_gm_item_create occurs 0
          with header line.
    data: i_return type bapiret2 occurs 0 with header line.
    start-of-selection.
    call function 'CONVERSION_EXIT_ATINN_INPUT'
       exporting
         input  = 'Z_ORAN'
       importing
         output = v_atinn.
      call screen 100.
    *&      Module  status_0100  OUTPUT
    module status_0100 output.
      set pf-status '100'.
      set titlebar '100'.
      mseg-werks = 1000.
      mseg-umwrk = 1000.
    **added
      sc_count = sc_count + 1.
      if sc_count eq 1.
        mseg-bwart = 313.
      endif.
      mkpf-budat = sy-datum.
    **added
      describe table itab lines tc_itab-lines.
    endmodule.                 " status_0100  OUTPUT
    *&      Module  user_command_0100  INPUT
    module user_command_0100 input.
      data field(20).
      data: line_t like sy-index.
      data: lines  like sy-index.
      data line_count like sy-loopc.
      data: begin of cols,
             screen      like screen,
             index       type i,
             selected(1) type c,
             vislength   like icon-oleng,
             invisible(1) type c,
           end   of cols.
      case ok_code.
        when 'DELE'.
          delete itab where sel eq 'X'.
        when 'ENTE'.
          check *mch1-charg is not initial.
          read table itab into witab with key charg = *mch1-charg.
          if not sy-subrc is initial.
            witab-charg = *mch1-charg.
            select single matnr from mch1 into witab-matnr
                               where charg eq witab-charg.
            if not syst-subrc is initial.
              set cursor field '*MCH1-CHARG'.
              message e115(12) with *mch1-charg.
            endif.
            select single maktx from makt into witab-maktx
                               where matnr eq witab-matnr
                                 and spras eq syst-langu.
            witab-erfmg = 1.
            concatenate witab-matnr witab-charg into lv_objek .
            clear ls_inob .
            select single * into ls_inob
                            from inob
                            where objek = lv_objek and
                                  klart = '023'    and
                                  obtab = 'MCH1' .
            select single atflv from ausp into witab-menge
                     where objek = ls_inob-cuobj and
                           klart = '023' .
            append witab to itab.
    **added
            clear *mch1-charg.
    **added
          endif.
        when 'SAVE'.
          if mkpf-budat is initial.
            set cursor field 'MKPF-BUDAT'.
            message e055(00).
          endif.
          if mseg-lgort is initial.
            set cursor field 'MSEG-LGORT'.
            message e055(00).
          endif.
          if mseg-umlgo is initial.
            set cursor field 'MSEG-UMLGO'.
            message e055(00).
          endif.
          if mseg-bwart is initial.
            set cursor field 'MSEG-BWART'.
            message e055(00).
          endif.
          refresh imseg.
          loop at itab into witab.
            move-corresponding witab to wmseg.
            append wmseg to imseg.
          endloop.
          call function 'ZMM_POPUP_WITH_DATA'
            exporting
              imseg  = imseg
            importing
              answer = answer.
          if answer eq 'Y'.
            perform create_goods_movement.
          endif.
        when 'P--'.
          clear ok_code.
          perform paging using 'P--'.
          set cursor field 'MARA-MATNR' line 1.
        when 'P-'.
          clear ok_code.
          perform paging using 'P-'.
          set cursor field 'MARA-MATNR' line 1.
        when 'P+'.
          clear ok_code.
          clear lines.
          perform paging using 'P+'.
          set cursor field 'MARA-MATNR' line 1.
        when 'P++'.
          clear ok_code.
          perform paging using 'P++'.
          set cursor field 'MARA-MATNR' line 1.
        when 'SORA'.
          read table tc_itab-cols into cols with key selected = 'X'.
          if sy-subrc is initial.
            field = cols-screen.
            field = field+5(10).
            sort itab ascending by (field).
          endif.
        when 'SORZ'.
          read table tc_itab-cols into cols with key selected = 'X'.
          if sy-subrc is initial.
            field = cols-screen.
            field = field+5(10).
            sort itab descending by (field).
          endif.
        when 'PRNT'.
          perform write_alv.
      endcase.
    endmodule.                 " user_command_0100  INPUT
    *&      Module  read_table  OUTPUT
    module read_table output.
      mara-matnr = witab-matnr.
      makt-maktx = witab-maktx.
      mch1-charg = witab-charg.
      mseg-menge = witab-menge.
      mseg-erfmg = witab-erfmg.
      line_count = sy-loopc.
    endmodule.                 " read_table  OUTPUT
    *&      Module  write_table  INPUT
    module write_table input.
      witab-matnr = mara-matnr.
      witab-maktx = makt-maktx.
      witab-charg = mch1-charg.
      witab-menge = mseg-menge.
      witab-erfmg = mseg-erfmg.
      modify itab from witab index tc_itab-current_line.
    endmodule.                 " write_table  INPUT
    *&      Module  exit  INPUT
    module exit input.
      leave to screen 0 .
    endmodule.                 " exit  INPUT
    *&      Form  create_goods_movement
    form create_goods_movement .
      clear : gv_header, i_return[], i_goodsmvt_items[].
      gv_header-doc_date = gv_header-pstng_date = mkpf-budat.
      gv_header-pr_uname = sy-uname.
    GM with reference to reservation
      loop at itab into witab.
        i_goodsmvt_items-material   = witab-matnr.
        i_goodsmvt_items-entry_qnt  = witab-erfmg.
        i_goodsmvt_items-entry_uom  = 'ST'.
        i_goodsmvt_items-move_type  = mseg-bwart.
        i_goodsmvt_items-plant      = mseg-werks.
        i_goodsmvt_items-stge_loc   = mseg-lgort.
        i_goodsmvt_items-move_plant = mseg-umwrk.
        i_goodsmvt_items-move_stloc = mseg-umlgo.
        i_goodsmvt_items-batch      = witab-charg.
        append i_goodsmvt_items.
      endloop.
    find BAPI processing transaction
      if gv_code is initial.
        perform determine_bapi_code using mseg-bwart
                                 changing gv_code.
      endif.
      call function 'BAPI_GOODSMVT_CREATE'
        exporting
          goodsmvt_header  = gv_header
          goodsmvt_code    = gv_code
        importing
          goodsmvt_headret = gv_headret
          materialdocument = gv_matdoc
          matdocumentyear  = gv_matyear
        tables
          goodsmvt_item    = i_goodsmvt_items
          return           = i_return[].
    cancel blocking process
      loop at i_return where type eq 'E' or type eq 'A' or type eq 'X'.
        exit.
      endloop.
      if sy-subrc ne 0.
        refresh i_message_tab.
        call function 'BAPI_TRANSACTION_COMMIT'
          exporting
            wait = 'X'.
        wa_message_tab-msgid = 'M7'..
        wa_message_tab-msgty = 'S'.
        wa_message_tab-msgno = '060'.
        wa_message_tab-msgv1 = gv_matdoc.
        wa_message_tab-msgv2 = ''.
        wa_message_tab-msgv3 = ''.
        wa_message_tab-msgv4 = ''.
        append wa_message_tab to i_message_tab.
      else.
        refresh i_message_tab.
        call function 'BAPI_TRANSACTION_ROLLBACK'.
    write a message as there is an unexpected error.
        loop at i_return.
          wa_message_tab-msgid = i_return-id.
          wa_message_tab-msgty = i_return-type.
          wa_message_tab-msgno = i_return-number.
          wa_message_tab-msgv1 = i_return-message_v1.
          wa_message_tab-msgv2 = i_return-message_v2.
          wa_message_tab-msgv3 = i_return-message_v3.
          wa_message_tab-msgv4 = i_return-message_v4.
          append wa_message_tab to i_message_tab.
        endloop.
      endif.
      call function 'C14Z_MESSAGES_SHOW_AS_POPUP'
        tables
          i_message_tab = i_message_tab.
    endform.                    " create_goods_movement
    *&      Form  determine_bapi_code
    form determine_bapi_code using p_bwart type bwart
    changing p_code type bapi2017_gm_code.
      data: lt_t158b type table of t158b with header line.
      clear p_code.
      select tcode from t158b into corresponding fields of table lt_t158b
      where bwart eq p_bwart.
      loop at lt_t158b.
        select single gmcode from t158g into p_code
        where tcode eq lt_t158b-tcode.
        if sy-subrc is initial.
          exit.
        endif.
      endloop.
    endform. " determine_bapi_code
    *&      Form  paging
    form paging using code.
      data: i type i,
            j type i.
      case code.
        when 'P--'. tc_itab-top_line = 1.
        when 'P-'.
          tc_itab-top_line = tc_itab-top_line - line_count.
          if tc_itab-top_line le 0.
            tc_itab-top_line = 1.
          endif.
        when 'P+'.
          i = tc_itab-top_line +  line_count.
          j = tc_itab-lines -  line_count + 1.
          if j le 0.
            j = 1.
          endif.
          if i le j.
            tc_itab-top_line = i.
          else.
            tc_itab-top_line = j.
          endif.
        when 'P++'.
          tc_itab-top_line = tc_itab-lines - line_count + 1.
          if tc_itab-top_line le 0.
            tc_itab-top_line = 1.
          endif.
      endcase.
    endform.                    " paging
    *&      Form  write_alv
    form write_alv .
      perform find_list_header.
      perform fill_field_cat.
      perform fill_sortinfo.
      g_repid = sy-repid.
      gs_layout-colwidth_optimize = 'X'.
      gs_layout-zebra             = 'X'.
      answer = 'Y'.
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          i_buffer_active        = ''
          i_callback_program     = g_repid
          i_save                 = 'A'
        i_callback_top_of_page = 'TOP_OF_PAGE'
          is_layout              = gs_layout
          it_fieldcat            = gt_fldcat[]
         it_sort                = gt_sortin[]
        tables
          t_outtab               = itab[].
    endform.                    " write_alv
         Form  find_list_header
    form find_list_header.
      data : v_datum(10),
             v_datlo(10),
             v_dathi(10),
             v_uzeit(8).
      clear: gt_header, gt_header[].
      gt_header-typ  = 'H'.
      gt_header-info = sy-title.
      append gt_header.
      clear gt_header.
      gt_header-typ  = 'S'.
      gt_header-key  = 'Çal&#305;&#351;t&#305;rma Zaman&#305; : '.
      write syst-datum to v_datum.
      write syst-uzeit to v_uzeit.
      concatenate v_datum '/' v_uzeit into gt_header-info.
      append gt_header.
    endform.                    " find_list_header
         Form  fill_field_cat
    form fill_field_cat.
      refresh gt_fldcat.
      clear   gt_fldcat.
      gt_fldcat-key = 'X'.
      add-fieldcat 'MATNR'  'MARA' ''.
      add-fieldcat 'MAKTX'  'MAKT' ''.
      add-fieldcat 'CHARG'  'MSEG' ''.
      gt_fldcat-do_sum = 'X'.
      add-fieldcat 'MEINS'  'MARA' 'Olcu Birimi '.
      gt_fldcat-do_sum = 'X'.
      add-fieldcat 'ERFMG'  'MSEG' 'Adet'.
    endform.                    " fill_field_cat
         Form  fill_sortinfo
    form fill_sortinfo.
      gt_sortin-up            = 'X'.
      gt_sortin-fieldname     = 'MATNR'.  append gt_sortin.
    endform.                    " fill_sortinfo
         Form  top_of_page                                              *
    form top_of_page.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
        exporting
          i_logo             = 'ZKUTAS'
          it_list_commentary = gt_header[].
    endform.                    " top_of_page

    HI,
    if it is a normal report program then you can directly create a Selection screen field.
    After the Type-pool you can use Parameters or Select-options to create the selection screen field..
    If it is a Modulpool program then you can create a selection scren field like
    SELECTION-SCREEN BEGIN OF SCREEN 1100 AS SUBSCREEN.
    PARAMETERS: p1(10) TYPE c.
    SELECTION-SCREEN END OF SCREEN 1100.
    defines a selection screens – 1100 – as subscreens.
    The next screen number of screen 100 is 100 (statically-defined).
    PROCESS BEFORE OUTPUT.
      MODULE status_0100.
      CALL SUBSCREEN area INCLUDING sy-repid number.
    PROCESS AFTER INPUT.
      MODULE cancel AT EXIT-COMMAND.
      CALL SUBSCREEN area.
      MODULE user_command_0100.
    look at the below link
    http://help.sap.com/saphelp_nw2004s/helpdata/en/e7/deb237b9a9a968e10000009b38f8cf/content.htm
    Regards
    Sudheer

  • Validating field on  selection screen

    wht is the meaning of validation
    how to validate a particular field on selection screen
    suppose parameters:p_vkorg like vbak-vkorg.
    how to validate p_vkorg.
    pz give me coding

    Hello pavan,
    Validation means "checking whether the input which u are gining to the selection secreen is valid or not". means...
    Lets take your example only...
    parameters:p_vkorg like vbak-vkorg.
    in selection screen you will give inout in that parameter....
    users can give any input... lets suppose I'll give input as ABC... which is not in the table VBAK. No need to excute the code once we came to know that the input is not there in the table. So we will do validation like...
    at selection-screen on p_vkorg.
    select * from vbak where vkorg = p+vkorg. " This is the case with Parameter.
    at selection-screen on p_vkorg.
    Select * from vbak where vkorg = p+vkorg. " This is the case with Selct-option.
    if the input that u r giving is present in the table... the above stmt will execute successfully, otherwise not.
    You can make use of System variable SY-SUBRC and you can go ahead with ur coding...
    Reward If Helpful
    Regards
    Sasidhar Reddy Matli.
    Message was edited by:
            Sasidhar Reddy Matli

Maybe you are looking for