Selection screen invisible

Hi Experts,
In selection screen first i will give first matnr(Material Number).and press enter it need to check if it is there in database(marc table)  or not.
if it is in data base the below selection screen not to be displyed.
if it is there  the below selection screen  with Material Desc(maktx),sales text,Division. how can achive this requirement.thanks in advance.
Thanks,
Venkat.

Hi,
Consider parameter p_param as DIVISION NUMBER
If no material found from MARC, p_param is set to AE, else if material found p_param is cleared.
If p_param is other than AE or AC, then error message 'Invalid Division'
Refer:
PARAMETERS : p_matnr TYPE marc-matnr OBLIGATORY,
             p_maktx TYPE makt-maktx MODIF ID abc,
             p_param(10) TYPE c MODIF ID def.
DATA : v_matnr TYPE marc-matnr.
AT SELECTION-SCREEN OUTPUT.
  IF NOT p_matnr IS INITIAL.
    SELECT SINGLE matnr FROM marc INTO v_matnr WHERE matnr = p_matnr.
    IF sy-subrc <> 0.
      CLEAR p_maktx.
      CLEAR p_param.
      p_param = 'AE'.
      LOOP AT SCREEN.
        IF screen-group1 = 'ABC'.
          screen-invisible = 0.
          screen-active = 1.
          screen-input = 1.
          screen-required = 1.
        ENDIF.
        IF screen-group1 = 'DEF'.
          screen-invisible = 0.
          screen-active = 1.
          screen-input = 1.
          screen-required = 1.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    ELSE.
      SELECT SINGLE maktx FROM makt INTO p_maktx WHERE matnr = p_matnr.
      CLEAR p_param.
      LOOP AT SCREEN.
        IF screen-group1 = 'ABC'.
          screen-invisible = 0.
          screen-active = 1.
          screen-input = 1.
          screen-required = 0.
        ENDIF.
        IF screen-group1 = 'DEF'.
          screen-invisible = 0.
          screen-active = 1.
          screen-input = 1.
          screen-required = 0.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    ENDIF.
  ENDIF.
AT SELECTION-SCREEN.
  SELECT SINGLE matnr FROM marc INTO v_matnr WHERE matnr = p_matnr.
  IF sy-subrc <> 0.
    p_param = 'AE'.
  ENDIF.
  IF NOT ( p_param = 'AE' OR p_param = 'AC' ).
    MESSAGE 'Invalid Division' TYPE 'E'.
  ENDIF.
Hope this helps you.
Regards,
Tarun

