Problem in FM DYNP_VALUES_UPDATE

Here is my COde:
report ZTEST_POOL.
tables : d020s,mara.
  data: begin of dynpfields occurs 0.
          include structure dynpread.
  data: end of dynpfields.
  selection-screen : begin of block b1 with frame title text-011.
   select-options: p_list for mara-matnr.
selection-screen: end of block b1.
   dynpfields-fieldname = 'P_LIST-LOW'.
   dynpfields-fieldvalue = 'MATERIAL1'.
  append dynpfields.
dynpfields-fieldname = 'P_LIST-HIGH'.
  dynpfields-fieldvalue = 'MATERIAL2'.
  append dynpfields.
  call function 'DYNP_VALUES_UPDATE'
       exporting
             dyname     = sy-cprog
             dynumb     = sy-dynnr
       tables
             dynpfields = dynpfields
       exceptions
             invalid_abapworkarea = 01
             invalid_dynprofield  = 02
             invalid_dynproname   = 03
             invalid_dynpronummer = 04
             invalid_request      = 05
             no_fielddescription  = 06
             undefind_error       = 07.
Wheni Execute this... My screen Fields P_LIST-LOW and P_LIST-HIGH are not updating.
they are still empty.
plz let me know whats wrong in my code.

Clemens Li wrote:
Usually we use PBO (in  report: AT SELECTIO-SCREEN OUTPUT) or PAI (in  report: AT SELECTIO-SCREEN) to change values of screen fields.
here is my code after making some changes..
now i m calling this FM at This event.
*at selection-screen output.*
   dynpfields-fieldname = 'P_LIST-LOW'.
   dynpfields-fieldvalue = 'MATERIAL1'.
  append dynpfields.
dynpfields-fieldname = 'P_LIST-HIGH'.
  dynpfields-fieldvalue = 'MATERIAL2'.
  append dynpfields.
  call function 'DYNP_VALUES_UPDATE'
       exporting
             dyname     = sy-cprog
             dynumb     = sy-dynnr
       tables
             dynpfields = dynpfields
       exceptions
             invalid_abapworkarea = 01
             invalid_dynprofield  = 02
             invalid_dynproname   = 03
             invalid_dynpronummer = 04
             invalid_request      = 05
             no_fielddescription  = 06
             undefind_error       = 07.
Still i m not getting my fields P_LIST-LOW and P_LIST-HIGH  with values.
Cant we use this FM other than this event:
at selection screen on value request for p_list-low.
Event INITIALIZATION is the point where you pre-set default values of screen fields.
thnks for this New information.
Also i can set their default values like this
select-options: p_list for mara-matnr default 'MATERIAL1' .

