Decimals Problem with GUI_UPLOAD

Hi Experts,
Can any one help me,
I am using GUI_UPLOAD FM,the problem is the Decimal Format of the Data which I am uploading is changing to another format.
When using WS_UPLOAD its working fine.
Example:
In SAP it is trying to post as 1 249 400,00 CZK, however it's only 12 494,00 CZK.
value which i am passing to FM is 12494.00
But its converting to 00000001249400
the field is of type N length is 14.

Hi SAP58,
  Try these
1. Try passing the value as 12494,00 or 12494 to the function module
2. Check the user settings
3. And importanly try debugging the program once, Check how thw value is getting populated to the field(of type N)
Regards,
Amuktha

Similar Messages

  • Bdc upload file data into internal table problem with gui_upload fm

    Hello experts,
    my coding is like this ..
    data : begin of itab occurs 0 .
    field1 like mara-matnr,
    field2......
    etc,
    end of itab.
    data: file1 type string.
    parameter :file like rlgrap-filename.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR file.
    CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    EXPORTING
    static = 'X'
    mask = space
    field_name = 'FILE'
    CHANGING
    file_name = file.
    START-OF-SELECTION.
    FILE1 = FILE . "HERE I AM PASSING INTO STRING
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = FILE1
    FILETYPE = 'ASC'
    has_field_separator = 'X'
    TABLES
    data_tab = itab. " here the data is not populating from the file , it is giving the error like speified table not found.
    HERE i am getting the message like "specified table name not recgonised" . the data is not populating into the itab from the file.
    file structure is same as the internal table.
    I stored the file as .txt( ie in notepad).
    my file is like this..
    10000 200 323 sunndarrr.......
    i had a problem with this bdc , i am getting like "specified table name not recgonised" in the fm gui_upload while debugging.
    when i am using the ws_upload it is working fine.
    please guide me where i have done the mistake.
    thank you so much for all the replies.

    Hi,
    Have a look on the following code.
    TABLES: kna1.
    DATA: BEGIN OF itab1 OCCURS 0,
          str(255),
          END OF itab1.
    DATA: itab2 TYPE kna1 OCCURS 0 WITH HEADER LINE.
    CALL FUNCTION 'WS_UPLOAD'
      EXPORTING
        filename                = 'D:\ABAP EVE\ffile1.txt'
        filetype                = 'ASC'
      TABLES
        data_tab                = itab1
      EXCEPTIONS
        conversion_error        = 1
        file_open_error         = 2
        file_read_error         = 3
        invalid_type            = 4
        no_batch                = 5
        unknown_error           = 6
        invalid_table_width     = 7
        gui_refuse_filetransfer = 8
        customer_error          = 9
        no_authority            = 10
        OTHERS                  = 11.
    IF sy-subrc <> 0.
      WRITE:/ 'sorry'.
    ELSE.
      LOOP AT itab1.
        SPLIT itab1-str AT ',' INTO itab2-kunnr itab2-name1.
        APPEND itab2.
      ENDLOOP.
      IF sy-subrc = 0.
        LOOP AT itab2.
          WRITE:/ itab2-kunnr,itab2-name1.
          INSERT INTO kna1 VALUES itab2.
        ENDLOOP.
        IF sy-subrc = 0.
          WRITE:/ 'inserted'.
        ELSE.
          WRITE:/ 'not inserted'.
        ENDIF.
      ELSE.
        WRITE:/ 'fail'.
      ENDIF.
    ENDIF.
    Flat file:
    10001,Sadney
    10003,Yogesh
    20005,Madan
    1.U need to define internal table with one field of max size
    2.upload the flat file data into that internal table
    3.split that internal table data into another internal table(having fields)
    <REMOVED BY MODERATOR>
    thanks,
    Chandu
    Edited by: Alvaro Tejada Galindo on Apr 30, 2008 12:17 PM

  • Problem with GUI_UPLOAD using excel sheet

    Hi,
      I am trying to upload excel sheet thru GUI_UPLOAD ... this excel sheet has a header line and 3 line of data. Even if I remove the header line then also the internal while debugging is showing 28 lines of entries with "#" "squares" in some columns ... while in others where data should be there shows all Zeros....
    The excel sheet has the following info
    Rate Type Valid From Date     From Currency     To Currency      Indirect Quote     Direct Quote
    M       29.09.2006             SGD             USD             1.6932     
    M       29.09.2006             USD             SGD                          1.6932
    M       29.09.2006             SGD             MYR                          2.19653
    KURST GDATU    FCURR TCURR INUKURS     DUKURS
    ###&#2161; |########|#####|### #|   0.00000 |0.00000 |
    ##29 |00000000|     |     |   0.00000 |0.00000 |
    o#d# |00000000|     |     |   0.00000 |0.00000 |
    The code that I am writing is as follows:-
    *& INTERNAL TABLES
    DATA : BEGIN OF T_INPUT occurs 0,
             KURST   LIKE TCURV-KURST,  " Exchange rate type
             GDATU   LIKE SY-DATUM,     " Date from which rate is effective
             FCURR   LIKE TCURC-WAERS,  " From currency
             TCURR   LIKE TCURC-WAERS,  " To currency
             INUKURS LIKE TCURR-UKURS,  " Indirect Quote
             DUKURS  LIKE TCURR-UKURS,  " Direct Quote
           END OF T_INPUT.
                S T A R T - O F - S E L E C T I O N                      *
    START-OF-SELECTION.
    Perform to upload the excel file.
      PERFORM UPLOAD_EXCEL_FILE.
    FORM UPLOAD_EXCEL_FILE .
      DATA: L_FILENM TYPE STRING.
      L_FILENM = P_FILENM.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                      = L_FILENM
          FILETYPE                      = 'ASC'
          HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        TABLES
          DATA_TAB                      = T_INPUT
       EXCEPTIONS
         FILE_OPEN_ERROR               = 1
         FILE_READ_ERROR               = 2
         NO_BATCH                      = 3
         GUI_REFUSE_FILETRANSFER       = 4
         INVALID_TYPE                  = 5
         NO_AUTHORITY                  = 6
         UNKNOWN_ERROR                 = 7
         BAD_DATA_FORMAT               = 8
         HEADER_NOT_ALLOWED            = 9
         SEPARATOR_NOT_ALLOWED         = 10
         HEADER_TOO_LONG               = 11
         UNKNOWN_DP_ERROR              = 12
         ACCESS_DENIED                 = 13
         DP_OUT_OF_MEMORY              = 14
         DISK_FULL                     = 15
         DP_TIMEOUT                    = 16
         OTHERS                        = 17 .
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.

    Hi SB,
    pls change the data type declared for 'valid from date'
    from
    DATA : BEGIN OF T_INPUT occurs 0,
    KURST LIKE TCURV-KURST, " Exchange rate type
    <b>GDATU LIKE SY-DATUM,</b> " Date from which rate is effective
    FCURR LIKE TCURC-WAERS, " From currency
    TCURR LIKE TCURC-WAERS, " To currency
    INUKURS LIKE TCURR-UKURS, " Indirect Quote
    DUKURS LIKE TCURR-UKURS, " Direct Quote
    END OF T_INPUT.
    to
    DATA : BEGIN OF T_INPUT occurs 0,
    KURST LIKE TCURV-KURST, " Exchange rate type
    GDATU(10) type c, " Date from which rate is effective
    FCURR LIKE TCURC-WAERS, " From currency
    TCURR LIKE TCURC-WAERS, " To currency
    INUKURS LIKE TCURR-UKURS, " Indirect Quote
    DUKURS LIKE TCURR-UKURS, " Direct Quote
    END OF T_INPUT.
    Cheers,
    Vikram
    Please reward for helpful replies!!

  • Problem with GUI_UPLOAD FM

    Hi All,
    I have trouble using the FM GUI_UPLOAD. I am using this FM to upload text-delimited file data into an ITAB of same structure. The problem is that it is reading only the 1st record and returning sy-subrc = 8. The no of columns in file is 89. When I am reducing the no of columns of this file, then it is reading the data. There is not data format conversion problem, I have check the same. Does any one know why this is happening? Thanks in advance.
    Regards,
    Prashant.

    hi prashant,
    try this oops concept.
    CALL METHOD cl_gui_frontend_services=>gui_upload
       EXPORTING
          filename                = l_v_filepc
          filetype                =   'TXT'
          has_field_separator     = ' '
         header_length           = 0
         read_by_line            = 'X'
         dat_mode                = SPACE
         codepage                = SPACE
         ignore_cerr             = ABAP_TRUE
         replacement             = '#'
         virus_scan_profile      =
        IMPORTING
         filelength              =
         header                  =
        CHANGING
          data_tab                =  fp_it_pernr_infty "fp_it_pernr
        EXCEPTIONS
          file_open_error         = 1
          file_read_error         = 2
          no_batch                = 3
          gui_refuse_filetransfer = 4
          invalid_type            = 5
          no_authority            = 6
          unknown_error           = 7
          bad_data_format         = 8
          header_not_allowed      = 9
          separator_not_allowed   = 10
          header_too_long         = 11
          unknown_dp_error        = 12
          access_denied           = 13
          dp_out_of_memory        = 14
          disk_full               = 15
          dp_timeout              = 16
          not_supported_by_gui    = 17
          error_no_gui            = 18
          OTHERS                  = 19      .
      IF sy-subrc <> 0.
      ENDIF.

  • Problem with GUI_UPLOAD

    Hey Folks,
    I need to convert the excel data into inernal table
    types : begin of ty_data,
            matnr type matnr,
            exbwr type exbwr,
            text type c,
            end of ty_data.
    This is my excel file.
    6249     10     prabhas
    6249     56     Dude
    6249     57     Rockstar
    6249     80     Babu
    6249     90     Bhaiyya
    6249     250     Munna
    6249     35     Rocky
    6249     75     Hero
    6249     789     Prankster
    data : filename type string.
    filename = p_file.
    call function 'GUI_UPLOAD'
      exporting
        filename                      = filename
       FILETYPE                      = 'ASC'
      HAS_FIELD_SEPARATOR           = ' '
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
      tables
        data_tab                      = it_data
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
    if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    when I m using this FM i m getting the error as Bad_DATA_FORMAT i have also checked the FM ALSM_EXCEL_INTERNAL_TABLE but both seems not to be working in my case. Can somebody tell me where its gong wrong.
    Thanks
    Rock

    try to convert/save  the excel file into tab delimited text file, and then try using GUI_UPLOAD
    call function 'GUI_UPLOAD'
    exporting
    filename = filename
    FILETYPE = 'ASC'
    HAS_FIELD_SEPARATOR =  'X' "<---use this

  • Problem with FM gui_upload

    Hello
    I use fonction GUI_UPLOAD with the following parameters:
    CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      = w_nomfic
          filetype                      = 'ASC'
          has_field_separator           = 'X'
          dat_mode                      = 'X'
        TABLES
          data_tab                      = temp_contrat
       EXCEPTIONS
         file_open_error               = 1
         file_read_error               = 2
         no_batch                      = 3
         gui_refuse_filetransfer       = 4
         invalid_type                  = 5
         no_authority                  = 6
         unknown_error                 = 7
         bad_data_format               = 8
         header_not_allowed            = 9
         separator_not_allowed         = 10
         header_too_long               = 11
         unknown_dp_error              = 12
         access_denied                 = 13
         dp_out_of_memory              = 14
         disk_full                     = 15
         dp_timeout                    = 16
         OTHERS                        = 17.
    My table temp_contrat is defined as follow :
    DATA : BEGIN OF temp_contrat OCCURS 0,
            fico_lifnr2 TYPE lifnr,
            fico_matnr TYPE matnr,
            fic_ktmng TYPE ktmng,
            fic_netpr TYPE netpr,
            fic_plifz(3),
            fic_fia TYPE z_maj_creat_fia,
            fic_loekz TYPE z_loekz,
            fic_ztyp_ha TYPE ztyp_ha,
            fic_rsa TYPE z_maj_creat_rsa,
            fic_rsa_non_sup TYPE z_rsa_non_sup,
            fic_evers TYPE evers,
            fic_kodatab TYPE kodatab,
            fic_kodatbi TYPE kodatbi,
            END OF temp_contrat.
    I have a problem with two fields date : fic_kodatab and fic_kodatbi
    In my file :
    if this two fields are not filled : no problem.
    if this two fields are empty : no problem.
    If the first field (fic_kodatab) is filled and the second field is empty: no problem
    But, if the first field is empty and the second field is fielled : problem, the FM returns code 8.
    I don't understand the problem. Can you help me ?

    hi if this is excel use this ..
    REPORT  ZTESTPROG003.
    TYPES:
         BEGIN OF ty_upload,
         matnr like mara-matnr,
         meins like mara-meins,
         mtart like mara-mtart,
         mbrsh like mara-mbrsh,
         END OF ty_upload.
      DATA it_upload TYPE STANDARD TABLE OF ty_upload WITH header line.
      DATA wa_upload TYPE ty_upload.
      DATA: itab TYPE STANDARD TABLE OF alsmex_tabline WITH header line.
    DATA itab TYPE STANDARD TABLE OF ty_upload WITH header line.
      CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
        EXPORTING
          filename    = 'C:\Documents and Settings\venkatapp\Desktop\venkat.xls'
          i_begin_col = 1
          i_begin_row = 1
          i_end_col   = 4
          i_end_row   = 65535
          TABLES
          intern      = itab.
    if not itab[] is initial.
    loop at itab .
    case itab-col.
    when '0001'.
    it_upload-matnr = itab-value.
    when '0002'.
    it_upload-meins = itab-value.
    when '0003'.
    it_upload-mtart = itab-value.
    when '0004'.
    it_upload-mbrsh = itab-value.
    append it_upload.
    clear it_upload.
    clear itab.
    endcase.
    endloop.
    endif.
    loop at it_upload.
    write:/ it_upload-matnr,it_upload-meins,it_upload-mtart,it_upload-mbrsh.
    endloop.

  • Problem with decimals and grouping characters in Java 6

    I'm having problems with locales in Java 6.
    I have the following code:
    NumberFormat format = NumberFormat.getInstance(new Locale("es", "CO", "Traditional_WIN"));
    BigDecimal number = new BigDecimal("123456");
    System.out.println(format.format(number));If I run it with Java 5, I get 123,456 which is OK, and is excatly the output I would expect.
    If I run it with Java 6, I get 123.456 Why am I getting a different output?
    Am I doing something wrong?

    change the separator symbol, something like:
    DecimalFormat format = (DecimalFormat)NumberFormat.getInstance(new Locale("es", "CO", "Traditional_WIN"));
    BigDecimal number = new BigDecimal("123456");
    DecimalFormatSymbols dfs = format.getDecimalFormatSymbols();
    dfs.setGroupingSeparator( ',' );
    format.setDecimalFormatSymbols( dfs );
    System.out.println(format.format(number));regards;

  • Problem with rounding in standard cost estimate.

    Hi All,
    Happy 4th of July!
    I have a problem with the standard cost estimate where the system try to calculate overhead costs (from costing sheet) with a fix percentage (9.7%) to the value coming from material consumption costs element.
    Let say I have $1.71 material consumption and the overhead rate of 9.7%
    The real calculation should be (1.71*0.097) = $0.16587
    But at CK11N screen, it shows only $0.16 (two decimal rounding)
    Is there a way that I can bump the rounding to at least 3 decimal point to make it more accurate?
    Very appreciate any input you guys can share. Thank you.
    Charitha

    Hi Chari ,
    My experience says that you can use only 2 decimals ..
    Moreover , please have a look into SAP Note : 639410 - CK11N, CK13N: Message CK869 due to rounding
    differences.
    There a some source code corrections also on rounding differences- check if it helps you also...
    Regards
    Sarada

  • VCORE PROBLEMS WITH MSI P35 NEO F

    To see if I can help or at least explain what's happening, buy a MSI P35 NEO F for using a quad, the topic is as follows handling vcore is rare
    First thing I can not put less voltage that the cpu brings default, second what happens next if bios setting 1.3250 vcore for Quad, once in both windows everest, cpuz, like others programs tell me that this placed on 1.40 vcore which is excessive for the speed at which the quad, this is so in this mobo? Their story that was installed version 1.20 bios which handled vcore%, the upgrade to version 1.40 and is now handled in decimals (numbers) vcore, but still the problem
    You pull more vcore which setting in bios and if you want to download the vcore eg put 1.26 vcore not let you because it takes the vcore default of cpu minimum.
    i'm  not crashing or problems with the temperatures, but nobody likes to have more vcore's necessary.
    Wonder because being rookie of this mobo, maybe there's some bios version that fixes this bug or someone knows something else, thank you guys
    C2Q Q6600
    2 X 1GB G.SKILL 6400
    PSU 550 MODULAR TOPOWER
    -- SORRY FOR MY ENGLISH --

    You can slap 1.6v in that CPU and temps won't rise that much.
    Core 2 Duo/Quad operates @ 1.250-1.425, anywhere in between those values is perfectly stable for Intel stock cooler and frequency.
    Absolutely nothing to worry about. But if you want to complain about >1c I really can't see the sense in that.

  • Problem with non currency field calculations to become curr

    Hi guys,
    Is there a problem if I have a QUAN field and DEC field forming to become a CURR field? I mean a have this computation below:
    v_var1 = v_var2 * v_var3.
    where v_var1 type QUAN, v_var2 type DEC and v_var3 type CURR...
    would it incur any problem with the calculations?
    Thanks!

    Hi,
    Did you try ?
    Worked for me flawlessly
    tables bseg.
    parameters : qty like bseg-menge,
                       amt like bseg-dmbtr.
    data : result like bseg-dmbtr.
    result = qty * amt.
                write result.
    The only issue is that the result will be rounded upto 2 decimals.
    But if you declare result as
    data : result(13) type p decimals 3.
    Then there will be no issues.
    regards,
    Advait
    Edited by: Advait Gode on Oct 3, 2008 3:59 PM

  • Having Problem with JSP In Netscape!HELP!!!

    HI to all! I�m having problem with the jsp that i have :( If i use the Internet explorer it works but at Netscape... it doesn�t work :( The value of "PTE" is null... I need help !!!Please! I think the HTML IS NOT HELPING ...
    the code is :
    <html>
    <head>
    <!--tp001_transferencias_oic_POR.jsp-->
    <title>BBVA - Transfer&ecirc;ncias - Transfer&ecirc;ncias OIC</title>
    <LINK rel=STYLESHEET type='text/css' href="estilos/tablas.css">
    <!--script language="javascript" src "js/dynlayer.js"></script-->
    <script language="Javascript" src="js/banner.js"></script>
    <script language="Javascript" src="js/tp_oic.js"></script>
    <script language="Javascript" src="js/utilidades.js"></script>
    <script language="javascript" src="js/limpar.js"></script>
    <script language="javascript" src="js/tiempo.js"></script>
    </HEAD>
    <body marginheight="0" marginwidth="0" leftmargin="0" topmargin="0" class="pag-contenido" onLoad="controlSesion();">
    <%@ include file ="includecbtf.jsp" %>
    <% String s = (String)datos.get("dt");
    java.util.StringTokenizer str = new java.util.StringTokenizer(s, "-");
    String anoServer = str.nextToken() ;
    String mesServer = str.nextToken() ;
    String diaServer = str.nextToken() ;
    %>
    <!--1�form-->
    <form method="post" name="captura" action="<%=urls.get("action")%>">
    <center> <!--1�center-->
    <br>
    <!--1�table-->
    <table border="0" cellpadding="0" cellspacing="0" width="500"> <!--table das transf e nome-->
    <tr>
    <td colspan="3"><img src="images/linea.gif" border="0"></td>
    </tr>
    <tr>
    <td width="250"><img src="images/traspasos.gif" border="0"></td>
    <td width="82"><img src="images/titular.gif" border="0"></td>
    <td width="169" class="fondotitular"><font class="texttitular"><%=datos.get("usuario")%></font></td>
    </tr>
    <tr>
    <td colspan="3"><img src="images/linea.gif" border="0"></td>
    </tr>
    </table> <!--Fim do 1� table-->
    <br><br>
    </center> <!--Fim do 1� Center-->
    <center> <!--2� Center-->
    <!--Conteudo do table 2-->
    <table cellpadding="3" cellspacing="1" border="0" align="center" width="500"> <!--table referente a mensagem-->
    <tr>
    <td class="cabeceratitulo" colspan="2"><p class="titulotabla">Nota : As Transfer&ecirc;ncias para outras Institui&ccedil;&otilde;es de Cr&eacute;dito decorrem de acordo com os hor&aacute;rios da Compensa&ccedil;&atilde;o Interbanc&aacute;ria, n&atilde;o se responsabilizando o BBVA pela sua realiza&ccedil;&atilde;o fora das regras em uso.</p></td>
    </tr>
    <tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>
    </table> <!--fim do table2-->
    </center> <!--Fim do 2� Center-->
    <center> <!-- Inicio 3� Center-->
    <!--Conteudo da table Combo-->
    <!--Table3-->
    <table cellpadding="3" cellspacing="1" border="0" align="center" width="500">
    <tr>
    <td class="cabeceratitulo" colspan="2"><p class="titulotabla">Transfer&ecirc;ncia Conta a Conta para outras Institui&ccedil;&ocirc;es de Cr&eacute;dito</p></td>
    </tr>
    <tr>
    <td class="formgrisosc" width="100">
    <p class="dato">Conta Ordenante:  </p></td>
    <td class="formgrisosc" width="300">
         <%
    java.util.Vector v = (java.util.Vector)(datos.get("ListaCuentas"));
    java.util.Hashtable elem;
    java.util.Enumeration e = v.elements();
    %>
    <!--1� Select-->
    <select name="conta" size="1" class="formgrisosc">
    <%
    while (e.hasMoreElements()){
    elem = (com.ibm.dse.base.Hashtable)(e.nextElement());
    String cuenta = ((String)elem.get("s_banco")).trim() + "-"+((String)elem.get("s_oficina")).trim()+((String)elem.get("s_dcontrol")).trim()+((String)elem.get("s_num_cuenta")).trim();
    out.println("<option value=\"" + ((String)elem.get("s_tipo")) + "$" + ((String)elem.get("s_clave_asunto")) + "\">" + cuenta + "</option>");
    %>
    </select> <!--Fim do 1� Select-->
    </td>
    </tr>
    <tr>
    <td class="formgriscla" width="100"><p class="dato">Data de Processamento:</p></td>
    <td class="formgriscla">
    <input type="text" name="dia" size="2"class="formgriscla" value="<%=diaServer %>" maxlength="2" class="formgriscla"> / 
    <input type="text" name="mes" size="2"class="formgriscla" value="<%=mesServer %>" maxlength="2" class="formgriscla"> / 
    <input type="text" name="ano" size="4"class="formgriscla" value="<%=anoServer %>" maxlength="4" class="formgriscla"></td>
    <input type="hidden" name="dact" size="2"class="formgriscla" value="<%=diaServer %>" maxlength="2" class="formgriscla">
    <input type="hidden" name="mact" size="2"class="formgriscla" value="<%=mesServer %>" maxlength="2" class="formgriscla">
    <input type="hidden" name="aact" size="4"class="formgriscla" value="<%=anoServer %>" maxlength="4" class="formgriscla"></td>
    </tr>
    <tr>
    <td class="formgrisosc" width="100"><p class="dato">Moeda: </p></td>
    <td class="formgrisosc"><p class="dato">
    <!--Select 2�Ver este bem-->
    <select name="Moeda" size="1" class="formgrisosc">
    <option value="PTE" selected>Escudos</option>      
    <option value="EUR">Euros</option>
    </select> </p>
    </td>
    </tr>
    <tr>
    <td class="formgriscla" width="100"><p class="dato">Import&acirc;ncia:</p></td>
    <td class="formgriscla"><input type="text" name="importancia" size="20" maxlength="15" class="formgriscla"></td>
    </tr>
    <tr>
    <td class="formgrisosc" width="100"><p class="dato">Ref&ecirc;rencia:</p></td>
    <td class="formgrisosc"><input type="text" name="ref" size="15" maxlength="10" class="formgrisosc"></td>
    </tr>
    <tr>
    <td class="formgriscla" width="100"><p class="dato">NIB Benefici&aacute;rio:</p></td>
    <td class="formgriscla"><input type="text" name="nibBeneficiario" size="30" maxlength="21" class="formgriscla"></td>
    </tr>
    <tr>
    <td class="formgrisosc" width="100"><p class="dato">Descri&ccedil;&atilde;o p/ Conta D&eacute;bito:</p></td>
    <td class="formgrisosc"><input type="text" name="debito" size="45" maxlength="45" class="formgrisosc"></td>
    </tr>
    <tr>
    <td class="formgriscla" width="100"><p class="dato">Descri&ccedil;&atilde;o p/ Conta Cr&eacute;dito:</p></td>
    <td class="formgriscla"><input type="text" name="credito" size="45" maxlength="45" class="formgriscla"></td>
    </tr>
    <tr>
    <td class="cabecera" colspan="2"><img src="images/1x1.gif" width=1 height=3 border="0"></td>
    </tr>
    </table> <!--Fim do table 3-->
    </center> <!--Fim do 3�center-->
    <center> <!--Inicio do 4� Center-->
    <!--Inicio da table 4�-->
    <table border="0" cellspacing="2" cellpadding="0">
    <tr>
    <td valign="top"><img src="images/limpar.gif" border="0" alt="Apagar"></td>
    <td valign="top"><img src="images/continuar.gif" border="0" alt="Continuar"></td>
    </tr>
    </table> <!--Fim do 4� Table-->
    </form> <!--Fim do FORM-->
    </center> <!--Fim do 4� Center-->
    </body> <!--Fim do BODY-->
    </html> <!--Fim do Html-->
    Thanks pepole!

    thanks people! when i try to validate the action "PTE" he gaves me (if i put a ALERT...) null.
    the js code is : (Moeda is coin )
    //testa amount
    // var ent = (f.amount.value);
    var tamanho = f.amount.value.length;
    var valor = f.amount.value;
    decimals = 2; // Apenas pode ter duas casas decimais?
    if (((tamanho == 0) || (valor == 0)) && ok)
    alert ("A import�ncia tem de ser maior que zero.");
    f.amount.focus();
    f.amount.select();
    ok = false;
    else
         alert(f.Moeda.value);
    if((f.Moeda.value=="PTE") && ok)
    for (j = 0; j < tamanho; j++)
    xx = valor.charAt(j);     
         if ((!(xx.match(numeroER)) && ok))
    alert ("O Campo Import�ncia deve ser num�rico inteiro.");     
         f.amount.focus();
         f.amount.select();
         ok = false;
              //if para limitar valor dos Escudos      
         if (ok)
         if (eval(valor) > 1000000)
         alert ("The field amount must be maxium 1 000 000 Pte.");     
         f.amount.focus();
         f.amount.select();
         ok = false;
    else
         if (ok)
              //function checkDecimals(f.amount, f.importancia.value) {
              if (isNaN(valor)) {
                   alert("O Campo Import�ncia deve ser num�rico e como separador decimal, o ponto.");
                   f.amount.select();
                   f.amount.focus();
                   ok = false;
              else {
                   timeshundred = parseFloat(valor * Math.pow(10, decimals));
                   integervalue = parseInt(parseFloat(valor) * Math.pow(10, decimals));
                   if (timeshundred != integervalue)
                   alert ("Apenas pode ter " + decimals + " casas decimais. Por favor tente outra vez.");
                   f.amount.select();
                   f.amount.focus();
                   ok = false;
              if (ok)
              {  //if to limit the value of the  Euros
         if(eval(valor) > 4988)
    alert ("The field amount must be maxium 4988 Eur.");     
         f.amount.focus();
         f.amount.select();
         ok = false;
    }//end of amount

  • Problem with decimal

    Hi Experts,
    I'm having a problem with decimal.
    I have a alv data grid that can be edited.Once I press enter the value for the decimal fields are changed.
    Example: If i input 5.00 in the field then I press enter it converts it to 0.05
    And If I input 2.01 in the field it shows an error Too many decimal places(Maximum 0)
    DATA INPUT for my internal table:
    DATA: BEGIN OF it_data OCCURS 0,
       docno LIKE zit_haul_line-docno,
       line  LIKE zit_haul_line-line,
       eqpno LIKE zit_haul_line-eqpno,
       rpt LIKE zit_haul_line-rpt,
       notrip LIKE zit_haul_line-notrip,
       trc LIKE zit_haul_line-trc,
       escfee LIKE zit_haul_line-escfee,
       tollfee LIKE zit_haul_line-tollfee,
       repr LIKE zit_haul_line-repr,
       others LIKE zit_haul_line-others,
       tba LIKE zit_haul_line-tba,
       dik LIKE zit_haul_line-dik,
       locorg LIKE zit_haul_line-locorg,
       locdes LIKE zit_haul_line-locdes,
    END OF it_data.
    DATA: wa_data LIKE it_data.
    Here is my code in change ALV Change.
    FORM data_changed USING ir_data_changed TYPE REF TO cl_alv_changed_data_protocol.
       DATA ls_modi TYPE lvc_s_modi.
       DATA: ratepertrip LIKE zit_haul_line-rpt,
             nooftrip LIKE zit_haul_line-notrip,
             lv_value TYPE lvc_value ,
             totalrent LIKE zit_haul_line-trc,
             escortfee LIKE zit_haul_line-escfee,
             tollfee LIKE zit_haul_line-tollfee,
             represent LIKE zit_haul_line-repr,
             others LIKE zit_haul_line-others,
             lv_value1 TYPE lvc_value,
             totalbill LIKE zit_haul_line-tba.
       DATA: eqpno LIKE equi-equnr,
             gv_equnr LIKE equi-equnr.
    * Check each modification:
       LOOP AT ir_data_changed->mt_mod_cells INTO ls_modi.
          CASE ls_modi-fieldname.
           WHEN 'EQPNO'.
             CONDENSE ls_modi-value.
             SELECT SINGLE equnr
               INTO gv_equnr
               FROM equi
               WHERE equnr EQ ls_modi-value.
             IF sy-subrc NE 0.
               CALL METHOD ir_data_changed->add_protocol_entry
                 EXPORTING
                   i_msgid     = '00'
                   i_msgty     = 'E'
                   i_msgno     = '398'
                   i_msgv1     = 'Equipment Number does not exist:'
                   i_msgv2     = ls_modi-value
                   i_msgv3     = ''
                   i_msgv4     = ''
                   i_fieldname = ls_modi-fieldname
                   i_row_id    = ls_modi-row_id.
             ENDIF.
         ENDCASE.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'RPT'
         IMPORTING e_value = ratepertrip.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'NOTRIP'
         IMPORTING e_value = nooftrip.
       CLEAR totalrent.
         ls_modi-fieldname = 'TRC'.
         IF ratepertrip = ''.
           ratepertrip = 1.
         ELSEIF nooftrip = ''.
           nooftrip = 1.
         ENDIF.
         totalrent = ratepertrip * nooftrip.
         CALL METHOD ir_data_changed->modify_cell
           EXPORTING i_row_id = ls_modi-row_id
           i_fieldname = ls_modi-fieldname
           i_value = totalrent.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'ESCFEE'
         IMPORTING e_value = escortfee.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'TOLLFEE'
         IMPORTING e_value = tollfee.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'REPR'
         IMPORTING e_value = represent.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'OTHERS'
         IMPORTING e_value = others.
       CLEAR totalbill.
         ls_modi-fieldname = 'TBA'.
         totalbill = escortfee + tollfee + represent + others.
         totalbill = totalrent + totalbill.
         CALL METHOD ir_data_changed->modify_cell
           EXPORTING i_row_id = ls_modi-row_id
           i_fieldname = ls_modi-fieldname
           i_value = totalbill.
       ENDLOOP.
    ENDFORM.                    "data_changed

    Hi,
    Can you check my code. I've tried changing the data types of my internal table and my output is stll same when I press enter.
    The output should be 2.00 3.00 5.00 7.00
    Also if I enter 12345.00 the output should be 12,345.00.
    Thank you so much for the help.
    * ALV required data objects.
    TYPE-POOLS: sdydo, icon, slis.
    DATA: w_title     TYPE lvc_title,
           w_repid     TYPE sy-repid,
           w_comm      TYPE slis_formname,
           w_status    TYPE slis_formname,
           x_layout    TYPE slis_layout_alv,
           ls_events   TYPE LINE OF slis_t_event,
           t_events    TYPE slis_t_event,
           t_fieldcat  TYPE slis_t_fieldcat_alv,
           x_sort      type LINE OF slis_t_sortinfo_alv,
           t_sort      TYPE slis_t_sortinfo_alv,
           ls_heading  TYPE slis_listheader,
           t_heading   TYPE slis_t_listheader,
           ls_fieldcat TYPE slis_fieldcat_alv,
           gs_variant  LIKE disvariant,
            gt_events            TYPE slis_t_event,
            gs_events            TYPE slis_alv_event.
    DATA:
       wa_layout     TYPE slis_layout_alv,
       wa_events         TYPE slis_alv_event,
       wa_sort TYPE slis_sortinfo_alv.
    TYPES: BEGIN OF t_header,
            line01(555) TYPE c,
            line02(555) TYPE c,
            END OF t_header.
    DATA: is_print TYPE slis_print_alv,
           gset TYPE lvc_s_glay,
           %runmode TYPE aqlimode.
    data: it_sortcat   type slis_sortinfo_alv occurs 1.
    DATA: gw_header  TYPE t_header.
    " END OF ALV DATA
    "========================================================================================================================
    DATA: BEGIN OF it_data OCCURS 0,
       docno LIKE zit_haul_line-docno,
       line  LIKE zit_haul_line-line,
       eqpno LIKE zit_haul_line-eqpno,
       rpt TYPE p DECIMALS 2,  "LIKE zit_haul_line-rpt,
       notrip TYPE p DECIMALS 2,
       trc TYPE p DECIMALS 2,
       escfee TYPE p DECIMALS 2,
       tollfee TYPE p DECIMALS 2,
       repr TYPE p DECIMALS 2,
       others TYPE p DECIMALS 2,
       tba TYPE p DECIMALS 2,
       dik LIKE zit_haul_line-dik,
       locorg LIKE zit_haul_line-locorg,
       locdes LIKE zit_haul_line-locdes,
    END OF it_data.
    DATA: wa_data LIKE it_data.
    DATA: it_modified TYPE STANDARD TABLE OF zit_haul_line WITH HEADER LINE.
    DATA: wa_modified TYPE STANDARD TABLE OF zit_haul_line WITH HEADER LINE.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
    PARAMETERS: r_create RADIOBUTTON GROUP rad1  USER-COMMAND a DEFAULT 'X'.
       SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
       PARAMETERS: r_proj RADIOBUTTON GROUP rad2 MODIF ID A.
       PARAMETERS: r_cost RADIOBUTTON GROUP rad2 MODIF ID A.
       SELECTION-SCREEN END OF BLOCK b2.
    PARAMETERS: r_post RADIOBUTTON GROUP rad1.
    PARAMETERS: r_rev RADIOBUTTON GROUP rad1.
       SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME.
         PARAMETERS: p_docno LIKE mseg-belnr MODIF ID B,
                     p_post LIKE sy-datum MODIF ID B.
       SELECTION-SCREEN END OF BLOCK b3.
    SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME.
    PARAMETERS: p_trand LIKE sy-datum,
                 p_cost LIKE csks-kostl,
                 p_proj TYPE string,
                 p_wbs TYPE string,
                 p_nwa TYPE string.
    SELECTION-SCREEN END OF BLOCK b4.
    SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
       IF r_create = 'X'.
         IF screen-group1 = 'A'.
            screen-active = 1.
         ENDIF.
       ELSE.
         IF screen-group1 = 'A'.
            screen-active = 0.
         ENDIF.
       ENDIF.
       IF r_post = 'X' OR r_rev = 'X'.
         IF screen-group1 = 'B'.
            screen-active = 1.
         ENDIF.
       ELSE.
         IF screen-group1 = 'B'.
            screen-active = 0.
         ENDIF.
       ENDIF.
       MODIFY SCREEN.
    ENDLOOP.
    START-OF-SELECTION.
    PERFORM get_data.
    PERFORM display_report.
    FORM get_data.
    it_data-line = '001'.
    APPEND it_data.
    it_data-line = '002'.
    APPEND it_data.
    it_data-line = '003'.
    APPEND it_data.
    it_data-line = '004'.
    APPEND it_data.
    it_data-line = '005'.
    APPEND it_data.
    it_data-line = '006'.
    APPEND it_data.
    it_data-line = '007'.
    APPEND it_data.
    it_data-line = '008'.
    APPEND it_data.
    it_data-line = '009'.
    APPEND it_data.
    it_data-line = '010'.
    APPEND it_data.
    ENDFORM.
    "ALV DISPLAY ====================================================================================================================================
    "&      Form  PF_WRITE_FIELDCAT
    *&      Form  pf_write_fieldcat
    *       text
    *      -->FNAME      text
    *      -->TNAME      text
    *      -->TEXT       text
    *      -->LEN        text
    FORM pf_write_fieldcat  USING fname
                                   tname
                                   text
                                   len
                                   edt.
    *                              key
    *                              sum.
       ls_fieldcat-fieldname     = fname.
       ls_fieldcat-tabname       = tname.
       ls_fieldcat-seltext_l     = text.
       ls_fieldcat-outputlen     = len.
    *  ls_fieldcat-key           = key.
    *  ls_fieldcat-do_sum        = sum.
       ls_fieldcat-edit = edt.
       IF len = '0'.
         ls_fieldcat-outputlen     = '1'.
         ls_fieldcat-no_out = 'X'.
       ENDIF.
       APPEND ls_fieldcat TO t_fieldcat.
       CLEAR ls_fieldcat.
    *  To set ENTER Event!
       gs_events-name = 'CALLER_EXIT'.
       gs_events-form = 'CALLER_EXIT'.
       APPEND gs_events TO gt_events.
    *   To change the ALV Changed Protocoll
       gs_events-name = 'DATA_CHANGED'.
       gs_events-form = 'DATA_CHANGED'.
       APPEND gs_events TO gt_events.
    ENDFORM.                    " PF_WRITE_FIELDCAT
    *&      Form  display_report
    FORM display_report.
       is_print-no_print_selinfos = 'X'.
       is_print-no_print_listinfos = 'X'.
       is_print-print_ctrl = 'X'.
       PERFORM pf_write_fieldcat USING:
    *  'DOCNO'                  'IT_DATA'  'Line'                   ' ' '',
       'LINE'                  'IT_DATA'  'Line'                   ' ' '',
       'EQPNO'                 'IT_DATA'  'Equipment No.'          ' ' 'X',
       'RPT'           'IT_DATA'  'Rate per Trip'          ' ' 'X',
       'NOTRIP'              'IT_DATA'  'No of Trip'             ' ' 'X',
       'TRC'             'IT_DATA'  'Total Rental Charges'   ' ' '',
       'ESCFEE'             'IT_DATA'  'Escort Fee'             ' ' 'X',
       'TOLLFEE'               'IT_DATA'  'Toll Fee'               ' ' 'X',
       'REPR'             'IT_DATA'  'Representation'         ' ' 'X',
       'OTHERS'                'IT_DATA'  'Others'                 ' ' 'X',
       'TBA'               'IT_DATA'  'Total Billable Amount'  ' ' '',
       'DIK'              'IT_DATA'  'Distance in KM'         ' ' 'X',
       'LOCORG'             'IT_DATA'  'Location Origin'        ' ' 'X',
       'LOCDES'             'IT_DATA'  'Location Destination'   ' ' 'X'.
    * Layout
       x_layout-zebra = 'X'.
       x_layout-no_keyfix = ' '.
       x_layout-colwidth_optimize = 'X'.
    * GUI Status
       w_status = 'SET_PF_STATUS'.
       w_repid = sy-repid.
    * User commands
       w_comm = 'USER_COMMAND'.
    *  gs_variant-variant = p_var1.
    *  gs_variant-handle  = space.
    *  gs_variant-report  = sy-repid.
       gs_variant-report  = sy-repid.
       gs_variant-username = sy-uname.
       gset-no_colwopt = 'X'.
    * Displays the ALV grid
       CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
           i_callback_program = sy-repid
           it_fieldcat        = t_fieldcat
           is_layout          = x_layout
           "it_sort            = t_sort
           it_sort                 = it_sortcat
    *      i_callback_pf_status_set = w_status
           "i_callback_user_command  = w_comm
           I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    *      i_callback_html_top_of_page  = 'TOP_OF_PAGE'
           i_callback_top_of_page  = 'TOP-OF-PAGE'
    *      i_callback_html_end_of_list = 'END-OF-PAGE'
           is_variant         = gs_variant
           i_save             = 'A'
           is_print           = is_print
           it_events          = gt_events
    *      i_grid_title       = w_title
         TABLES
           t_outtab           = IT_DATA
         EXCEPTIONS
           program_error      = 1
           OTHERS             = 2.
    ENDFORM.                    " display_report
    FORM data_changed USING ir_data_changed TYPE REF TO cl_alv_changed_data_protocol.
       DATA ls_modi TYPE lvc_s_modi.
       DATA: ratepertrip LIKE zit_haul_line-rpt,
             nooftrip LIKE zit_haul_line-notrip,
             lv_value TYPE lvc_value ,
             totalrent LIKE zit_haul_line-trc,
             escortfee LIKE zit_haul_line-escfee,
             tollfee LIKE zit_haul_line-tollfee,
             represent LIKE zit_haul_line-repr,
             others LIKE zit_haul_line-others,
             lv_value1 TYPE lvc_value,
             totalbill LIKE zit_haul_line-tba.
       DATA: eqpno LIKE equi-equnr,
             gv_equnr LIKE equi-equnr.
    * Check each modification:
       LOOP AT ir_data_changed->mt_mod_cells INTO ls_modi.
          CASE ls_modi-fieldname.
           WHEN 'EQPNO'.
             CONDENSE ls_modi-value.
             SELECT SINGLE equnr
               INTO gv_equnr
               FROM equi
               WHERE equnr EQ ls_modi-value.
             IF sy-subrc NE 0.
               CALL METHOD ir_data_changed->add_protocol_entry
                 EXPORTING
                   i_msgid     = '00'
                   i_msgty     = 'E'
                   i_msgno     = '398'
                   i_msgv1     = 'Equipment Number does not exist:'
                   i_msgv2     = ls_modi-value
                   i_msgv3     = ''
                   i_msgv4     = ''
                   i_fieldname = ls_modi-fieldname
                   i_row_id    = ls_modi-row_id.
             ENDIF.
         ENDCASE.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'RPT'
         IMPORTING e_value = ratepertrip.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'NOTRIP'
         IMPORTING e_value = nooftrip.
       CLEAR totalrent.
         ls_modi-fieldname = 'TRC'.
         IF ratepertrip = ''.
           ratepertrip = 1.
         ELSEIF nooftrip = ''.
           nooftrip = 1.
         ENDIF.
         totalrent = ratepertrip * nooftrip.
         CALL METHOD ir_data_changed->modify_cell
           EXPORTING i_row_id = ls_modi-row_id
           i_fieldname = ls_modi-fieldname
           i_value = totalrent.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'ESCFEE'
         IMPORTING e_value = escortfee.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'TOLLFEE'
         IMPORTING e_value = tollfee.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'REPR'
         IMPORTING e_value = represent.
       CALL METHOD ir_data_changed->get_cell_value
         EXPORTING i_row_id = ls_modi-row_id
         i_fieldname = 'OTHERS'
         IMPORTING e_value = others.
       CLEAR totalbill.
         ls_modi-fieldname = 'TBA'.
         totalbill = escortfee + tollfee + represent + others.
         totalbill = totalrent + totalbill.
         CALL METHOD ir_data_changed->modify_cell
           EXPORTING i_row_id = ls_modi-row_id
           i_fieldname = ls_modi-fieldname
           i_value = totalbill.
       ENDLOOP.
    ENDFORM.                    "data_changed
    FORM caller_exit USING is_data TYPE slis_data_caller_exit.
    * Switch to OO_ALV:
       DATA: lr_alv TYPE REF TO cl_gui_alv_grid.
       CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
         IMPORTING
           e_grid = lr_alv.
    * Register ENTER as edit event:
       CALL METHOD lr_alv->register_edit_event
         EXPORTING
           i_event_id = cl_gui_alv_grid=>mc_evt_enter.
    * pls. use MC_EVT_MODIFIED if leaving the cell should trigger the edit event!
    ENDFORM. "CALLER_EXIT
    *&      Form  TOP-OF-PAGE
    *       text
    FORM top-of-page.
    *ALV Header declarations
       DATA: t_header TYPE slis_t_listheader,
             wa_header TYPE slis_listheader,
             t_line LIKE wa_header-info,
             ld_lines TYPE i,
             ld_linesc(10) TYPE c.
       DATA: text TYPE sdydo_text_element,
             a_right   TYPE REF TO cl_dd_area.
       DATA: tran TYPE string,
             send TYPE string,
             wbs TYPE string,
             nwa TYPE string.
       text = 'Create Hauling Charges for Project'.
       wa_header-typ  = 'S'.
       wa_header-info = text.
       APPEND wa_header TO t_header.
       CLEAR: wa_header.
       gw_header-line01 = text.
       CONCATENATE 'Transaction Date: ' p_trand INTO tran SEPARATED BY space.
       text = tran.
       wa_header-typ  = 'S'.
       wa_header-info = text.
       APPEND wa_header TO t_header.
       CLEAR: wa_header.
       gw_header-line01 = text.
       CONCATENATE 'Sender Cost Center: ' p_cost INTO send SEPARATED BY space.
       text = send.
       wa_header-typ  = 'S'.
       wa_header-info = text.
       APPEND wa_header TO t_header.
       CLEAR: wa_header.
       gw_header-line01 = text.
       CONCATENATE 'Receiver WBS: ' p_wbs INTO wbs SEPARATED BY space.
       text = wbs.
       wa_header-typ  = 'S'.
       wa_header-info = text.
       APPEND wa_header TO t_header.
       CLEAR: wa_header.
       gw_header-line01 = text.
       CONCATENATE 'Receiver Network and NWA: ' p_nwa INTO nwa SEPARATED BY space.
       text = nwa.
       wa_header-typ  = 'S'.
       wa_header-info = text.
       APPEND wa_header TO t_header.
       CLEAR: wa_header.
       gw_header-line01 = text.
       CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
         EXPORTING
           it_list_commentary = t_header.
    ENDFORM.                    "top-of-page
    FORM pf_set_top_page_heading  USING typ
                                         key
                                         info.
       ls_heading-typ = typ.
       ls_heading-key = key.
       ls_heading-info = info.
       APPEND ls_heading TO t_heading.
    ENDFORM.                    " PF_SET_TOP_PAGE_HEADING
    *&      Form  PF_SET_TOP_PAGE_EVENTS
    FORM pf_set_top_page_events  USING name
                                        form.
       ls_events-name = name.
       ls_events-form = form.
       APPEND ls_events TO t_events.
       CLEAR ls_events.
    ENDFORM.                    " PF_SET_TOP_PAGE_EVENTS
    *&      Form  REUSE_ALV_GET_VARIANT
    FORM reuse_alv_get_variant
       USING    value(iv_repid)   TYPE  sy-repid
                value(iv_handle)  TYPE  slis_handl
       CHANGING iv_variant        TYPE  disvariant-variant.
       DATA: lv_exit(1) TYPE c,
             ls_variant TYPE disvariant.   " Structure for Variant
       MOVE: iv_variant TO ls_variant-variant,
             iv_handle  TO ls_variant-handle,
             iv_repid   TO ls_variant-report.
       CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
         EXPORTING
           is_variant    = ls_variant
           i_save        = 'A'
         IMPORTING
           e_exit        = lv_exit
           es_variant    = ls_variant
         EXCEPTIONS
           not_found     = 1
           program_error = 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.
       IF lv_exit = space.
         MOVE ls_variant-variant TO iv_variant.
       ENDIF.
    ENDFORM.                    " REUSE_ALV_GET_VARIANT                 "
    FORM user_command USING w_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
    CASE w_ucomm.
    WHEN '&DATA_SAVE'.
    *  READ TABLE it_data INTO wa_data." INDEX rs_selfield-tabindex.
       DELETE it_data WHERE eqpno IS INITIAL.
       LOOP AT it_data INTO wa_data.
         CONDENSE wa_data-eqpno.
         MOVE-CORRESPONDING wa_data TO wa_modified.
         APPEND wa_modified TO it_modified.
       ENDLOOP.
       MODIFY zit_haul_line FROM TABLE it_modified.
    ENDCASE.
    ENDFORM. "user_command

  • Problem with file receiving through abap web service

    Hi experts,
    I need to created web service for import file from .NET application into SAP.
    ABAP function expect hexadecimal string (same as GUI_UPLOAD / GUI_DOWNLOAD) but hexadecimal string from C# is too long (double longer), and I have no idea how to convert it. Also there is a problem with code page...
    Is there some better way to do this? Any idea is welcome!

    Hi Nemanja,
    Please bear in mind that your SAP system is based on UTF-8 encoding. Since you have the xstring length doubled, most probably your sender system uses UTF-16 encoding. So what you need to do is change the encoding used by your .NET application when sending the data to SAP.
    Alternatively, you can try using XSL Transformations in ABAP to have the input data converted from UTF-16-encoded xstring to ABAP structures. You can find a little example in this thread: ABAP data to XML conv with UTF-8 encoding and custom namespace. The point is to start your XSLT with the following: <?xml version="1.0" encoding="utf-16"?>.
    Hope this helps,
    Greg

  • Problem with alv subtotals

    i have problem with subtotals display in AVL
    actually my code is
    FORM fill_field_catalog_table USING  f d  t s I.
      DATA t_fld TYPE slis_fieldcat_alv.
      STATICS pos LIKE sy-index VALUE 0.
      pos = pos + 1.
      CLEAR t_fld.
      MOVE 1 TO   t_fld-row_pos.
      MOVE pos TO t_fld-col_pos.
      MOVE f TO   t_fld-fieldname.
      MOVE d TO   t_fld-seltext_m.
      MOVE t TO   t_fld-tabname.
      MOVE s TO   t_fld-do_sum.
      MOVE I TO   t_fld-NO_OUT.
      if not t_fld-NO_OUT is initial.      "based on a condition i am appendding the fieldcatlog
       APPEND t_fld TO it_fieldcat.
      endif.
    if i remove "if not t_fld-NO_OUT is initial."  this condition and append the fieldcat....
    subtotals is getting dispalyed.
    if i insert this code subtotals is not getting displayed...
    can any body help me out in this fashion...
    any input are required please fell free to contact me.
    madan

    Hi Madan,
    NO_OUT value range is 'SPACE' and 'X'
    check if u have gone wrong there
    SPACE is not same as INITIAL.
    Also go through the following piece of code..
    Execute it, u will understand it. At places comments will help u to understand better.
    *& Report  ZRAJ_SUBTOTAL_ALV
    REPORT  ZRAJ_SUBTOTAL_ALV.
    TYPE-POOLS: SLIS.
    DATA: G_REPID LIKE SY-REPID,
          GT_SORT TYPE SLIS_T_SORTINFO_ALV,
          GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
          GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,
          COL_POS TYPE I.
    DATA: BEGIN OF ITAB,
      FIELD1(5) TYPE C,
      FIELD2(5) TYPE C,
      FIELD3(5) TYPE P DECIMALS 2,
          END OF ITAB.
    DATA: BEGIN OF ITAB1 OCCURS 0.
            INCLUDE STRUCTURE ITAB.
    DATA: END OF ITAB1.
    DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.
            INCLUDE STRUCTURE ITAB.
    DATA: END OF ITAB_FIELDCAT.
    INITIALIZATION.
      G_REPID = SY-REPID.
    START-OF-SELECTION.
    * TEST DATA
      MOVE 'TEST1' TO ITAB1-FIELD1.
      MOVE 'TEST1' TO ITAB1-FIELD2.
      MOVE '10.00' TO ITAB1-FIELD3.
      APPEND ITAB1.
      MOVE 'TEST2' TO ITAB1-FIELD1.
      MOVE 'TEST2' TO ITAB1-FIELD2.
      MOVE '20.00' TO ITAB1-FIELD3.
      APPEND ITAB1.
      DO 50 TIMES.
        APPEND ITAB1.
      ENDDO.
    END-OF-SELECTION.
      PERFORM BUILD_CATALOG.
      PERFORM ALV_DISPLAY.
    *&      Form  build_catalog
    *       text
    FORM BUILD_CATALOG.
      DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.
      CLEAR FIELDCAT_IN.
      FIELDCAT_LN-FIELDNAME = 'FIELD1'.
      FIELDCAT_LN-TABNAME = 'ITAB1'.
    *FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT
      FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY
      FIELDCAT_LN-NO_OUT = ' '.
      FIELDCAT_LN-SELTEXT_L = 'HEAD1'.
      APPEND FIELDCAT_LN TO GT_FIELDCAT.
      CLEAR FIELDCAT_IN.
      FIELDCAT_LN-FIELDNAME = 'FIELD2'.
      FIELDCAT_LN-TABNAME = 'ITAB1'.
      FIELDCAT_LN-NO_OUT = 'X'.
      FIELDCAT_LN-SELTEXT_L = 'HEAD2'.
      APPEND FIELDCAT_LN TO GT_FIELDCAT.
      CLEAR FIELDCAT_IN.
      FIELDCAT_LN-FIELDNAME = 'FIELD3'.
      FIELDCAT_LN-TABNAME = 'ITAB1'.
      FIELDCAT_LN-NO_OUT = ' '.
      FIELDCAT_LN-DO_SUM = 'X'. "SUM UPON DISPLAY
      APPEND FIELDCAT_LN TO GT_FIELDCAT.
    * DATA SORTING AND SUBTOTAL
      DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.
      CLEAR GS_SORT.
      GS_SORT-FIELDNAME = 'FIELD1'.
      GS_SORT-SPOS = 1.
      GS_SORT-UP = 'X'.
      GS_SORT-SUBTOT = 'X'. "This is an important statement
      APPEND GS_SORT TO GT_SORT.
      CLEAR GS_SORT.
      GS_SORT-FIELDNAME = 'FIELD2'.
      GS_SORT-SPOS = 2.
      GS_SORT-UP = 'X'.
    *GS_SORT-SUBTOT = 'X'. "Note: This should be commented
      APPEND GS_SORT TO GT_SORT.
    ENDFORM.                    "build_catalog
    *&      Form  alv_display
    *       text
    FORM ALV_DISPLAY.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
      EXPORTING
    * I_INTERFACE_CHECK = ' '
    * I_BYPASSING_BUFFER =
    * I_BUFFER_ACTIVE = ' '
      I_CALLBACK_PROGRAM = G_REPID
    * I_CALLBACK_PF_STATUS_SET = ' '
    * I_CALLBACK_USER_COMMAND = ' '
      I_STRUCTURE_NAME = 'ITAB1'
      IS_LAYOUT = GS_LAYOUT
      IT_FIELDCAT = GT_FIELDCAT[]
    * IT_EXCLUDING =
    * IT_SPECIAL_GROUPS =
      IT_SORT = GT_SORT[]
    * IT_FILTER =
    * IS_SEL_HIDE =
    * I_DEFAULT = 'X'
    * I_SAVE = ' '
    * IS_VARIANT =
    *  IT_EVENTS =
    * IT_EVENT_EXIT =
    *  IS_PRINT =
    * IS_REPREP_ID =
    * I_SCREEN_START_COLUMN = 0
    * I_SCREEN_START_LINE = 0
    * I_SCREEN_END_COLUMN = 0
    * I_SCREEN_END_LINE = 0
    * IMPORTING
    * E_EXIT_CAUSED_BY_CALLER =
    * ES_EXIT_CAUSED_BY_USER =
      TABLES
      T_OUTTAB = ITAB1
      EXCEPTIONS
      PROGRAM_ERROR = 1
      OTHERS = 2.
    ENDFORM.                    "alv_display
    hope this will solve your problem
    Regards Rajan.

  • InfoSpoke and comma separation for decimals problem.

    Hi there,
    I have an Infospoke that executes well and the data is being sent to the .CSV file with no problem. The problem is that my Key Figure output in the origin's ODS has the decimals separation with a comma  Example:   14.900,05  but in the CSV file generated from this InfoSpoke, the decimal separation is with a point and without thousands separation: Example:  148900.05
    I need my CSV file to have the same output as in the Origin's ODS.
    How could I do it?
    Thanks

    I'm on BW 3.5, so I can't use 7.0 version.
    What do you mean use the appropriate type of KeyFigure. I can change the Key Fegure to whatever I want. The one i use now is the staddart 0AMOUNT, that already has a normal  2 decimal point separated with a comma in my ODS. When I see the data in a ODS, I see it well - 19.500,00  but in a flatfile it's 19500.00
    And what about this transformation thing? Could you give me the steps and the example of a code and where should I put it?
    If you don't know the code or doesn't have the time, just tell me where should I write it and I'll ask an ABAPer to do it.
    Thanks and Cheers!

Maybe you are looking for