Similar Messages

  • Selection-screen block disappearing

    Hi All ,
    Can any one tell me how can i make a block in the selection screen invisible . rt now i am using the below code for selection screen ,
    SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
    PARAMETERS: P_SALE RADIOBUTTON GROUP GRP DEFAULT 'X',
                P_BILL RADIOBUTTON GROUP GRP .
    SELECTION-SCREEN END OF BLOCK BLK1.
    SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.
    PARAMETERS MODIF ID SAL.
    SELECT-OPTIONS: S_vkorg for TVKO-VKORG obligatory MODIF ID SAL,
                    S_VTWEG for TVTW-VTWEG obligatory MODIF ID SAL,
                    S_SPART for TSPA-SPART obligatory MODIF ID SAL.
    SELECTION-SCREEN END OF BLOCK BLK2.
    SELECTION-SCREEN BEGIN OF BLOCK BLK3 WITH FRAME TITLE TEXT-003.
    SELECT-OPTIONS: S_vkorg1 for TVKO-VKORG obligatory MODIF ID BIL,
                    S_VTWEG1 for TVTW-VTWEG obligatory MODIF ID BIL,
                    S_SPART1 for TSPA-SPART obligatory MODIF ID BIL,
                    S_FKDAT for VBRK-FKDAT obligatory MODIF ID BIL.
    SELECTION-SCREEN END OF BLOCK BLK3.
    my requirement is , when i select the RB P_SALE the BLK3 have to be invisible and when i select the RB P_BILL BLK2 have to be invisible .
    Thanks & Regards ,
    Sabu.

    Hi,
    you have to do little modification to your selection scree.
    yse the following logic which i have used.
    *selection-screen begin of block blk11 with frame title text-002.
    *parameters : so_plant radiobutton group a USER-COMMAND fcod MODIF ID m1 DEFAULT 'X'.
    *parameters : so_ven   radiobutton group a MODIF ID m1 .
    *parameters : so_cust  radiobutton group a MODIF ID m1.
    *selection-screen end of block blk11.
    *at selection-screen OUTPUT .
    PERFORM chng_screen.
    *AT SELECTION-SCREEN.
    LOOP AT SCREEN.
       IF screen-group1 = 'M2'.
          IF screen-input NE '1'.
            v_flag = 'X'.
          ELSE.
            clear v_flag.
          ENDIF.
       ENDIF.
    endloop.
    *form chng_screen.
    *LOOP AT  SCREEN.
    if so_plant = 'X'.
      IF screen-group1 = 'M3'.
         screen-input = space.
         screen-active = 0.
         modify screen.
      ELSEIF  screen-group1 = 'M2'.
         screen-input = 1.
         screen-active = 1.
         modify screen.
      ELSEIF screen-group1 = 'M4'.
         screen-input = 1.
         screen-active = 0.
         modify screen.
       ENDIF.
    ELSEIF SO_VEN = 'X'.
      IF screen-group1 = 'M2'.
         screen-input = space.
         screen-active = 0.
         modify screen.
      elseif screen-group1 = 'M3'.
         screen-input = 1.
         screen-active = 1.
         modify screen.
      ELSEIF screen-group1 = 'M4'.
         screen-input = 1.
         screen-active = 0.
         modify screen.
       ENDIF.
    ELSEIF SO_CUST = 'X'.
       IF screen-group1 = 'M2'.
         screen-input = space.
         screen-active = 0.
         modify screen.
      ELSEIF screen-group1 = 'M3'.
         screen-input = 1.
        screen-active = 0.
         modify screen.
      ELSEIF screen-group1 = 'M4'.
         screen-input = 1.
        screen-active = 1.
         modify screen.
       ENDIF.
    ENDIF.
    *ENDLOOP.
    *endform.

  • SELECTION SCREEN REQ

    how to keep a field in selection screen invisible for ever.
    kindly send me the code.

    Hi,
    do like this.
    parameters : p_field.
    At selection-screen output.
    Loop at screen.
    If screen-name = p_field.
        screen-active = 0.
    endif.
    modify screen.
    endloop.
    reward points if helpful.
    Regards
    Sandeep Reddy
    Edited by: Sandeep Reddy on May 16, 2008 6:30 PM

  • Problems in at selection-screen output - setting pushbutton invisible

    Hello,
    I hope I can get some help here
    I have a problem with setting a pushbutton invisible
    i have a field (long-text) in my screen - and behind this a pushbutton for calling the editor
    if in a variant the parameters field is set invisible i also want to set the pushbutton invisible
    i have no idea why in the at selection-screen output event screen-invisible is always 0 - but in the variant the field is set invisible.
    i need to know if the parameters field is invisible to set the pushbutton the same
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(31) S_TXB_L1.
    PARAMETERS S_TXT_L1 TYPE ZHR_FC_STRING.
    SELECTION-SCREEN PUSHBUTTON 79(15) P_LTX_1 USER-COMMAND YLTXT1.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(31) S_TXB_L2.
    PARAMETERS S_TXT_L2 TYPE ZHR_FC_STRING.
    SELECTION-SCREEN PUSHBUTTON 79(15) P_LTX_2 USER-COMMAND YLTXT2.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(31) S_TXB_L3.
    PARAMETERS S_TXT_L3 TYPE ZHR_FC_STRING.
    SELECTION-SCREEN PUSHBUTTON 79(15) P_LTX_3 USER-COMMAND YLTXT3.
    SELECTION-SCREEN END OF LINE.
    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
        IF SCREEN-NAME(7) = 'S_TXT_L'.
          MERK_INVISIBLE = SCREEN-INVISIBLE.
        ENDIF.
        IF SCREEN-NAME(6) = 'P_LTX_'.
         SCREEN-INVISIBLE = MERK_INVISIBLE.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    Thanks very much...
    Helmut

    I agree - there seems to be some confusion here. In the variant the field can only be "hidden" while in the code it is possible to make the field completely invisible. 'Hiding' the field in the variant merely hides it by default and adds a 'plus' button to the toolbar, by clicking which the hidden elements can be exposed.
    As far as changing the screen fields goes, I find it usefull to use MODIF ID. Perhaps this blog could be helpful:
    http://friendlyabaper.blogspot.com/2009/07/my-super-awesome-selection-screen.html
    P.S. Please use the code tags for the code, per Forum Rules.

  • To create a variant for a selection screen having invisible fields

    Hello All
    I am facing a peculiar problem. I have a screen for the program RSEIDOCB in which the following fields are hidden:
                    TAOUTPR FOR EDIDC-STATUS NO-DISPLAY,
                    STAINPR  FOR EDIDC-STATUS NO-DISPLAY,
                    STAOUTRS FOR EDIDC-STATUS NO-DISPLAY,
                    STAINTA  FOR EDIDC-STATUS NO-DISPLAY,
                    STAOUTES FOR EDIDC-STATUS NO-DISPLAY,
                    STAINTD  FOR EDIDC-STATUS NO-DISPLAY,
                    STAOUTST FOR EDIDC-STATUS NO-DISPLAY,
                    STAOUTDT FOR EDIDC-STATUS NO-DISPLAY,
                    STAINBK  FOR EDIDC-STATUS NO-DISPLAY,
                    STAOUTEI FOR EDIDC-STATUS NO-DISPLAY,
                    STAINEI  FOR EDIDC-STATUS NO-DISPLAY,
                    STAOUTEX FOR EDIDC-STATUS NO-DISPLAY,
                    STAINEA  FOR EDIDC-STATUS NO-DISPLAY,
                    STAOUTDS FOR EDIDC-STATUS NO-DISPLAY,
                    STAINDS  FOR EDIDC-STATUS NO-DISPLAY.
    I want to create a variant for the above program having values for the fields. These fields are basically for specifying the various status of the idocs. I am unable to do to so at the moment. Please help me out. Suitable points will be provided.
    Regards
    Ankit

    Hi Ankit
    Follow these steps..
    1. in SE38 enter Program name 'RSEIDOCB'.
    2. Click on variants button
    3. enter variant name click on create
    4. in selection screen enter default values
    5. Click on attributes
    4. Enter meaning
    5. Press Shft + F4
    6. Bottom of Screen will popup invisible fields
    7. go down to screen
    8. select field and click on selection variables button
       (you to have to tick selection variable check box)
    9. here click on down arrow button very next to field
    10.you can choose values from list and assign to field.
    then save variant.
    Message was edited by:
            Perez C

  • Selection screen parameters invisible

    Hi,
    Do you know if it's possible to hide the value enter in a parameter into a selection screen.
    For example, if I want a password and I want the output display only '*****' .. like the SU01. But ! I don't speak about dynpro, just a simple selection-screen.
    Thanks
    Fred

    Hello Frederic,
    PARAMETERS
      pa_test.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        CASE screen-name.
          WHEN 'PA_TEST'.
            screen-invisible = '1'.
            MODIFY SCREEN.
        ENDCASE.
      ENDLOOP.
    Regards,
    John.

  • How to make the Selection Screen fields Invisible..?

    Hi All,
    I have a selection screen in which I have 2 Radio Buttons and 2 Blocks(with input fields).
    The requirement is when the Radiobutton1 is selected, it should display the BLOCK1 and the BLOCK2 should be Invisible. The same way, when the Radiobutton2 is selected, it should display the BLOCK2 and the BLOCK1 should be Invisible.
    Could someone help me how to do this. Please share your valuable inputs. If anyone has some sample code, that would be greatful.
    Thanks in advance.
    Thanks & Regards,
    Paddu.

    Please search the forum. This question has been asked and answered many times before.
    Rob

  • Invisible Selection Screen(Low and High) accordingly through radio-button

    Dear Experts,
                         Currently I've faced some problem regarding selection-screen.Our user want that when he click P1(say) radio-button, then selection-screen "s1-high " is invisible and when he click P2(say) radio-button that time "s1-low" is invisible.
                         So can anybody tell me the how can i do it?
    warm regards,
    sameek mazumder.

    Hi Sameek,
    If user clicks radio button P2 then how can s1-low become invisible? Do you mean when radio button P2 is clicked program will not display the select option at all?Since If s1-low becomes invisible there is no point of s1-high in the display. Please clarify your requirement.
    However, I think that if it can be something like if radio button 1 is pressed s1-low is visible. If radio button 2 is pressed normal select option is displayed. Please check the following code to achieve this:
    DATA: gv_matnr TYPE matnr.
    PARAMETERS : p_rb1 RADIOBUTTON GROUP g1 USER-COMMAND radio,
                 p_rb2 RADIOBUTTON GROUP g1.
    SELECT-OPTIONS s_matnr FOR gv_matnr.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-name CS 'S_MATNR-HIGH'.
          CASE 'X'.
            WHEN p_rb1.
              screen-active = 0.
            WHEN p_rb2.
    *Do nothing
          ENDCASE.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    INITIALIZATION.
      LOOP AT SCREEN.
        IF screen-name CS 'S_MATNR-HIGH'.
          screen-active = 0.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    Hope this would help.
    BR,
    Atanu

  • Making one selection screen block invisible

    Hi,
    I want to make one selection-screen block invisible based on one check box value.I have built the screen as follows:
    PARAMETERS: pcheck1    TYPE char1  AS CHECKBOX.
    SELECTION-SCREEN  BEGIN OF BLOCK b2 WITH FRAME TITLE text-004.
    PARAMETERS: pproj    TYPE xxxx ,
                psproj   TYPE xxxx ,
                pobjec   TYPE xxxx .
    SELECTION-SCREEN  END OF BLOCK b2.
    based on the pcheck value I want to meke the above "SELECTION-SCREEN  BEGIN OF BLOCK b2 " invisible/visible.Can you please tell me how to do it?

    You need to set values in structure SCREEN:
    screen-invisible = '1' .
    screen-input = '0' .
    screen-output = '0' .
    for all items contained in block.
    For example:
    AT SELECTION-SCREEN OUTPUT.
      IF <condition>.
        LOOP AT SCREEN.
          CASE screen-name.
            WHEN <block_name> OR
                       <parameter1> or <parameter1_text> or
                       <parameter_N> or <parameter_N_text> .
              screen-invisible = 1.
              screen-input      = 0.
              screen-output    = 0.
            WHEN OTHERS.
          ENDCASE.
          MODIFY SCREEN.
        ENDLOOP.
    You can find names of variables which contain parameter texts using debuger.
      ELSEIF sy-tcode = 'ZEUA_EDB_EXPORT'.
        p_path = 'ZUA_EDB_EXPORT'.
      ENDIF.

  • Change selection screen in LDB (KDF logical database - NOT HR)

    Hi All,
    Iu2019d like to use KDF logical database to keep the dynamic selections since user wants to use it but I need to change the selection screen itself. The existing variants for KDF donu2019t meet the user requirements. Some fields I need to hide some add. Like I want to u201Cremoveu201D the field u2018Posting periodu2019 (MONAT) (which is available in dynamic selection screen) and put it on the u201Cmainu201D selection screen.
    Do I need to create my own logical database or there is a way around?
    Could someone give me a practical advice or sample of solution?
    Thanks a lot.

    Thanks Himanshu,
    I did as you suggested but problem is that it does not allow me to hide the whole block.
    I have 3 filelds actually on block KD_0 I need to hide (its from selection screen of KDF logical database.)
      SELECT-OPTIONS: KD_LIFNR FOR LFA1-LIFNR MATCHCODE OBJECT KRED.
      SELECT-OPTIONS: KD_BUKRS    FOR  LFB1-BUKRS.
    SELECTION-SCREEN END OF BLOCK KD_0.
    PARAMETERS KD_INDEX AS SEARCH PATTERN FOR TABLE LFA1.
    What I did is below.  I used sp instead of  u201C=u201D since it has many screen for field KD_LIFNR(for frame, text etc).
    And when I did just for KD_LIFNR it was hidden but when I did the same for KD_BUKRS it was not hidden . The field has stars u201C*********u201D in it.
    Same happen with KD_INDEX. The name of the field is hidden but field not and it filled with ********. Do you have any ideas what it can be?
    I debugged it to catch all screen names but no luck
      loop at screen.
        if screen-name cp 'KD_LIFNR' or
        screen-name cp 'KD_BUKRS' or
        screen-name cp 'KD_INDEX' or
        screen-name = '%B000003_BLOCK_1000' or       
        screen-name = 'SSCRTEXTS-FRAME_TEXT' or
        screen-name = 'SSCRTEXTS-MCID_TEXT' or
        screen-name = 'SSCRTEXTS-STRNG_TEXT' or
        screen-name = 'SSCRFIELDS-SEARCH_BTN' or
        screen-name =  '%B025008_BLOCK_1000' or
        screen-name =  '%F021010_1000' or
        screen-name =  'ALCUR' or
        screen-name =  '%F022012_1000' or
        screen-name =  'EXCDT' or
        screen-name = 'SSCRFIELDS-UCOMM'.
          screen-invisible = '1'.
          modify screen.
        endif.
      endloop.

  • Need help to disable input selection-screen - very urgent

    Hi SAP experts,
    I have a requirement where in I need to disable ( Grey out ) the input fileds on the selection screen .
    My problem is as I am using ABAP query I am not able to use any events ( AT SELECTION-SCREEN OUTPUT ).
    My selection screen looks like this
    MATERIAL NUMBER ( SELECT-OPTIONS)
    MATERIAL TYPE ( PARAMETERS )
    Now I want to add one more check box below the above fields on the selection-screen.When I click on the check-box,the MATERIAL NUMBER  must be greyed out and MATERIAL TYPE should remain the same.
    Please let me know the coding for the same. All answers would be rewarded.
    Thanks in Advance,
    Suresh.

    Hi,
    Check out these codes.
    1.
    TABLES : mara, makt.
    parameter: p_matnr type mara-matnr,
               p_maktx type makt-maktx.
    at selection-screen output.
    select single maktx
    from makt
    into p_maktx
    where matnr = p_matnr
    and spras = 'EN'.
    loop at screen.
      if screen-name = 'P_MAKTX'.
        screen-input = 0.
        modify screen.
      endif.
    endloop.
    2.
    TABLES : mara, makt.
    TYPES:BEGIN OF tp_maktx,
          maktx TYPE makt-maktx,
          END OF tp_maktx.
    DATA:t_maktx TYPE STANDARD TABLE OF tp_maktx,
         wa_maktx TYPE tp_maktx.
    SELECT-OPTIONS: s_matnr FOR mara-matnr.
    SELECT-OPTIONS: s_maktx FOR makt-maktx.
    INITIALIZATION.
      REFRESH s_maktx[].
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-name = 'S_MAKTX-LOW' or screen-name = 'S_MAKTX-HIGH'.
          screen-input = 0.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
      REFRESH s_maktx[].
      if s_matnr[] is not initial.
      SELECT maktx FROM makt
      INTO TABLE t_maktx
      WHERE matnr IN s_matnr
      AND spras = 'EN'.
      endif.
      LOOP AT t_maktx INTO wa_maktx.
        s_maktx-low = wa_maktx-maktx.
        APPEND s_maktx.
        CLEAR:wa_maktx.
      ENDLOOP.
    3.
    TABLES : mara, makt.
    parameter p_cb1 type c as checkbox.
    parameter p_cb2 type c as checkbox.
    parameter p_cb3 type c as checkbox.
    initialization.
    loop at screen.
    if screen-name = 'P_CB3'.
    screen-invisible = 1.
    modify screen.
    endif.
    endloop.
    at selection-screen output.
    *loop at screen.
    *if screen-name = 'P_CB3'.
    *screen-invisible = 1.
    *modify screen.
    *endif.
    *endloop.
    loop at screen.
    if p_cb1 = 'X'.
      if screen-name = 'P_CB2'.
      screen-invisible = 1.
      modify screen.
      endif.
      if screen-name = 'P_CB3'.
      screen-invisible = 0.
      modify screen.
      endif.
    endif.
    if p_cb2 = 'X'.
      if screen-name = 'P_CB3'.
      screen-invisible = 1.
      modify screen.
      endif.
      if screen-name = 'P_CB1'.
      screen-invisible = 0.
      modify screen.
      endif.
    endif.
    if p_cb3 = 'X'.
      if screen-name = 'P_CB1'.
      screen-invisible = 1.
      modify screen.
      endif.
      if screen-name = 'P_CB2'.
      screen-invisible = 0.
      modify screen.
      endif.
    endif.
    endloop.
    Reward if helpful..
    Regards.

  • 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

  • Hiding fields in Report Selection Screen which have Mandatory Fields

    Hi Friends,
    I have 2 Radio Buttons. PO and SO. If PO is selected, user need to input the Plant value in the Sel.Scrn which is mandatory and Storage Location field will be invisible.
    If SO is selected, then user need to input the Plant and Storage Location value which are mandatory. Now Storage Location will be visible.
    When radio button SO is seleted, SAP triggers an error message as 'Make an entry in all required fields' without displaying Storage Location input field in Sele. Scrn.
    How to do this.?  I checked in SCN and not find perfect match to solve for Mandatory Input Fields.
    Regards,
    Suresh

    Hi,
    Yes. What Rob has told is correct. Try like this.
    AT SELECTION-SCREEN.
    IF po_po EQ 'X'.
    IF so_werks[] IS INITIAL.
    MESSAGE 'Please enter plant' TYPE 'E'.
    ENDIF.
    ELSE.
    IF so_lgort[] IS INITIAL.
    MESSAGE 'Please enter storage location' TYPE 'E'.
    ENDIF.
    IF so_werks[] IS INITIAL.
    MESSAGE 'Please enter plant' TYPE 'E'.
    ENDIF.
    ENDIF.
    Thanks,
    Vinod.

  • Problem while hide a block on selection screen on button press

    Hi,
    I have added two buttons on the application toolbar of the selection screen. I have input fields under two blocks on the selection-screen. Initially the second block is hidden. If I press the button 1 the second block should be made visible.
    For this to happen, I captured the button 1 click event using the following statement.
    IF sscrfields-ucomm = 'FC01'.
    Inside the if ... endif, I looped at the screen and made the second block visible. It was working fine.
    loop at screen.
      if screen-group4 = '013'.
         screen-invisible = 1.
         screen-active    = 0.
      endif.
    endloop.
    Later the second button was added. Now when i run the report for the first time, if button 2 is clicked the hidden block appears on the selection screen even though i have not added any code for it.
    Just to check, i commented the logic to display the hidden block on button 1 click event. Even without any code the first time i press any of the two buttons added on the application toolbar the hidden block is displayed.
    I saved a variant for the report.
    During execution of the report, if i select any variant then the hidden block is displayed.
    Can anyone please tell me how to fix this problem.
    Regards,
    T2.

    Hi All,
    The problem is solved.
    Everyone was confusing between the pushbutton on the selectio-screen and on apllication toolbar
    (where you have the execute icon).
    Please find the code below. Thanks for you time and help. I appreciate it.
    REPORT ztest.
    INCLUDE <icon>.
    *  TABLES                                                              *
    TABLES: t001,              " Company Codes
            lfa1,              " Vendor Master (General Section)
            sscrfields.        " Fields on selection screens
    * To capture button press event.
    DATA: gv_button_press       TYPE c.
    * Menu Painter: Program interface for dynamic texts
    DATA: gs_dyntxt             TYPE smp_dyntxt.
    *  SELECTION SCREEN                                                    *
    SELECTION-SCREEN FUNCTION KEY 1.
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-s01.
    * Company Code.
    SELECTION-SCREEN BEGIN OF BLOCK ccode WITH FRAME TITLE text-s02.
    SELECT-OPTIONS: s_bukrs FOR t001-bukrs OBLIGATORY MEMORY ID buk.
    SELECTION-SCREEN END OF BLOCK ccode.
    SELECTION-SCREEN END OF BLOCK blk1.
    SELECTION-SCREEN BEGIN OF BLOCK dsel WITH FRAME TITLE text-s04.
    * Vendor Master.
    SELECTION-SCREEN BEGIN OF BLOCK vend WITH FRAME TITLE text-s07.
    SELECT-OPTIONS: s_konzs FOR lfa1-konzs MODIF ID aw1.
    SELECT-OPTIONS: s_txcd1 FOR lfa1-stcd1 MODIF ID aw1.
    SELECT-OPTIONS: s_txcd2 FOR lfa1-stcd2 MODIF ID aw1.
    SELECTION-SCREEN END OF BLOCK vend.
    SELECTION-SCREEN END OF BLOCK dsel.
    * INITIALIZATION                                                       *
    INITIALIZATION.
    * Populate the Application toolbar button attributes.
      PERFORM populate_app_toolbar_buttons.
    * Hide the dynamic screen intially.
      PERFORM hide_screenfields.
    * AT SELECTION SCREEN                                                  *
    AT SELECTION-SCREEN.
    * Capture the button press event.
      PERFORM capture_button_press.
    * AT SELECTION-SCREEN OUTPUT.                                          *
    AT SELECTION-SCREEN OUTPUT.
    * Show/Hide the dynamic selection screen based on button press.
      PERFORM adapt_screen.
    *&  Form  populate_app_toolbar_buttons                                 *
    *   Display Icon on the application toolbar buttons. Also set the      *
    *   function codes for these buttons.                                  *
    FORM populate_app_toolbar_buttons.
      CLEAR gs_dyntxt.
      WRITE icon_fencing     TO gs_dyntxt-icon_id AS ICON.
      MOVE  text-b01         TO gs_dyntxt-quickinfo.   " Dynamic Selections
      MOVE gs_dyntxt         TO sscrfields-functxt_01.
    ENDFORM.                    " populate_app_toolbar_buttons
    *&  Form  hide_screenfields                                            *
    *   Initially hide the Dynamic selection screen.                       *
    FORM hide_screenfields.
      LOOP AT SCREEN.
        IF screen-group1 = 'AW1'.
          screen-invisible = '1'.
          screen-active    = '0'.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    ENDFORM.                    " hide_screenfields
    *&  Form  capture_button_press                                         *
    *   Set the flag based on button press event. Appication bar button    *
    *   tcode is available only at 'At Selection-screen' event.            *
    *   Use the captured data at 'At Selection-screen Output' event.       *
    *   Screen adjustments is possible only under this event.              *
    FORM capture_button_press.
      IF sscrfields-ucomm = 'FC01'.
        IF gv_button_press IS INITIAL.
          gv_button_press = 'X'.
        ELSEIF gv_button_press EQ 'X'.
          CLEAR gv_button_press.
        ENDIF.
      ENDIF.
    ENDFORM.                    " capture_button_press
    *&  Form  adapt_screen                                                 *
    *   Show/Hide the dynamic selection screen based on button press       *
    *   captured at 'At selection-screen' event.                           *
    FORM adapt_screen.
    * If button press flag is initial hide the dynamic selection screen.
      IF gv_button_press IS INITIAL.
        LOOP AT SCREEN.
          IF screen-group1 = 'AW1'.
            screen-invisible = '1'.
            screen-active    = '0'.
          ENDIF.
          MODIFY SCREEN.
        ENDLOOP.
    * Elseif button press flag is 'X' show the dynamic selection screen.
      ELSEIF gv_button_press EQ 'X'.
        LOOP AT SCREEN.
          IF screen-group1 = 'AW1'.
            screen-invisible = '0'.
            screen-active    = '1'.
          ENDIF.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " adapt_screen
    Regards,
    T2
    Message was edited by: Titu Joseph

  • Selection screen changes at selection screen output

    Hi all,
    I have to make my one block in selection scren invisible based on a particular condition.
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:  s_status FOR g_status NO INTERVALS.
    PARAMETERS    :  p_trans(3) TYPE c,
                     p_hub(3) TYPE c.
    SELECT-OPTIONS:  s_auart  FOR g_auart.
    PARAMETERS:      p_buyt(1) TYPE c.
    SELECT-OPTIONS:
                     s_order  FOR g_vbeln,
                     s_zzhrt  FOR g_zzhrtosec,
                     s_vbeln1 FOR g_vbeln1,
                     s_dccode FOR g_dccode NO INTERVALS,
                     s_pgi   FOR g_pgi.
    SELECTION-SCREEN END OF BLOCK blk1.
    SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
    PARAMETERS    : p_c1 AS CHECKBOX USER-COMMAND cmd.
    SELECT-OPTIONS: s_list FOR g_list NO INTERVALS MODIF ID sc1.
    SELECTION-SCREEN END OF BLOCK blk2 .
    SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.
    PARAMETERS    :  p_c2 AS CHECKBOX USER-COMMAND cmd2.
    SELECT-OPTIONS:  s_mail FOR g_mail NO INTERVALS MODIF ID sc2.
    PARAMETERS:   p_accld LIKE g_saknr DEFAULT '1342009999' MODIF ID sc2
                                                          OBLIGATORY,
                  p_accit LIKE g_saknr DEFAULT '1365009999' MODIF ID sc2
                                                          OBLIGATORY,
                  p_opacc LIKE g_saknr DEFAULT '346100XX99' MODIF ID sc2
                                                          OBLIGATORY,
                  p_lmacc LIKE g_saknr DEFAULT '1393009999' MODIF ID sc2
                                                          OBLIGATORY,
                  p_lmopa LIKE g_saknr DEFAULT '3471009999' MODIF ID sc2
                                                          OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK blk3.
    The block 3 'blk3' should be made invisible based on a condition.
    I have tried loop at screen-name but its not working.
    Kindly advice.
    Thanks and Regards,
    Divya

    Hi Divya,
    Check the below code.
    tables: pa0000, pa0001.
    parameters: p_chk1 as checkbox user-command rusr,
    p_chk2 as checkbox user-command rusr,
    p_chk3 as checkbox user-command rusr,
    p_chk4 as checkbox user-command rusr,
    p_chk5 as checkbox user-command rusr.
    selection-screen: begin of block blk1 with frame.
    select-options: s_pernr for pa0000-pernr modif id ABC,
    s_stat2 for pa0000-stat2 modif id DEF,
    s_werks for pa0001-werks modif id GHI,
    s_persg for pa0001-persg modif id JKL,
    s_persk for pa0001-persk modif id MNO.
    selection-screen: end of block blk1.
    AT SELECTION-SCREEN output.
    LOOP AT SCREEN.
    IF SCREEN-GROUP1 = 'ABC'.
    IF p_chk1 = 'X'.
    SCREEN-ACTIVE = 1.
    ELSE.
    SCREEN-ACTIVE = 0.
    ENDIF.
    MODIFY SCREEN.
    ENDIF.
    IF SCREEN-GROUP1 = 'DEF'.
    IF p_chk2 = 'X'.
    SCREEN-ACTIVE = 1.
    ELSE.
    SCREEN-ACTIVE = 0.
    ENDIF.
    MODIFY SCREEN.
    ENDIF.
    IF SCREEN-GROUP1 = 'GHI'.
    IF p_chk3 = 'X'.
    SCREEN-ACTIVE = 1.
    ELSE.
    SCREEN-ACTIVE = 0.
    ENDIF.
    MODIFY SCREEN.
    ENDIF.
    IF SCREEN-GROUP1 = 'JKL'.
    IF p_chk4 = 'X'.
    SCREEN-ACTIVE = 1.
    ELSE.
    SCREEN-ACTIVE = 0.
    ENDIF.
    MODIFY SCREEN.
    ENDIF.
    IF SCREEN-GROUP1 = 'MNO'.
    IF p_chk5 = 'X'.
    SCREEN-ACTIVE = 1.
    ELSE.
    SCREEN-ACTIVE = 0.
    ENDIF.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    *Note
    *Titles for check boxes and select options
    *P_CHK1 Personal Number
    *P_CHK2 Employment Status
    *P_CHK3 Personnel Area
    *P_CHK4 Employee Group
    *P_CHK5 Employee Sub group
    *S_PERNR Personal Number
    *S_PERSG Employee Group
    *S_PERSK Employee Sub group
    *S_STAT2 Employment Status
    *S_WERKS Personnel Area

Maybe you are looking for

  • No longer getting internet over E2500

    My E2500 was working great for the past 3 months, and now it seems to be broken since I cannot access the internet anymore. I can connect to the router via wireless or wired at 192.168.1.1 and play with all the settings. On the status page, I have en

  • Knowing System Processes using Java

    I am trying to write a program which will list all the processing running in the operating system. With native RunTime class it is not possible. What is the API to be used? I also want to know the number of JVMS running on the Operating System. Can a

  • Help! lost my research thesis ! not in folder i closed after writing!!??? how to find this???

    mac book pro how to recover document?

  • What does Java do with the input file?

    Hello everyone -- I have a freaky Java problem. I'm running a program that takes an input file, reads it one line at a time, and determines whether the info I'm looking for is contained in it or not. For each line it reads, it decides if that line is

  • ITunes 7.7 Won't Install/Error message

    Every time I attempt to upgrade I get this error message after the download finishes: "Errors occurred when installing the updates. If there problem persists update manually" So is there a way to fix this or how do I upgrade manually?