Similar Messages

  • Problem with FM "DYNP_VALUES_UPDATE"

    Hi gurus
         I am using a table control containg 2 columns. I have used a f4 help in the first column by the fm "F4IF_INT_TABLE_VALUE_REQUEST" . And the corresponding second column i am displaying a value for which i have used the fm "DYNP_VALUES_UPDATE" . It's working fine but after the values upadted in the second column , the value in the first column vanishes.It becomes balnk .
    so please help me . thanks in advance .
    regards
    Amarendra

    HI,
    Check this Code ..
    PARAMETES : p_werks type ...
    PARAMETES : p_plnnr type ....
    PARAMETES : p_plnal type....
    AT SELECTION-SCREEN ON P_PLNNR.
      data:
        lg_condition    type string.
      data:
         lwa_ddshretval type ddshretval,
         lwa_dselc      type dselc,
         lwa_dynpread   type dynpread.
      data:
         li_f4_insp     type standard table of t_f4_insp,
         li_ddshretval  type standard table of ddshretval,
         li_dselc       type standard table of dselc,
         li_dynpread    type standard table of dynpread.
      lwa_dynpread-fieldname = 'P_WERKS'.
      append lwa_dynpread to li_dynpread.
      clear lwa_dynpread.
    * Read Screen Field Values.
      call function 'DYNP_VALUES_READ'
        exporting
          dyname     = sy-repid
          dynumb     = sy-dynnr
        tables
          dynpfields = li_dynpread.
    * Read the first record as only one record will be present
      read table li_dynpread into lwa_dynpread index 1.
      p_werks = lwa_dynpread-fieldvalue.
      if p_werks is initial.
        move 'PLNTY EQ ''Q''' to lg_condition.
      else.
        move 'WERKS EQ P_WERKS AND PLNTY EQ ''Q''' to lg_condition.
      endif.
    * Fetch Data
      select werks
             plnnr
             plnal
             plnty
             ktext
        into table li_f4_insp
        from plko
        where (lg_condition).
      lwa_dselc-fldname = 'F0002'.
      lwa_dselc-dyfldname = 'PLNNR'.
      append lwa_dselc to li_dselc.
      clear lwa_dselc.
      lwa_dselc-fldname = 'F0003'.
      lwa_dselc-dyfldname = 'PLNAL'.
      append lwa_dselc to li_dselc.
      clear lwa_dselc.
    * FM For F4 Help
      call function 'F4IF_INT_TABLE_VALUE_REQUEST'
        exporting
          retfield        = 'PLNNR'
          dynpprog        = sy-cprog
          dynpnr          = sy-dynnr
          dynprofield     = 'PLNNR'
          value_org       = 'S'
        tables
          value_tab       = li_f4_insp
          return_tab      = li_ddshretval
          dynpfld_mapping = li_dselc
        exceptions
          parameter_error = 1
          no_values_found = 2
          others          = 3.
      if sy-subrc eq 0.
        refresh li_dynpread.
        read table li_ddshretval into lwa_ddshretval index 1.
        if sy-subrc eq 0.
          move lwa_ddshretval-fieldval to p_plnnr.
          lwa_dynpread-fieldname = 'P_PLNNR'.
          lwa_dynpread-fieldvalue = lwa_ddshretval-fieldval.
          append lwa_dynpread to li_dynpread.
          clear lwa_dynpread.
        endif.                             " IF sy-subrc EQ 0.
        read table li_ddshretval into lwa_ddshretval index 2.
        if sy-subrc eq 0.
          move lwa_ddshretval-fieldval to p_plnal.
          lwa_dynpread-fieldname = 'P_PLNAL'.
          lwa_dynpread-fieldvalue = lwa_ddshretval-fieldval.
          append lwa_dynpread to li_dynpread.
          clear lwa_dynpread.
        endif.                             " IF sy-subrc EQ 0.
      endif.                               " IF sy-subrc EQ 0.
    * Set Screen Field Values.
      call function 'DYNP_VALUES_UPDATE'
        exporting
          dyname               = sy-repid
          dynumb               = sy-dynnr
        tables
          dynpfields           = li_dynpread
        exceptions
          invalid_abapworkarea = 1
          invalid_dynprofield  = 2
          invalid_dynproname   = 3
          invalid_dynpronummer = 4
          invalid_request      = 5
          no_fielddescription  = 6
          undefind_error       = 7
          others               = 8.
      check sy-subrc eq 0.

  • DYNP_VALUES_UPDATE not Updating the Field on my Dynpro

    Hi.
    I want to create a dynpro where two fields are. Field 1 allows the user to enter a customer number, field two shall come up with a number that is calculated somehow. The calculation can last up to 20 seconds, so I dont want to make the user waite for this number.. .he shall be able to work with the rest of the dynpro.
    Therefore I called the function that does the calcuiation like that:
    MODULE user_command_0100 INPUT.
      DATA: lv_guid_16 TYPE guid_16.
      IF kna1-kunnr IS NOT INITIAL AND kna1-kunnr <> gv_kunnr
        CALL FUNCTION 'GUID_CREATE'
          IMPORTING
            ev_guid_16 = lv_guid_16.
        gv_taskid = lv_guid_16+8(8).
        CALL FUNCTION 'YDETERMINE_DEPOTDISTANCE' 
          STARTING NEW TASK gv_taskid
          PERFORMING receive_depent ON END OF TASK
          EXPORTING
            i_kunnr = kna1-kunnr.
      ENDIF.
    ENDMODULE. 
    The next piece of code shall get the returning value if the function wants to return its results.
    FORM receive_depent USING i_task TYPE clike.
      TABLES: d020s.
      DATA: dyname LIKE d020s-prog,
            dynumb LIKE d020s-dnum.
      DATA: BEGIN OF dynpfields OCCURS 1.
              INCLUDE STRUCTURE dynpread.
      DATA: END OF dynpfields.
      IF i_task = gv_taskid.
        RECEIVE RESULTS FROM FUNCTION 'YDETERMINE_DEPOTDISTANCE'
        IMPORTING
          e_depent         = kna1-yydepent
          e_accuracy       = gv_accuracy.
        MOVE 'KNA1-YYDEPENT' TO dynpfields-fieldname.
        MOVE kna1-yydepent TO dynpfields-fieldvalue.
        APPEND dynpfields.
        dyname = sy-cprog.
        dynumb = '0100'.
        CALL FUNCTION 'DYNP_VALUES_UPDATE'
          EXPORTING
            dyname               = dyname
            dynumb               = dynumb
          TABLES
            dynpfields           = dynpfields
          EXCEPTIONS
            invalid_abapworkarea = 01
            invalid_dynprofield  = 02
            invalid_dynproname   = 03
            invalid_dynpronummer = 04
            invalid_request      = 05
            no_fielddescription  = 06
            undefind_error       = 07.
        ASSERT sy-subrc = 0.
      ENDIF.
    Problem is: The DYNP_VALUES_UPDATE does not update the field on my dynpro at all. If I hit enter another time, then the field is provided by the value as another PBO will be processed. What is my mistake here?
    Regards
    Manfred
    Edited by: Rob Burbank on Oct 29, 2010 12:07 PM

    Hi Manfred,
    Replace all the DYNP_VALUES_UPDATE-related content by the following statement:
    SET USER-COMMAND 'xxx'.
    While DYNP_VALUES_UPDATE does update the fields, a roundtrip is not triggered so the content of the fields will not be refreshed. The SET USER-COMMAND does that.
    Hope this helps you!
    Cheers, Roel

  • Problems with FM F4IF_INT_TABLE_VALUE_REQUEST and DYNP_VALUES_UPDATE

    Hi gurus,
    Im making a search help using FM F4IF_INT_TABLE_VALUE_REQUEST with multiple choice and it's working fine, my problem it's passing the values choosed from this FM to the screen...
    I've declare a select option, and what i want it's to pass the choosen values from the search help to the screen but it's not working fine... i already tried the FM DYNP_VALUES_UPDATE to update the screen field but still yhe same...
    Below goes my code, just in case...
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
           EXPORTING
                retfield        = 'ZLINHA'
                dynpprog        = sy-repid
                dynpnr          = sy-dynnr
                dynprofield     = 'SO_NUM'
                window_title    = 'Programa'
                value_org       = 'S'
                multiple_choice = 'X'
           TABLES
                value_tab       = it_values
                return_tab      = return_tab.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        LOOP AT return_tab.
    *      CLEAR r_num.
          so_num-option = 'EQ'.
          so_num-sign = 'I'.
          MOVE 'SO_NUM' TO dynpfields-fieldname.
          MOVE return_tab-fieldval TO dynpfields-fieldvalue.
          APPEND dynpfields.
    *      so_num-low = return_tab-fieldval.
    *      APPEND so_num.
        ENDLOOP.
      ENDIF.
      CLEAR dynpfields.
      CALL FUNCTION 'DYNP_VALUES_UPDATE'
           EXPORTING
                dyname     = progname
                dynumb     = dynnum
           TABLES
                dynpfields = dynpfields.
      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 anyone has any idea, feel free to speak
    Thanks in advance,
    Best Regards

    Hi Martins,
    You have used the select options that means you have to use the function module for the <select-option >-low and <select-option>-high.
    I am giving you a code snippet in which the selection screen has select-options and with the help of function module it shows F4 help and pass the values.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-023.
    SELECT-OPTIONS:S_PIDNUM FOR ZMST_PERMIT-ZPIDNUM ,
                   S_ENGDSC FOR ZMST_PERMIT-ZENGDSC NO INTERVALS LOWER CASE,
                   S_ARBDSC FOR ZMST_PERMIT-ZARBDSC NO INTERVALS LOWER CASE,
                   S_TARIFF FOR ZMST_PERMIT-ZTARIFF NO INTERVALS,
                   S_PERNUM FOR ZMST_PERMIT-ZPERNUM NO INTERVALS,
                   S_ARRPRT FOR ZMST_PERMIT-ZARRPRT NO INTERVALS MATCHCODE OBJECT ZMST_PORTS.
    PARAMETER:P_PERTYP(2) TYPE C AS LISTBOX VISIBLE LENGTH 20.
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PIDNUM-LOW.
      W_NAME2 = 'S_PIDNUM-LOW'.
      W_NAME1 = 'ZPIDNUM'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PIDNUM-HIGH.
      W_NAME2 = 'S_PIDNUM-HIGH'.
      W_NAME1 = 'ZPIDNUM'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ENGDSC-LOW.
      W_NAME2 = 'S_ENGDSC'.
      W_NAME1 = 'ZENGDSC'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ARBDSC-LOW.
      W_NAME2 = 'S_ARBDSC'.
      W_NAME1 = 'ZARBDSC'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_TARIFF-LOW.
      W_NAME2 = 'S_TARIFF'.
      W_NAME1 = 'ZTARIFF'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PERNUM-LOW.
      W_NAME2 = 'S_PERNUM'.
      W_NAME1 = 'ZPERNUM'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    *&      Form  F4_HELP
          text
    -->  p1        text
    <--  p2        text
    FORM F4_HELP USING: W_VAR TYPE DFIES-FIELDNAME
                        W_VAR1 TYPE HELP_INFO-DYNPROFLD .
    Fetching data from zmst_permit for F4 help on PERMIT ID No.--
      IF IT_PERMIT[] IS INITIAL.
        SELECT ZPIDNUM
               ZENGDSC
               ZARBDSC
               ZTARIFF
               ZPERNUM
               ZARRPRT
               ZEFFDT
               ZEXPDT
               FROM ZMST_PERMIT INTO CORRESPONDING FIELDS OF TABLE IT_PERMIT.
      ENDIF.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          RETFIELD        = W_NAME1 " 'ZPIDNUM'
          DYNPPROG        = 'ZMSTR0022'
          DYNPNR          = SY-DYNNR
          DYNPROFIELD     = W_NAME2 "'S_PIDNUM'
          VALUE_ORG       = 'S'
        TABLES
          VALUE_TAB       = IT_PERMIT
        EXCEPTIONS
          PARAMETER_ERROR = 1
          NO_VALUES_FOUND = 2
          OTHERS          = 3.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                                                    " F4_HELP
    I hope this will help you.
    Help children of U.N World Food Program by rewarding  points and encourage others to answer your queries.

  • DYNP_VALUES_UPDATE, uppercase problems

    Hello,
    On a screen, i'm using the function DYNP_VALUES_UPDATE, to update a field with an other field. It's works but this function put my field in UPPER CASE.
    [Screen of my problem|http://img407.imageshack.us/img407/4043/sap.jpg]
    The DYNP_VALUES_UPDATE is call on a process on value-request for the first field.
    PROCESS ON VALUE-REQUEST.
      FIELD zstress MODULE f4_stress.
    Someone have an idea ?
    Best Regards,
    Nicolas
    Edited by: Nicolas Couret on Apr 30, 2009 12:35 PM

    I have found, in the layout of the screen I haven't seen the check box Upper/Lower case
    [link|http://img142.imageshack.us/img142/4043/sap.jpg]
    Thanks !
    Edited by: Nicolas Couret on Apr 30, 2009 1:04 PM
    Edited by: Nicolas Couret on Apr 30, 2009 1:05 PM

  • Using DYNP_VALUES_UPDATE with a Maintenance View

    Hi,
    I am using a maintenance view to insert values into a table. When user creates a new entry, based on the value provided for a field,I need to fill a read-only field. In PAI, when user enters a value for one field, I am using FM 'DYNP_GET_STEPL' to  get the current line and then DYNP_VALUES_UPDATE to fill the contents to the read-only field. But this does not seem to work. Any idea?
    Regards
    Rachana

    Hi Tamas,
    I tried both the options suggested by you.
    I am updating the underlying structure, still its not visible when the screen loads again. But if you see the same field gets filled with DYNP_VALUES_UPDATE if an F4 help is used for teh first(editable) field and then my read-only field is also filled in the PROCESS ON VALUE REQUEST module.
    So my guess is that, since it is a table control, it loops through the rest of the table control which is empty and my underlying structure gets cleared. So the problem could be where I am actually filling the field.
    Is it possible to somehow fill the <EXTRACT> table so that teh value is not lost?
    Regards
    Rachana

  • Screen Fields Not getting Updated with DYNP_VALUES_UPDATE

    Hi All,
    I am using FM DYNP_VALUES_READ to read the screen field values and then modifying those values and passing the modified table to DYNP_VALUES_UPDATE. But the problem is screen fields are not populated with these values . The values I wish to populate are footer values . I am using OO ALV for this wherein I am handling an event for filter of records and accordingly I need to modify my footer. Any Suggestions??
    *&      Form  footer
          Caslculate Total items, number of hits/Miss and percent MSP
    -->  p1        text
    <--  p2        text
    FORM footer .
      CLEAR : io_totitems,
              io_tothit,
              io_totmiss,
              io_permiss.
    IF NOT l_flag EQ 1.
    Get total items
      DESCRIBE TABLE i_outdata LINES io_totitems.
      LOOP AT i_outdata INTO wa_outdata.
      calculate number of hits
        IF wa_outdata-hit_miss  = 'HIT'.
          io_tothit = io_tothit + 1.
        ENDIF.
      calculate number of Miss
        IF wa_outdata-hit_miss  = 'MISS'.
          io_totmiss = io_totmiss + 1.
        ENDIF.
        CLEAR wa_outdata.
      ENDLOOP.
    calculate percent MSP
      io_permiss = ( ( io_totitems - io_totmiss ) / io_totitems ) * 100 .
      IF l_flag EQ 1.
        wa_dynpread-fieldname = 'IO_TOTITEMS'.
        APPEND wa_dynpread TO t_dynpread.
        wa_dynpread-fieldname = 'IO_TOTHIT'.
        APPEND wa_dynpread TO t_dynpread.
        wa_dynpread-fieldname = 'IO_TOTMISS'.
        APPEND wa_dynpread TO t_dynpread.
        wa_dynpread-fieldname = 'IO_PERMISS'.
        APPEND wa_dynpread TO t_dynpread.
        CLEAR wa_dynpread.
        d020s-prog = sy-repid.
        d020s-dnum = sy-dynnr.
        CALL FUNCTION 'DYNP_VALUES_READ'
                EXPORTING
                   dyname               = d020s-prog
                   dynumb               = d020s-dnum
                   translate_to_upper   = 'X'
              REQUEST              = ' '
                TABLES
                   dynpfields           = t_dynpread.
        MOVE io_totitems TO io_totitem.
        CONDENSE io_totitem NO-GAPS.
        MOVE io_tothit TO io_tothits.
        CONDENSE io_tothits NO-GAPS.
        MOVE io_totmiss TO io_totmis.
        CONDENSE io_totmis NO-GAPS.
        MOVE io_permiss TO io_permis.
        CONDENSE io_permis NO-GAPS.
        LOOP AT t_dynpread INTO wa_dynpread.
          CASE: wa_dynpread-fieldname.
            WHEN 'IO_TOTITEMS'.
              wa_dynpread-fieldvalue = io_totitem .
              MODIFY t_dynpread FROM wa_dynpread.
            WHEN 'IO_TOTHIT'.
              wa_dynpread-fieldvalue = io_tothits.
              MODIFY t_dynpread FROM wa_dynpread.
            WHEN 'IO_TOTMISS'.
              wa_dynpread-fieldvalue = io_totmis.
              MODIFY t_dynpread FROM wa_dynpread.
            WHEN 'IO_PERMISS'.
              wa_dynpread-fieldvalue =  io_permis .
              MODIFY t_dynpread FROM wa_dynpread.
          ENDCASE.
          CLEAR wa_dynpread.
        ENDLOOP.
        CALL FUNCTION 'DYNP_VALUES_UPDATE'
          EXPORTING
            dyname               = d020s-prog
            dynumb               = d020s-dnum
          TABLES
            dynpfields           = t_dynpread
          EXCEPTIONS
            invalid_abapworkarea = 1
            invalid_dynprofield  = 2
            invalid_dynproname   = 3
            invalid_dynpronummer = 4
            invalid_request      = 5
            no_fielddescription  = 6
            undefind_error       = 7
            OTHERS               = 8.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
      ENDIF.
    Get all fotter details in a internal table
    this is used to download footer in Excel
      wa_footer-fldname = 'Total Items '.
      wa_footer-value = io_totitems.
      APPEND wa_footer TO i_footer.
      wa_footer-fldname = 'Number of HIT'.
      wa_footer-value = io_tothit.
      APPEND wa_footer TO i_footer.
      wa_footer-fldname = 'Number of MISS'.
      wa_footer-value = io_totmiss.
      APPEND wa_footer TO i_footer.
      wa_footer-fldname = 'Percentage MISS '.
      wa_footer-value = io_permiss.
      APPEND wa_footer TO i_footer.
      CLEAR wa_footer.
    ENDFORM.                    " footer

    data: t_dynfields1 type table of dynpread with header line.
    CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
    dyname = d020s-prog
    dynumb = d020s-dnum
    translate_to_upper = 'X'
    REQUEST = ' '
    TABLES
    dynpfields =  t_dynfields1.
    <b>read table t_dynfields1 index 1</b> “ I hope this is missing
    I will be selecting from a list .
    Because once the value is read we need to update the screen field with that value .
    Here the selected value will be in the first place
    Now
    Your operation is to populate the fields with some variables .
    In the same when I do this there is only one value then
    Im expecting only one entry here …
    LOOP AT t_dynpread INTO wa_dynpread.
    CASE: wa_dynpread-fieldname.
    WHEN 'IO_TOTITEMS'.
    wa_dynpread-fieldvalue = io_totitem .
    MODIFY t_dynpread FROM wa_dynpread.
    WHEN 'IO_TOTHIT'.
    wa_dynpread-fieldvalue = io_tothits.
    MODIFY t_dynpread FROM wa_dynpread.
    WHEN 'IO_TOTMISS'.
    wa_dynpread-fieldvalue = io_totmis.
    MODIFY t_dynpread FROM wa_dynpread.
    WHEN 'IO_PERMISS'.
    wa_dynpread-fieldvalue = io_permis .
    MODIFY t_dynpread FROM wa_dynpread.
    ENDCASE.
    CLEAR wa_dynpread.
    ENDLOOP. */
    Comment this for a while and
    Change the code as
    t_dynfields1-fieldname = ' '. "<--- header name
    t_dynfields1-fieldvalue = ' '."<----val  
    append t_dynfields1.
    t_dynfields1-fieldname = ' '.
    t_dynfields1-fieldvalue = ' '.
    append t_dynfields1.
    t_dynfields1-fieldname = ' '.
    t_dynfields1-fieldvalue = ' '.
    append t_dynfields1.
    And check .
    CALL FUNCTION 'DYNP_VALUES_UPDATE'
    EXPORTING
    dyname = d020s-prog
    dynumb = d020s-dnum
    TABLES
    dynpfields = t_dynfields1.
    regards,
    vijay

  • Field Exit with DYNP_VALUES_UPDATE

    Hello, I am trying to develop a validation in a SAP transaction (XD01) to check some field values and if them are right then fill automatically the rest of the field in the screen, using a Function Modulo and the FM DYNP_VALUES_READ I am able to retrieve the field values correctly, my problem is when a try to fill the rest of the screen's fields with FM  DYNP_VALUES_UPDATE it doesn't work. Does anybody have used this FM? is possible what I am trying to do?
    Thanks in advice for your help.

    Hi Fernando,
    Using Field exit we can't populate multiple fileds, One filed exit is applicable for only one input filed.If you want to implement the
    filed exit for multiple fileds you have to implement the one exit for one filed.
    Regards,
    Mahender Reddy

  • AT SELECTION SCREEN OUTPUT ON VALUE REQUESt problem

    hi I am fetching the values into second field based on first field by reading them like this
    <b>
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR ST_NAME.
      CLEAR: FIELD_VALUE, DYNPRO_VALUES.
      REFRESH DYNPRO_VALUES.
      FIELD_VALUE-FIELDNAME = 'EXCH'.
      APPEND FIELD_VALUE TO DYNPRO_VALUES.
      CALL FUNCTION 'DYNP_VALUES_READ'
        EXPORTING
          DYNAME             = SY-CPROG
          DYNUMB             = SY-DYNNR
          TRANSLATE_TO_UPPER = 'X'
        TABLES
          DYNPFIELDS         = DYNPRO_VALUES.
      READ TABLE DYNPRO_VALUES INDEX 1 INTO FIELD_VALUE.
      IF FIELD_VALUE-FIELDVALUE IS NOT INITIAL.
        IF SY-SUBRC = 0 AND FIELD_VALUE-FIELDVALUE = 1.
          FIELD_VALUE-FIELDVALUE = 'BSE'.
        ELSEIF SY-SUBRC = 0 AND FIELD_VALUE-FIELDVALUE = 2.
          FIELD_VALUE-FIELDVALUE = 'NSE'.
        ENDIF.
        SELECT STOCK ST_NAME
                       FROM
                       ZEXCH
                       INTO TABLE TEMP_ITAB
                       WHERE EXCH = FIELD_VALUE-FIELDVALUE.
        IF SY-SUBRC = 0.
          FLAG = 'X'.
        ENDIF.
        CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
          EXPORTING
            RETFIELD    = 'ST_NAME'
            DYNPPROG    = SY-CPROG
            DYNPNR      = SY-DYNNR
            DYNPROFIELD = 'ST_NAME'
            VALUE_ORG   = 'S'
          TABLES
            VALUE_TAB   = TEMP_ITAB.
      ENDIF.
    </b>
    This is working fine, now my requirement is to fetch a value into 3rd field from database table when the user selects a value through 'F4IF_INT_TABLE_VALUE_REQUEST'
    Please help me with this, hope u got my problem, i want to know how to continue and fill value into third field after filling the field ST_NAME
    points guaranteed

    Hi,
    If you have two parameters, you want to display values(f4) in parameter 2 
    depending on the values entered in parameter 1.
    REPORT Z_SRI_HELP_VALUE_FOR_TABLES .
    tables tcurt.
    DATA   DYFIELDS LIKE DYNPREAD OCCURS 1 WITH HEADER LINE.
    PARAMETERS: P_WAERS LIKE TCURT-WAERS,        "Currency
                P_LTEXT LIKE TCURT-LTEXT,        "Long Text
                P_KTEXT LIKE TCURT-KTEXT.        "Short Text
    *--- Example of updating value of another field on the screen -
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_WAERS.
      CLEAR: DYFIELDS[], DYFIELDS.
    *--- select currency
      CALL FUNCTION 'HELP_VALUES_GET'
           EXPORTING
                fieldname        =  'WAERS'
                tabname          =  'TCURT'
           IMPORTING
                SELECT_VALUE     =   P_WAERS.
    *--- get long text for the selected currency
      SELECT SINGLE LTEXT FROM TCURT
        INTO DYFIELDS-FIELDVALUE
        WHERE SPRAS = SY-LANGU
        AND   WAERS = P_WAERS.
      IF SY-SUBRC <> 0.
        CLEAR DYFIELDS-FIELDVALUE.
      ENDIF.
    *--- update another field
      DYFIELDS-FIELDNAME = 'P_LTEXT'.
      APPEND DYFIELDS.
      CALL FUNCTION 'DYNP_VALUES_UPDATE'
           EXPORTING
                DYNAME               = SY-CPROG
                DYNUMB               = SY-DYNNR
           tables
                dynpfields           = DYFIELDS .
    *--- Example of reading value of another field -
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_KTEXT.
    *--- read another field
      CLEAR: DYFIELDS[], DYFIELDS.
      DYFIELDS-FIELDNAME = 'P_WAERS'.
      APPEND DYFIELDS.
      CALL FUNCTION 'DYNP_VALUES_READ'
           EXPORTING
                DYNAME                   = SY-CPROG
                DYNUMB                   = SY-DYNNR
           TABLES
                DYNPFIELDS               = DYFIELDS .
      READ TABLE DYFIELDS INDEX 1.
    *--- get short text and update current field
      SELECT SINGLE KTEXT FROM TCURT
        INTO P_KTEXT
        WHERE SPRAS EQ SY-LANGU
        AND   WAERS EQ DYFIELDS-FIELDVALUE.
    How to add F4 functionality to a paramter variable?  Say P_name ie Parameters: P_name like dbtab-fieldname
    in At selection-screen on value-request for p_name.  How should I add the values john, abraham, linga etc so that these values appear when f4 is pressed on the field in the selection screen?
    PARAMETERS: p_name(10).
    DATA: BEGIN OF value_tab OCCURS 0,
                   name(10),
                 END OF value_tab.
    DATA :field_tab LIKE dfies  OCCURS 0 WITH HEADER LINE.
    DATA : return_tab LIKE ddshretval OCCURS 0 WITH HEADER LINE. DATA : x TYPE string.
      AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_name.
      REFRESH value_tab[].
      REFRESH field_tab[].
      REFRESH return_tab[].
        field_tab-fieldname = 'ERNAM'.
      field_tab-tabname = 'VBAK'.
      APPEND field_tab.
        value_tab-name = 'John'.
      APPEND value_tab.
      value_tab-name = 'Abraham'.
      APPEND value_tab.
      value_tab-name = 'Lingam'.
      APPEND value_tab.
        CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield        = field_tab-fieldname
        TABLES
          value_tab       = value_tab
          field_tab       = field_tab
          return_tab      = return_tab
        EXCEPTIONS
          parameter_error = 1
          no_values_found = 2
          OTHERS          = 3.
      IF sy-subrc = 0.
        p_name = return_tab-fieldval.
      ENDIF.
    Regards
    Sudheer

  • In search help i am facing problem

    created search help using below function module . here element list is like this
    in search help 2 fields is there and data is like this
    arbpl werks
    y 1
    y 2
    x 1
    x 2
    x 3
    z 1
    z 3
    a 1
    b 1
    if i select x and 2 it taking the value as x and 1 how to solve this problem
    would any body solve this problem?
    i write the code like this
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_arbpl.
    select arbpl werks from zpces into corresponding fields of table
    itab .
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    DDIC_STRUCTURE = 'CRHD'
    retfield ='ARBPL'
    PVALKEY = ' '
    DYNPPROG = sy-repid
    DYNPNR = sy-dynnr
    DYNPROFIELD = 'P_ARBPL'
    STEPL = 0
    WINDOW_TITLE = 'title'
    VALUE = ' '
    VALUE_ORG = 'S'
    MULTIPLE_CHOICE = ' '
    DISPLAY = 'F'
    CALLBACK_PROGRAM = ' '
    CALLBACK_FORM = ' '
    MARK_TAB =
    IMPORTING
    USER_RESET =
    tables
    value_tab = itab
    FIELD_TAB = dynfields
    RETURN_TAB = return
    DYNPFLD_MAPPING = dynmap
    EXCEPTIONS
    PARAMETER_ERROR = 1
    NO_VALUES_FOUND = 2
    OTHERS = 3
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    read table return with key fieldname = 'P_ARBPL'.
    dynfields-fieldname = return-retfield.
    dynfields-fieldvalue = return-fieldval.
    append dynfields.
    itab-arbpl = return-fieldval.
    read table itab from itab.
    read table itab with key arbpl = return-fieldval.
    dynfields-fieldname = 'P_WERKS'.
    dynfields-fieldvalue = itab-werks.
    append dynfields.
    Update the dynpro values.
    call function 'DYNP_VALUES_UPDATE'
    exporting
    dyname = sy-cprog
    dynumb = sy-dynnr
    tables
    dynpfields = dynfields
    exceptions

    Change your code as below.
    dynfields-fieldname = return-retfield.
    dynfields-fieldvalue = return-fieldval.
    append dynfields.
    * itab-arbpl = return-fieldval.
    * read table itab from itab.
    <b>read table itab index return-recordpos.</b>
    dynfields-fieldname = 'P_WERKS'.
    dynfields-fieldvalue = itab-werks.
    append dynfields.
    Hope this helps.
    Manoj

  • Search help multiple values selection problem

    Hello Friends,
    I am using FM f4_if_int_table_value_request FM to display multiple values on selection screen
    in AT-selection-screen on value request event.
    Multiple values are getting displayed perfectly .
    Then after that I am using DYNP_VALUES_UPDATE FM to return the values back to screen.
    But the problem is in the select-option field . It only picks the last value selected.
    I have a row:
    I EQ 'last value selected from F4 help screen''.
    Is there a way to update multiple rows in the select option selection screen field.
    Thanks.

    Hi Suhas,
    you may try the following:
    TABLES spfli.
    SELECT-OPTIONS: s_carrid FOR spfli-carrid.
    SELECTION-SCREEN: PUSHBUTTON /1(20) but1 USER-COMMAND carr.
    INITIALIZATION.
      but1 = 'Choose CARRID(s)'.
    AT SELECTION-SCREEN.
      CASE sy-ucomm.
        WHEN 'CARR'.
          TYPES: t_return_tab  TYPE ddshretval.
          TYPES: BEGIN OF ty_line,
            carrid   TYPE spfli-carrid,
            carrname TYPE scarr-carrname,
          END OF ty_line.
          DATA: it_list TYPE STANDARD TABLE OF ty_line,
                wa_return_tab TYPE t_return_tab,
                i_return_tab TYPE STANDARD TABLE OF t_return_tab,
                v_repid TYPE sy-repid,
                v_dynnr TYPE sy-dynnr.
          v_repid = sy-repid.
          v_dynnr = sy-dynnr.
          SELECT carrid carrname
          FROM scarr
          INTO TABLE it_list.
          IF sy-subrc = 0.
            CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
              EXPORTING
                retfield        = 'CARRID'
                dynpprog        = v_repid
                dynpnr          = v_dynnr
    *        dynprofield     = 'S_CARRID-LOW'
                value_org       = 'S'
                multiple_choice = 'X'
              TABLES
                value_tab       = it_list
                return_tab      = i_return_tab
              EXCEPTIONS
                parameter_error = 1
                no_values_found = 2
                OTHERS          = 3.
            IF sy-subrc = 0.
              s_carrid-sign = 'I'.
              s_carrid-option = 'EQ'.
              LOOP AT i_return_tab INTO wa_return_tab.
                s_carrid-low = wa_return_tab-fieldval.
                APPEND s_carrid.
              ENDLOOP.
              READ TABLE s_carrid INDEX 1.
            ENDIF.
          ENDIF.
      ENDCASE.
    What I have done is:
    - not linking the result of the F4 search to field S_CARRID-LOW
    - inserting this F4 search into event AT SELECTION SCREEN. This allows to see the select-options filled when its contents are actually populated.
    I hope this helps. Kind regards,
    Alvaro

  • Problem with Radio Buttons: At Selection-Screen

    Hi,
    i have two radio-buttons in my screen with coding
    PARAMETERS:
                      ST RADIOBUTTON GROUP rad1 DEFAULT 'X',         "stock transport
                      PR RADIOBUTTON GROUP rad1.                     "purchase return
    at selection-screen output.
    if PR = 'X'.
    perform f_selection_request_po_ret.
    endif.
    if ST = 'X'.
    perform f_selection_request_stck_trans.
    endif.
    at selection-screen on value-request for s_ebeln-low.
    perform f_f4_values.
    at selection-screen on value-request for s_ebeln-high.
    perform f_f4_values.
    I need to provide different values in drop-down of select-options according to the radio-button selected.
    Like if PR is selected s_ebeln-low and s_ebeln-high displayed will be different.
    and if ST is selected s_ebeln-low and s_ebeln-high displayed will be different.
    My problem is that the program is taking the values of that radio button which is set to Default. While running the program, if I click on the other radio-button, it is showing the same values, not different.
    Kindly, tell me where I am going wrong in the coding.
    Regards,
    Priyanka.

    Hi,
    For this requirement you have to use the following FM's
    <b>DYNP_VALUES_READ </b>  and DYNP_VALUES_UPDATE
    The one highlighted is the one you need to call in the selection screen events to get the values. Do a where used list on this FM and see how its being used.
      DATA : W_REPID    LIKE D020S-PROG,
             W_DYNNR    LIKE D020S-DNUM,
             I_DYNPREAD LIKE DYNPREAD OCCURS 0 WITH HEADER LINE.
      REFRESH: I_DYNPREAD.
      CLEAR  : I_DYNPREAD,
               W_FILE    .
      I_DYNPREAD-FIELDNAME = C_UXPATH.
      APPEND   I_DYNPREAD.
      CLEAR  : I_DYNPREAD.
      W_REPID = SY-REPID.
      W_DYNNR = C_1000.
      CALL FUNCTION 'DYNP_VALUES_READ'
           EXPORTING
                DYNAME               = W_REPID
                DYNUMB               = W_DYNNR
           TABLES
                DYNPFIELDS           = I_DYNPREAD
           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
                OTHERS               = 10.
      IF SY-SUBRC EQ 0.
    Successfully read screen. GET the values
        LOOP AT I_DYNPREAD.
          CASE I_DYNPREAD-FIELDNAME.
            WHEN C_UXPATH .
              W_FILE   = I_DYNPREAD-FIELDVALUE.
          ENDCASE.
        ENDLOOP.                "LOOP AT i_dynpread.
      ENDIF.                    "IF sy-subrc EQ 0.
    Cheers
    VJ
    Message was edited by:
            Vijayendra  Rao

  • A problem with threads

    I am trying to implement some kind of a server listening for requests. The listener part of the app, is a daemon thread that listens for connections and instantiates a handling daemon thread once it gets some. However, my problem is that i must be able to kill the listening thread at the user's will (say via a sto button). I have done this via the Sun's proposed way, by testing a boolean flag in the loop, which is set to false when i wish to kill the thread. The problem with this thing is the following...
    Once the thread starts excecuting, it will test the flag, find it true and enter the loop. At some point it will LOCK on the server socket waiting for connection. Unless some client actually connects, it will keep on listening indefinatelly whithought ever bothering to check for the flag again (no matter how many times you set the damn thing to false).
    My question is this: Is there any real, non-theoretical, applied way to stop thread in java safely?
    Thank you in advance,
    Lefty

    This was one solution from the socket programming forum, have you tried this??
    public Thread MyThread extends Thread{
         boolean active = true;          
         public void run(){
              ss.setSoTimeout(90);               
              while (active){                   
                   try{                       
                        serverSocket = ss.accept();
                   catch (SocketTimeoutException ste){
                   // do nothing                   
         // interrupt thread           
         public void deactivate(){               
              active = false;
              // you gotta sleep for a time longer than the               
              // accept() timeout to make sure that timeout is finished.               
              try{
                   sleep(91);               
              }catch (InterruptedException ie){            
              interrupt();
    }

  • A problem with Threads and MMapi

    I am tring to execute a class based on Game canvas.
    The problem begin when I try to Play both a MIDI tone and to run an infinit Thread loop.
    The MIDI tone "Stammers".
    How to over come the problem?
    Thanks in advance
    Kobi
    See Code example below:
    import java.io.IOException;
    import java.io.InputStream;
    import javax.microedition.lcdui.Graphics;
    import javax.microedition.lcdui.Image;
    import javax.microedition.lcdui.game.GameCanvas;
    import javax.microedition.media.Manager;
    import javax.microedition.media.MediaException;
    import javax.microedition.media.Player;
    public class MainScreenCanvas extends GameCanvas implements Runnable {
         private MainMIDlet parent;
         private boolean mTrucking = false;
         Image imgBackgound = null;
         int imgBackgoundX = 0, imgBackgoundY = 0;
         Player player;
         public MainScreenCanvas(MainMIDlet parent)
              super(true);
              this.parent = parent;
              try
                   imgBackgound = Image.createImage("/images/area03_bkg0.png");
                   imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
                   imgBackgoundY = this.getHeight() - imgBackgound.getHeight();
              catch(Exception e)
                   System.out.println(e.getMessage());
          * starts thread
         public void start()
              mTrucking = true;
              Thread t = new Thread(this);
              t.start();
          * stops thread
         public void stop()
              mTrucking = false;
         public void play()
              try
                   InputStream is = getClass().getResourceAsStream("/sounds/scale.mid");
                   player = Manager.createPlayer(is, "audio/midi");
                   player.setLoopCount(-1);
                   player.prefetch();
                   player.start();
              catch(Exception e)
                   System.out.println(e.getMessage());
         public void run()
              Graphics g = getGraphics();
              play();
              while (true)
                   tick();
                   input();
                   render(g);
          * responsible for object movements
         private void tick()
          * response to key input
         private void input()
              int keyStates = getKeyStates();
              if ((keyStates & LEFT_PRESSED) != 0)
                   imgBackgoundX++;
                   if (imgBackgoundX > 0)
                        imgBackgoundX = 0;
              if ((keyStates & RIGHT_PRESSED) != 0)
                   imgBackgoundX--;
                   if (imgBackgoundX < this.getWidth() - imgBackgound.getWidth())
                        imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
          * Responsible for the drawing
          * @param g
         private void render(Graphics g)
              g.drawImage(imgBackgound, imgBackgoundX, imgBackgoundY, Graphics.TOP | Graphics.LEFT);
              this.flushGraphics();
    }

    You can also try to provide a greater Priority to your player thread so that it gains the CPU time when ever it needs it and don't harm the playback.
    However a loop in a Thread and that to an infinite loop is one kind of very bad programming, 'cuz the loop eats up most of your CPU time which in turn adds up more delays of the execution of other tasks (just as in your case it is the playback). By witting codes bit efficiently and planning out the architectural execution flow of the app before start writing the code helps solve these kind of issues.
    You can go through [this simple tutorial|http://oreilly.com/catalog/expjava/excerpt/index.html] about Basics of Java and Threads to know more about threads.
    Regds,
    SD
    N.B. And yes there are more articles and tutorials available but much of them targets the Java SE / EE, but if you want to read them here is [another great one straight from SUN|http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html] .
    Edited by: find_suvro@SDN on 7 Nov, 2008 12:00 PM

  • J2ME problem with threads

    Hi all,
    I would like to ask you for a help. I need to write a small program at my university. I started to write a midlet which function would be to countdown time for sports activities. I woul like to start a new thread - the one that counts down - and at the same time make the main thread sleep. After the "countdown" thread finishes, the main thread wakes up and waits for user input. The problem is that when the "countdown" thread finishes his work, I've got Uncaught exception java/lang/NullPointerException. error and the midlet halts.
    Below you can find the code
    import java.lang.*;
    import java.util.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.*;
    public class intervals extends MIDlet implements CommandListener
    public Display ekran;
    private SweepCanvas sweeper;
    private Form rundy;
    private TextField round0, round1, round2, round3, round4, round5, round6, round7, round8;
    private long czas,x;
    private Command exitCommand;
    private Command addRound;
    private Command delRound;
    private Command start;
    private TextField repeat;
    private Form odliczanie;
    private Alert ostrz;
    Licznik thread;
    String test;
    StringItem test1;
    int parz,i,j,k;
    static int l;
    int ilrund;
    int ilpowt;
    Item sec;
    long sec1;
    public intervals()
        rundy = new Form("Interwa&#322;y sportowe");
        exitCommand = new Command("Wyj&#347;cie", Command.EXIT, 2);
        addRound = new Command("Dodaj","Dodaj rund&#281;", Command.ITEM,1);
        delRound = new Command("Usu&#324;","Usu&#324; ostatni&#261; rund&#281;", Command.ITEM,1);
        start = new Command("Start", Command.ITEM,1);
        odliczanie = new Form("Odliczanie");
        TextField dodaj(TextField kolej)
            kolej=new TextField("Podaj czas (s) rundy "+parz,null, 4, TextField.NUMERIC);//stworzenie nowej instancji do wybierania czasu trwania rundy
            if(rundy.size()==0)
                rundy.insert(rundy.size(),kolej);
                else
                    rundy.insert(rundy.size()-1, kolej);
            return kolej;
        void odliczanie(TextField round)
            monitor m=new monitor();
            k=Integer.parseInt(round.getString());
            ekran.setCurrent(odliczanie);
            thread=new Licznik(k,odliczanie);
            thread.start();
            ekran.setCurrent(rundy);
    public void startApp()// throws MIDletStateChangeException
        rundy.deleteAll();
        repeat = new TextField("Podaj ilo&#347;&#263; powtórze&#324;",null,1,TextField.NUMERIC);
        rundy.addCommand(addRound);
        rundy.addCommand(exitCommand);
        rundy.setCommandListener(this);
        Canvas obrazek = new MyCanvas();
        ekran = Display.getDisplay(this);
        ekran.setCurrent(obrazek);
        czas=System.currentTimeMillis();
        while (System.currentTimeMillis()<czas+1000)
            continue;
        ekran.setCurrent(rundy);
    public void pauseApp()
    public void destroyApp(boolean unconditional)
        notifyDestroyed();
    public void commandAction(Command c, Displayable s)
        if (c == exitCommand)
            destroyApp(false);
            notifyDestroyed();
        else if(c==addRound)
            if(rundy.size()==0)//Sprawdzenie ilo&#347;ci elementów w celu poprawnego wy&#347;wietlania liczby rund w formie
                parz=1;
                else
                parz=rundy.size();
            switch(parz)
                case 1:
                    round0=dodaj(round0);break;
                case 2:
                    round1=dodaj(round1);break;
                case 3:
                   round2= dodaj(round2);break;
                case 4:
                    round3=dodaj(round3);break;
                case 5:
                    round4=dodaj(round4);break;
                default:
                    ostrz=new Alert("Uwaga","Maksymalna liczba rund wynosi 9", null, AlertType.INFO);
                    ostrz.setTimeout(3000);
                    ekran.setCurrent(ostrz);
            if(rundy.size()==1)
                rundy.append(repeat);
                rundy.addCommand(start);
            rundy.addCommand(delRound);
        else if(c==delRound)
            if(rundy.size()!=0)
                rundy.delete(rundy.size()-2);
                if (rundy.size()==1)
                    rundy.deleteAll();
                if(rundy.size()==0)
                    rundy.removeCommand(delRound);
                    rundy.removeCommand(start);
        else if(c==start)
            ilrund=rundy.size()-1;
            if(this.repeat.size()>0)
                ilpowt=Integer.parseInt(this.repeat.getString());
            ekran = Display.getDisplay(this);
            for (i=1; i<=ilpowt;i++)
                odliczanie= new Form("Odliczanie");
                 for (j=0;j<ilrund;j++)
                    switch(j)
                         case 0:
                             odliczanie(round0);
                             break;
                         case 1:
                             odliczanie(round1);
                             break;
                         case 2:
                             odliczanie(round2);
                             break;
                         case 3:
                             odliczanie(round3);
                             break;
                         case 4:
                             odliczanie(round4);
                             break;
                         case 5:
                             odliczanie(round5);
                             break;
                         case 6:
                             odliczanie(round6);
                             break;
                         case 7:
                             odliczanie(round7);
                             break;
                         case 8:
                             odliczanie(round8);
                             break;
    class Licznik extends Thread
        int czas1,k;
        Form forma;
        monitor m;
        public Licznik(int k,Form formap)
            czas1=k;
            forma=formap;
        public synchronized void run()
            while(czas1>0)
                forma.deleteAll();
                forma.append("Czas pozosta&#322;y (s): "+czas1);
                try{Thread.sleep(1000);} catch(InterruptedException e){e.printStackTrace();}
                czas1--;
            if(czas1<=0)
                m.put();
        }and monitor class
    public class monitor
    boolean busy=false;
    synchronized void get()
        if(!busy)
            try
                wait();
            }catch(InterruptedException e){e.printStackTrace();}
        notify();
    synchronized void put()
        if(busy)
            try
            wait();
            }catch(InterruptedException e){e.printStackTrace();}
        busy=true;
        notify();
    }Can anybody help me with this?

    Groovemaker,
    Your Licznik class has a member m of type monitor, which has not been instantiated (in other words is null) hence, when calling m.put() you get NullPointerException. Please also mind, that using Thread.sleep(1000) is not an accurate way of measuring time.
    If I may, please use recommended for Java class naming conventions - some of your names use lower case, while other don't which is confusing to the reader.
    Daniel

Maybe you are looking for

  • How do i install more memory on my macbook ,2010 white version

    I just purchased more memory for my macbook, 2010 version, should i attempt it myself, or make a appt with the gensius bar??? Thanks

  • My Ipod shuffle NOW thinks it has a 298.1 Gb storage capacity.  Help, plz.

    Good afternoon, I have a 512 MB Ipod Shuffle, that I have used successsfully for 9 months without a single glitch, until now. I'm using itunes 6.0.4.2, and the ipod shuffle is running software version 2006 03-23. I have a Dell PC running Windows XP P

  • 0FI_AR_4

    Hi Gurus, I am loading data from extractor 0FI_AR_4 into the ODS 0FIAR_O03 using Full Update. It says: "Request IDoc : Application document not posted" How do I resolve this problem. Please help. Thanks NewBw

  • Are there any additional Captivate themes available?

    I have been tasked with designed and producing a series of e-learning courses and although I have ID experience, I am not a graphics designer. There are a handful of themes available in Captivate 8, but I was hoping to have a wider selection. Are the

  • Call c++ dll from oracle 10g

    can i know how to call a c++ dll from oracle or how to import a c++ dll from oracle any help plz??