Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    problema con funzione jsp richiamata

    In questo codice jsp:

    <%!
    out.println ("<td align='center'>");
    out.println ("<input type='text' onkeypress='calcolatot()'
    name='rec"+j+"col1' maxlength='3' size='2' value='"+ oreord
    +"'>");
    out.println ("</td>");
    %>

    dove calcolatot() fa semplicemente:

    alert("ciao");


    la funzione non viene eseguita e se visualizzo la pagina HTML non viene considerata.
    qualcuno ha un'idea del motivo?
    grazie.
    grazia

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    cambia <%! con <%
    mica hai messo solo un td, hai messo anche <html> <body> e altro ??

  3. #3
    perchè, che differenza c'è tra i 2?
    grazia

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    <%! dichiarazione
    String pippo;

    <% codice
    for (int i=0; ...

  5. #5
    ok, però io ho bisogno di richiamare la funzione "calcolatot()" nella parte dichiarazione, perchè il loop che crea il TD di quei campi ai quali associo la funzione è scritto li dentro.

    Forse c'è qualcosa che mi sfugge, visto che sono molto inesperta, comunque ti mando il pezzo di codice per intero per farti capire.
    grazie

    <%!
    public int StampaForm (int id_utente, GregorianCalendar date, JspWriter out, int n_newrighe, int nOffset, Connection con)
    throws IOException, SQLException
    {
    Logger logger = Logger.getLogger ("pagina_ore_jsp");
    int n_righemod =0;
    Object[] ao = getCommesse(id_utente,date,con);
    int [] anId = (int[])ao[0];
    String [] astrCommesse = (String [])ao[1];
    String [] astrCodComm = (String [])ao[2];
    String [] astrDenom = (String [])ao[3];
    String my_date = "'"+ date.get(Calendar.YEAR)+"-" +
    (date.get(Calendar.MONTH)+1)+ "-" +
    date.get(Calendar.DATE)+"'";
    Statement statement = con.createStatement();
    String select = new String (
    "SELECT o.id, o.id_commessa, nome, ore_ord, ore_straord, ore_viaggio, note, "+
    "bloccata, c.cod_commessa, o.costo_orario "+
    "FROM ore_giornaliere o, commesse c, allocazione_utente a " +
    "WHERE o.id_utente = "+id_utente+
    " AND data=" + my_date +
    " AND c.id = o.id_commessa"+
    " AND a.id_utente = "+id_utente+
    " AND c.id = a.id_commessa ");
    logger.info("Sono nella StampaForm() select: "+select);
    ResultSet rs = statement.executeQuery(select);

    int j= nOffset;
    String cod_comm = "";
    String nome = "";
    String note = "";

    // Righe gia' esistenti
    while(rs.next())
    {
    int id = rs.getInt(1);
    int id_commessa = rs.getInt(2);
    nome = rs.getString(3);
    float oreord = rs.getFloat(4);
    float orestraord = rs.getFloat(5);
    float oreviaggio = rs.getFloat(6);
    note = rs.getString(7);
    int bloc = rs.getInt(8);
    cod_comm = rs.getString(9);
    double dCostoOrario= rs.getDouble(10);
    if(bloc == 1)
    {
    // CAMPI VISIBILI, PER INPUT UTENTE
    out.println("<tr bgcolor='#D3D3D3'>");
    out.println("<td align = 'left' bgcolor='#D3D3D3'>"+nome+"</td>");
    out.println("<td align='center' bgcolor='#D3D3D3'>"+oreord+"</td>");
    out.println("<td align='center' bgcolor='#D3D3D3'>"+orestraord+"</td>");
    out.println("<td align='center' bgcolor='#D3D3D3'>"+oreviaggio+"</td>");
    out.println("<td align='center' bgcolor='#D3D3D3'>"+note+"</td>");
    }
    else
    {
    out.println ("<input type='hidden' name='rec"+j+"index1' value='"+id+"'>");
    out.println ("<input type='hidden' name='rec"+j+"col6' value='"+id_utente+"'>");
    out.println ("<input type='hidden' name='rec"+j+"col7' value=\""+"'" +
    date.get(Calendar.YEAR)+"-"+
    (date.get(Calendar.MONTH)+1)+"-"+
    date.get(Calendar.DATE)+ "'"+"\">");
    out.println ("<input type='hidden' name='rec"+j+"col5' value='"+bloc+"'>");
    out.println ("<input type='hidden' name='rec"+j+"valid' value='0'>");
    out.println ("<input type='hidden' name='rec"+j+"col9' value='"+dCostoOrario+"'>");

    // CAMPI VISIBILI, PER INPUT UTENTE
    out.println ("<tr>");
    out.println ("<td width=100 align='center'>");
    out.println ("<select name='rec"+j+"col8' width='100' maxlenght='30'>");

    for (int i=0; i<astrCommesse.length; i++)
    {
    if (id_commessa== anId[i])
    out.println("<Option value ='"+ anId[i]+ "' selected>"+astrCodComm[i]+" - "+astrDenom[i]+" - "+astrCommesse[i]+"</option>");
    else
    out.println("<Option value ='"+ anId[i]+"'>"+astrCodComm[i]+" - "+astrDenom[i]+" - "+astrCommesse[i]+"</option>");
    }
    out.println("</select>");
    out.println ("</td>");
    out.println ("<td align='center'>");

    //************************************************** ***********
    //*********QUESTA E' LA PARTE IN CUI DEVO RICHIAMARE LA FUNZIONE


    out.println ("<input type='text' onkeypress='calcolatot()' name='rec"+j+"col1' maxlength='3' size='2' value='"+ oreord +"'>");

    //************************************************** ***********





    out.println ("</td>");
    out.println ("<td align='center'>");
    out.println ("<input type='text' name='rec"+j+"col2' maxlength='3' size='2' value='"+ orestraord +"'>");
    out.println ("</td>");
    out.println ("<td align='center'>");
    out.println ("<input type='text' name='rec"+j+"col3' maxlength='3' size='2' value='"+ oreviaggio +"'>");
    out.println ("</td>");
    out.println ("<td align='center'>");
    out.println ("<input type='text' name='rec"+j+"col4' size ='100' value='"+ note+"'>");
    out.println ("</td>");
    out.println ("</tr>");
    j++;
    }
    }//chiudo il while
    // Righe vuote
    n_righemod = j-nOffset;
    // Controllo se devo applicare la nuova tariffa
    Statement statNewTariffa = con.createStatement();
    String selectNewTariffa = new String (
    "SELECT costo_orario, data_applicazione "+
    "FROM nuova_tariffa " +
    "WHERE id_utente = "+id_utente);
    logger.info("selectNewTariffa:"+selectNewTariffa);
    ResultSet rsNewTariffa = statNewTariffa.executeQuery(selectNewTariffa);
    if (rsNewTariffa.next())
    {
    // Aggiungo eventuale 0 ai: giorni o mesi.
    String strGiorno;
    String strMese;
    Integer giorno = new Integer(date.get(Calendar.DAY_OF_MONTH));
    Integer mese = new Integer(date.get(Calendar.MONTH)+1);

    if (giorno.intValue()<10)
    strGiorno = "0"+giorno.toString();
    else
    strGiorno = giorno.toString();
    strMese = mese.toString();
    if (mese.intValue()<10)
    strMese = "0"+mese.toString();
    else
    strMese = mese.toString();
    Integer nAnno = new Integer(date.get(Calendar.YEAR));
    String strAnno = nAnno.toString();
    String my_new_date = strAnno+"-"+strMese+"-"+strGiorno;

    // Se la data attuale è successiva alla data di applicazione della nuova tariffa
    //if(dataC.getTime().compareTo(rsNewTariffa.getDate( "data_applicazione"))>=0)
    //if(my_date.equals(rsNewTariffa.getDate("data_appli cazione").toString()))
    //if(java.sql.Date.valueOf(strData).compareTo(rsNewT ariffa.getDate("data_applicazione"))==0)


    /************************
    Resta da risolvere il caso in cui l'utente decida di inserire delle ore
    per il mese successivo a quello attuale, in cui potrebbe essere stata modificata
    la tariffa.
    ****************************/

    if(java.sql.Date.valueOf(my_new_date).compareTo(rs NewTariffa.getDate("data_applicazione"))>=0)
    {
    // Devo applicare la nuova tariffa.
    double dNewTariffa = rsNewTariffa.getDouble(1);

    // Aggiornare la tariffa vecchia nella tabella 'tariffe' con la nuova.
    Statement statUpdTariffa = con.createStatement();
    String strUpdTariffa = new String ("UPDATE tariffe "+
    "SET costo_orario = "+dNewTariffa+
    " WHERE id_utente="+id_utente);

    logger.info("strUpdTariffa: "+strUpdTariffa);
    int nUpdTariffa = statUpdTariffa.executeUpdate(strUpdTariffa);
    // Controllare che l'update sia andato a buon fine.
    if(nUpdTariffa != 1)
    throw new SQLException
    ("Attenzione! Non è stato possibile effettuare\n " +
    "l'aggiornamento nella tabella tariffe.");

    // Cancellare la riga della nuova tariffa dalla tabella 'nuova_tariffa'.
    Statement statDelTariffa = con.createStatement();
    String strDelTariffa = new String ("DELETE FROM nuova_tariffa "+
    " WHERE id_utente="+id_utente);
    logger.info("strDelTariffa: "+strDelTariffa);
    int nDelTariffa = statDelTariffa.executeUpdate(strDelTariffa);
    // Controllare che l'update sia andato a buon fine.
    if(nDelTariffa != 1)
    throw new SQLException
    ("Attenzione! Non è stato possibile effettuare\n " +
    "la cancellazione nella tabella nuova_tariffa.");
    }
    }

    // Devo estrarre L'ATTUALE costo_orario dell'utente.
    Statement statCostoAttuale = con.createStatement();
    String selectCostoAttuale = new String (
    "SELECT costo_orario "+
    "FROM tariffe " +
    "WHERE id_utente = "+id_utente);
    ResultSet rsCostoAttuale = statCostoAttuale.executeQuery(selectCostoAttuale);
    double dCostoAttuale=0;
    if (rsCostoAttuale.next())
    dCostoAttuale=rsCostoAttuale.getDouble("costo_orar io");

    for (; j < n_newrighe+nOffset+n_righemod; j++)
    {
    // CAMPI HIDDEN
    // colonna indice
    out.println ("<input type='hidden' name='rec"+j+"index1' value='null'>");
    // colonna id_utente
    out.println ("<input type='hidden' name='rec"+j+"col6' value='"+id_utente+"'>");
    // colonna data
    out.println ("<input type='hidden' name='rec"+j+"col7' value=\""+"'" +
    date.get(Calendar.YEAR)+"-"+
    (date.get(Calendar.MONTH)+1)+"-"+
    date.get(Calendar.DATE)+ "'"+"\">");
    // colonna bloccata
    out.println ("<input type='hidden' name='rec"+j+"col5' value='0'>");
    //flag per individuare se almeno uno dei campi ore di quel record è valorizzato
    // (flag=1 campo valorizzato, flag=0 campo non valorizzato )
    out.println ("<input type='hidden' name='rec"+j+"valid' value='0'>");
    // Devo cosiderare L'ATTUALE costo_orario dell'utente.
    out.println ("<input type='hidden' name='rec"+j+"col9' value='"+dCostoAttuale+"'>");
    // CAMPI VISIBILI, PER INPUT UTENTE
    out.println ("<tr>");
    out.println ("<td width=100 align=center>");
    // colonna id_commessa
    out.println ("<select name='rec"+j+"col8' width='100' maxlenght='30'>");
    out.println("<Option value ='-1' selected>Seleziona una voce</option>");
    for (int i=0; i<astrCommesse.length; i++)
    {
    out.println("<Option value ='"+ anId[i]+ "'>"+astrCodComm[i]+" - "+astrDenom[i]+" - "+astrCommesse[i]+"</option>");
    }
    out.println("</select>");
    out.println ("</td>");
    out.println ("<td align='center'>");
    // colonna ore_ord
    out.println ("<input type='text' name='rec"+j+"col1' maxlength='3' size='2'>");
    out.println ("</td>");
    out.println ("<td align='center'>");
    // colonna ore_straord
    out.println ("<input type='text' name='rec"+j+"col2' maxlength='3' size='2'>");
    out.println ("</td>");
    out.println ("<td align='center'>");
    // colonna ore_viaggio
    out.println ("<input type='text' name='rec"+j+"col3' maxlength='3' size='2'>");
    out.println ("</td>");
    out.println ("<td align='center'>");
    // colonna note
    out.println ("<input type='text' name='rec"+j+"col4' size='100'>");
    out.println ("</td>");
    out.println ("</tr>");
    }
    int tot_righe= n_righemod+ n_newrighe;
    logger.info("Il totale delle righe modificabili e nuove è: " + tot_righe);
    return tot_righe;
    }
    %>
    grazia

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    StampaForm pare un metodo, mica lo metti in una jsp
    calcolatot è java o js

  7. #7
    Stampaform è una java class, che viene richiamata più avanti nel codice in questo modo:
    <%
    newtot = StampaForm (id_utente, gcCentral, out, n_newrighe, nOffset, con);
    nOffset += newtot;
    %>

    calcolatot è javascript e contiene soltanto un "alert"


    Il tutto è contenuto in una pagina .jsp
    grazia

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    public int StampaForm (int id_utente, GregorianCalendar date, JspWriter out, int n_newrighe, int nOffset, Connection con)
    throws IOException, SQLException
    questo è un metodo, gli fai ritornare un valore
    non puoi mettere un metodo in una jsp

  9. #9
    ma la pagina è già così e ti posso garantire che è funzionante, io devo solo inserire il richiamo alla mia funzione
    grazia

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.