Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    71

    [JAVA-JSP] Utilizzo di bean

    Salve ragazzi, sono abbastanza nuovo con il JSP ed ho il seguente problema:

    In una semplice pagina jsp dovrei riuscire a far eseguire un costruttore di una classe da me creata per ottenere certe funzionalità. Avevo pensato di utilizzare il <jsp:useBean ...> ma non so bene come sia possibile utilizzarlo. Il problema + che altro è che dovrei richiamare il metodo "main" di questa classe per poter creare un diagramma. La classe è stata testata e funziona senza problemi. In più dovrebbe essere eseguito come azione al premere di un bottone <input type="submit" action="metodo_main_della_classe" ..../>

    E' possibile fare ciò che ho chiesto?? Se si, come?? se no, c'è qualche altro modo che può essere una cosa simile e questa?

    Grazie a tutti!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA-JSP] Utilizzo di bean

    Originariamente inviato da sub_zero
    In una semplice pagina jsp dovrei riuscire a far eseguire un costruttore di una classe da me creata per ottenere certe funzionalità. Avevo pensato di utilizzare il <jsp:useBean ...> ma non so bene come sia possibile utilizzarlo. Il problema + che altro è che dovrei richiamare il metodo "main" di questa classe per poter creare un diagramma. La classe è stata testata e funziona senza problemi. In più dovrebbe essere eseguito come azione al premere di un bottone <input type="submit" action="metodo_main_della_classe" ..../>
    No alt. Innanzitutto action è un attributo di <form> .... non di <input>!!!
    Poi comunque l'action deve essere un URL che fa riferimento ad esempio ad una pagina JSP o che sia "mappato" ad esempio su una Servlet.

    Il tag useBean può anche eventualmente istanziare il bean (se non lo trova già come "attibuto" nello scope indicato o 'page' per default) ma si aspetta di trovare nella classe un costruttore public e sopratutto senza argomenti.

    Poi dici che devi invocare un metodo main .... è quello statico, classico per l'avvio di una applicazione?? Perché allora la cosa sarebbe molto discutibile.

    Quindi? Cosa vuoi fare? Far eseguire una servlet, dove puoi invocare quello che ti pare e se devi poi visualizzare qualcosa fai un "forward" ad una jsp, ad esempio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    71
    Diciamo che mi sono spiegato malissimo....allora rispiego il problema.
    Ho una web application per l'inserimento di preventivi on-line funzionante da me fatta. Adesso dovrei integrare in questa applicazione la funzionalità della seguente classe:
    codice:
    /**
     * Classe JAVA per creare un diagramma GANTT partendo dai dati inseriti nel
     * database. Viene richiamata nella pagina Web di riepilogo se si vuole, e da la
     * possibilità di salvare il tutto in .pdf.
     * @author Daniele Bertelli
     * @version DB 1.1
     */
    public class GanttDiagram extends ApplicationFrame {
    
        /** Logica del database */
        private static Database db;
        /** Nome del preventivo sul quale si sta lavorando */
        private static String NomePreventivo = "";
        /** Path della directory dove andranno salvati i diagrammi di Gantt (DA MODIFICARE)*/
        private final String PATH = "C:/Users/Daniele/Documents/Prova/";
    
        /**
         * Costruttore che crea un nuovo Diagramma di Gantt
         * @param Titolo del diagramma (nome del preventivo)
         */
        public GanttDiagram(final String title) {
    
            super(title);
            String nomeAsseY = "";
            Object[] obj = {"Attività", "Manodopera", "Entrambi"};
            IntervalCategoryDataset dataset = null;
            int answer = javax.swing.JOptionPane.showOptionDialog(getRootPane(),
                    "Scegli quale dei due diagrammi di Gantt vuoi creare\n", "Domanda",
                    JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, obj, obj[0]);
            if (answer == JOptionPane.CLOSED_OPTION) {
                System.err.println("E' stata chiusa la finestra di dialogo in modo anomalo!");
                System.exit(-1);
            }
            if (answer == JOptionPane.YES_OPTION) {
                dataset = createDatasetAttivita();
                nomeAsseY = "Attivita";
            } else if (answer == JOptionPane.NO_OPTION) {
                dataset = createDatasetManodopera();
                nomeAsseY = "Manodopera";
            } else {
                dataset = createDatasetAttivita();
                nomeAsseY = "Attivita";
                final JFreeChart chart = createChart(dataset, nomeAsseY);
                // Aggiungo il Chart al pannello...
                final ChartPanel chartPanel = new ChartPanel(chart);
                chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
                setContentPane(chartPanel);
                File fileName = new File(PATH + NomePreventivo + ".pdf");
                if (fileName.exists()) {
                    fileName = new File(PATH + NomePreventivo + "(2).pdf");
                    System.err.println("Attenzione File creato già esistente! --> Sto creando una copia!");
                }
                try {
                    saveChartAsPDF(fileName, chart, 400, 300, new DefaultFontMapper());
                    System.out.println("Diagramma salvato con successo in formato PDF!");
                } catch (IOException ex) {
                    Logger.getLogger(GanttDiagram.class.getName()).log(Level.SEVERE, null, ex);
                }
                dataset = createDatasetManodopera();
                nomeAsseY = "Manodopera";
                final JFreeChart chart2 = createChart(dataset, nomeAsseY);
                // Aggiungo il Chart al pannello...
                final ChartPanel chartPanel2 = new ChartPanel(chart2);
                chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
                setContentPane(chartPanel2);
                fileName = new File(PATH + NomePreventivo + ".pdf");
                if (fileName.exists()) {
                    fileName = new File(PATH + NomePreventivo + "(2).pdf");
                    System.err.println("Attenzione File creato già esistente! --> Sto creando una copia!");
                }
                try {
                    saveChartAsPDF(fileName, chart2, 400, 300, new DefaultFontMapper());
                    System.out.println("Diagramma salvato con successo in formato PDF!");
                    System.exit(0);
                } catch (IOException ex) {
                    Logger.getLogger(GanttDiagram.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            final JFreeChart chart = createChart(dataset, nomeAsseY);
            // Aggiungo il Chart al pannello...
            final ChartPanel chartPanel = new ChartPanel(chart);
            chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
            setContentPane(chartPanel);
            File fileName = new File(PATH + NomePreventivo + ".pdf");
            if (fileName.exists()) {
                fileName = new File(PATH + NomePreventivo + "(2).pdf");
                System.err.println("Attenzione File creato già esistente! --> Sto creando una copia!");
            }
            try {
                saveChartAsPDF(fileName, chart, 400, 300, new DefaultFontMapper());
                System.out.println("Diagramma salvato con successo in formato PDF!");
            } catch (IOException ex) {
                Logger.getLogger(GanttDiagram.class.getName()).log(Level.SEVERE, null, ex);
            }
    
        }
    
        /**
         * Metodo per la creazione del DataSet per il diagramma Gantt sulle attività 
         * con le relative interrogazioni al Database per reperire i dati.
         */
        private static IntervalCategoryDataset createDatasetAttivita() {
            Vector v = new Vector(), Vtemp = new Vector();
            String[] res = null;
            GregorianCalendar gc = null;
            db = new Database("tirocinio", "root", "10a5gr8b");
            try {
                db.connetti();
            } catch (ServletException ex) {
            }
            v = db.eseguiQuery("SELECT IDpreventivo, Nome, DataInizio FROM preventivo");
            res = (String[]) v.elementAt(v.size() - 1);
            int ID = Integer.parseInt(res[0]);
            NomePreventivo = res[1] + "_ATTIVITA";
            String[] split = res[2].split("-");
            String Iday = split[2];
            String Imonth = split[1];
            String Iyear = split[0];
            v = db.eseguiQuery("SELECT * FROM attivitapreventivo WHERE IDpreventivo=" + ID + ";");
            int i = 0;
            final TaskSeries s1 = new TaskSeries("Preventivato");
            while (i < v.size()) {
                res = (String[]) v.elementAt(i);
                int IDatt = Integer.parseInt(res[0]);
                Vtemp = db.eseguiQuery("SELECT Nome FROM attivita WHERE IDattivita=" + IDatt + ";");
                String[] n = (String[]) Vtemp.elementAt(0);
                String nomeAttivita = n[0];
                /* Controllo se c'è uno shift Temporale nella data d'inizio */
                gc = new GregorianCalendar(Integer.parseInt(Iyear),
                        Integer.parseInt(Imonth) - 1, Integer.parseInt(Iday));
                if (res[3] != null) {
                    gc.add(Calendar.DAY_OF_MONTH, Integer.parseInt(res[3]));
                }
                Date inizio = gc.getTime();
                gc.add(Calendar.HOUR_OF_DAY, Integer.parseInt(res[2]));
                Date fine = gc.getTime();
                s1.add(new Task(nomeAttivita, new SimpleTimePeriod(inizio, fine)));
                i++;
            }
            final TaskSeriesCollection collection = new TaskSeriesCollection();
            collection.add(s1);
    
            return collection;
        }
    
        /**
         * Metodo per la creazione del DataSet per il diagramma Gantt sulla
         * manodopera con le relative interrogazioni al Database per reperire i dati.
         */
        private static IntervalCategoryDataset createDatasetManodopera() {
            Vector v = new Vector(), Vtemp = new Vector();
            String[] res = null;
            GregorianCalendar gc = null;
            db = new Database("tirocinio", "root", "10a5gr8b");
            try {
                db.connetti();
            } catch (ServletException ex) {
            }
            v = db.eseguiQuery("SELECT IDpreventivo, Nome, DataInizio FROM preventivo");
            res = (String[]) v.elementAt(v.size() - 1);
            int ID = Integer.parseInt(res[0]);
            NomePreventivo = res[1] + "_MANODOPERA";
            String[] split = res[2].split("-");
            String Iday = split[2];
            String Imonth = split[1];
            String Iyear = split[0];
            v = db.eseguiQuery("SELECT * FROM preventivoqualifica WHERE IDpreventivo=" + ID + ";");
            int i = 0;
            final TaskSeries s1 = new TaskSeries("Preventivato");
            while (i < v.size()) {
                res = (String[]) v.elementAt(i);
                int IDqual = Integer.parseInt(res[0]);
                Vtemp = db.eseguiQuery("SELECT Descrizione FROM qualifica WHERE IDqualifica=" + IDqual + ";");
                String[] n = (String[]) Vtemp.elementAt(0);
                String nomeAttivita = n[0];
                /* Controllo se c'è uno shift Temporale nella data d'inizio */
                gc = new GregorianCalendar(Integer.parseInt(Iyear),
                        Integer.parseInt(Imonth) - 1, Integer.parseInt(Iday));
                if (res[3] != null) {
                    gc.add(Calendar.DAY_OF_MONTH, Integer.parseInt(res[3]));
                }
                Date inizio = gc.getTime();
                gc.add(Calendar.HOUR_OF_DAY, Integer.parseInt(res[2]));
                Date fine = gc.getTime();
                s1.add(new Task(nomeAttivita, new SimpleTimePeriod(inizio, fine)));
                i++;
            }
            final TaskSeriesCollection collection = new TaskSeriesCollection();
            collection.add(s1);
    
            return collection;
        }
    
        /**
         * Metodo per la creazione del diagramma
         * @param dataset il dataset per il diagramma.
         */
        private JFreeChart createChart(final IntervalCategoryDataset dataset, String titolo) {
            final JFreeChart chart = ChartFactory.createGanttChart(
                    "Preventivo " + NomePreventivo, // chart title
                    titolo, // domain axis label
                    "Tempo", // range axis label
                    dataset, // data
                    true, // include legend
                    true, // tooltips
                    false // urls
                    );
            return chart;
        }
    
        private void saveChartAsPDF(File fileName, JFreeChart chart, int width, int height, DefaultFontMapper mapper)
                throws IOException {
            OutputStream out = new BufferedOutputStream(new FileOutputStream(fileName));
            writeChartAsPDF(out, chart, width, height, mapper);
            out.close();
        }
    
        private void writeChartAsPDF(OutputStream out, JFreeChart chart, int width, int height, DefaultFontMapper mapper) {
            Rectangle pagesize = new Rectangle(width, height);
            Document document = new Document(pagesize, 50, 50, 50, 50);
            try {
                PdfWriter writer = PdfWriter.getInstance(document, out);
                document.addAuthor("West Systems");
                document.addSubject("Preventivo");
                document.open();
                PdfContentByte cb = writer.getDirectContent();
                PdfTemplate tp = cb.createTemplate(width, height);
                Graphics2D g2 = tp.createGraphics(width, height, mapper);
                Rectangle2D r2D = new Rectangle2D.Double(0, 0, width, height);
                chart.draw(g2, r2D, null);
                g2.dispose();
                cb.addTemplate(tp, 0, 0);
            } catch (DocumentException de) {
                System.err.println(de.getMessage());
            }
            document.close();
        }
    
        /**
         * Metodo "main" per l'esecuzione dell'applicazione.
         * @param args NON UTILIZZATO.
         */
        public static void main(final String[] args) {
            final GanttDiagram demo = new GanttDiagram("Preventivo");
            demo.pack();
            RefineryUtilities.centerFrameOnScreen(demo);
            demo.setVisible(true);
        }
    }
    In pratica premendo un bottone sulla web application del tipo "CREA GANTT" dovrei riuscire a far avviare il metodo "main" della classe che ho postato. E' possibile fare ciò??

    Grazie ancora e spero di essere stato più chiaro

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    71
    Uppino

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da sub_zero
    In pratica premendo un bottone sulla web application del tipo "CREA GANTT" dovrei riuscire a far avviare il metodo "main" della classe che ho postato. E' possibile fare ciò??
    No ... veramente, alt! Facciamo un passo indietro.

    Il lungo codice che hai postato è per una "normale" applicazione desktop che fa uso di Swing (si vede nel codice anche l'uso di JOptionPane) e fa uso della libreria JFreeChart (comunque anch'essa per qualcosa di "grafico", visualizzato dal componente ChartPanel).

    Tu vuoi eseguire tutto questo in una web application. Ma una web application gira sul server. Quindi tutta questa roba grafica dove vuoi visualizzarla??? Sul client?? Suppongo ....

    Ma allora: a) Non puoi eseguirla nella web application banalmente "invocando il metodo main". b) Questa applicazione dovrebbe arrivare al client .... come? L'utente deve scaricarla per conto suo e poi avviarla? O vuoi farla eseguire tramite Java Web Start??

    Insomma ... dimentica un momento il tuo "dovrei riuscire a far avviare il metodo "main" della classe che ho postato..
    Ti è chiara ora questa questione? Quella è una normalissima applicazione Java. Dove e come vuoi farla eseguire??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    71
    Si ci sono. Vorrei che il server riuscisse a far eseguire tramite Java Web Start il tutto magari creando una servlet apposita...sinceramente ho le idee un po' confuse sul "come farla eseguire". L'unica cosa certa è che deve essere il SERVER ad eseguirla e il CLIENT deve solo vedere il risultato del tutto...

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da sub_zero
    sinceramente ho le idee un po' confuse
    Ehm ... sì.

    Originariamente inviato da sub_zero
    deve essere il SERVER ad eseguirla e il CLIENT deve solo vedere il risultato del tutto...
    No. Vuoi che il frame della applicazione e quindi il grafico si vedano sul client??? Allora gira tutto sul client.
    E con Java Web Start semplicemente si mette in una pagina web un link ad un file .jnlp che "descrive" la applicazione. L'utente segue il link e tutto viene scaricato ed eseguito sul client. Il server non "saprebbe" nulla e non eseguirebbe nulla di quanto hai postato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    71
    Ok...scusa la mia capa dura ma in "codice" cosa dovrei fare?...la classe che ho creato e postato come la devo utilizzare?...io ho la seguente pagina riepilogo.jsp:

    codice:
    <html>
        <%@page import="java.sql.*, java.text.DecimalFormat, java.util.GregorianCalendar, java.text.SimpleDateFormat, java.util.Calendar" %>
        <%@page errorPage="errorePage.jsp"%>
        <head>
            <title> WEST SYSTEMS </title>
        </head>
        <body>
            <%!private static final String DATE_FORMAT = "dd MMMMMMMMM yyyy";%>
            <%
                String url = "com.mysql.jdbc.Driver";
                Connection conn = null;
                try {
                    Class.forName(url);
                    conn = DriverManager.getConnection("jdbc:mysql://localhost/tirocinio?user=root&password=10a5gr8b");
                } catch (Exception exc) {
                    out.println(exc.toString());
                }
    
            %>
            <div align="center">
                
                    <label for="Intestazione"> RIEPILOGO DATI PREVENTIVO </label>
    
    
                
                <form name="myform" action="PrimaPagina" method="get">
                    
    
    
                    </p>
                    <table width="688" border="0" cellspacing="1" cellpadding="2">
                        <%Statement stm = null;
                ResultSet rst = null;
                stm = conn.createStatement();
                String query = "SELECT * FROM preventivo";
                rst = stm.executeQuery(query);
                rst.last();
                        %>
                        <tr>
                            <td width="154"><label for="Nome" >Nome: </label></td>
                            <td width="523" bgcolor="#EAEAEA"><input type="text" name="nome" size="50" value="<%=rst.getString("Nome")%>" readonly/></td>
                        </tr>
                        <tr>
                            <td><label for="Descrizione" >Descrizione:</label></td>
                            <td bgcolor="#DBDBDB"><input type="text" name="descrizione" size="50" value="<%=rst.getString(3)%>" readonly/></td>
                        </tr>
                        <tr>
                            <%Statement temp = null;
                ResultSet rstTemp = null;
                temp = conn.createStatement();
                rstTemp = temp.executeQuery("SELECT Nome FROM clienti WHERE IDcliente=" + Integer.parseInt(rst.getString(6)) + ";");
                rstTemp.next();
                            %>
                            <td><label for="Committente" >Committente:</label></td>
                            <td bgcolor="#DBDBDB"><input type="text" name="committente" size="50" value="<%=rstTemp.getString("Nome")%>" readonly/></td>
                        </tr>
                        <tr>
                            <%temp = null;
                rstTemp = null;
                temp = conn.createStatement();
                rstTemp = temp.executeQuery("SELECT Nome, Cognome FROM utenti WHERE IDutente=" + Integer.parseInt(rst.getString(7)) + ";");
                rstTemp.next();
                            %>
                            <td><label for="Responsabile" >Responsabile:</label></td>
                            <td bgcolor="#DBDBDB"><input type="text" name="responsabile" size="50" value="<%=rstTemp.getString("Nome") + " " + rstTemp.getString("Cognome")%>"readonly/></td>
                        </tr>
                        <tr>
                            <%String[] data = rst.getString(4).split("-");
                GregorianCalendar gc = new GregorianCalendar(Integer.parseInt(data[0]),
                        Integer.parseInt(data[1]) - 1, Integer.parseInt(data[2]));
                SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
                            %>
                            <td><label for="Inizio" >Data di inizio:</label></td>
                            <td bgcolor="#DBDBDB"><input type="text" name="inizio" size="50" value="<%=sdf.format(gc.getTime())%>" readonly/></td>
                        </tr>
                        <tr>
                            <td><label for="Durata">Durata Preventivata:</label></td>
                            <td bgcolor="#DBDBDB"><input type="text" name="durata" size="50" value="<%=rst.getString(5)%> mesi" readonly/></td>
                        </tr>
                        <tr><td></td></tr>
                        <tr><td></td></tr>
                        <tr>
                            <%gc.add(Calendar.MONTH, Integer.parseInt(rst.getString(5)));%>
                            <td><label for="Fine">Fine prevista per il:</label></td>
                            <td bgcolor="#DBDBDB"><input type="text" name="fine" size="50" value="<%=sdf.format(gc.getTime())%>" readonly/></td>
                        </tr>
                    </table>
                    
    
    
                    <%
                /* Calcolo il COSTO TOTALE MANODOPERA */
                temp = null;
                rstTemp = null;
                temp = conn.createStatement();
                rstTemp = temp.executeQuery("SELECT IDqualifica, NumeroOre FROM preventivoqualifica WHERE IDpreventivo=" + Integer.parseInt(rst.getString(1)) + ";");
                double costo = 0.00;
                Statement in = null;
                while (rstTemp.next()) {
                    in = conn.createStatement();
                    ResultSet s = in.executeQuery("SELECT CostoOrario FROM qualifica WHERE IDqualifica=" + rstTemp.getString("IDqualifica") + ";");
                    s.next();
                    costo += Double.parseDouble(s.getString("CostoOrario")) * Double.parseDouble(rstTemp.getString("NumeroOre"));
                    in.close();
                }
                DecimalFormat format = new DecimalFormat("0.00");
                    %>
                    <label for="Costo">
                        <font color="blue">Costo della manodopera qualificata utilizzata:</font>
                    </label>
                    <input type="text" name="durata" size="20" value="<%=format.format(costo)%>" readonly/>
                    <label for="euro">Euro</label>
    
    
                    <input type="submit" name="submit" value="Inserisci altri preventivi"/>
                </form>
            </div>
            
    
    </p>
            <div align="center">
                <center>
                    <table border="0">
                        <tr>
                            <td width="100" align="center" valign="middle">
                                <form action="Login" method="get">
                                    <input type ="submit" name="main" value="Torna alla HomePage" />
                                </form>
                            </td>
                            <td width="100" align="center" valign="middle">
                                <form action="Gantt" method="post">
                                    <input type ="submit" name="main" value="Crea diagramma di Gantt" />
                                </form>
                            </td>
                            <td width="100" align="center" valign="middle">
                                <form action="Riepilogo" method="get">
                                    <input type ="submit" name="main" value="Vai a un altro riepilogo" onclick="return prompt('sicuro')" />
                                </form>
                            </td>
                        </tr>
                    </table>
                </center>
            </div>
        </body>
    </html>
    di cui :
    <form action="Gantt" method="post">
    <input type ="submit" name="main" value="Crea diagramma di Gantt" />
    </form>

    è il punto dove devo "collegare" l'esecuzione di quella classe precedentemente postata....cosa devo fare??

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da sub_zero
    [B]<form action="Gantt" method="post">
    <input type ="submit" name="main" value="Crea diagramma di Gantt" />
    </form>
    E in action="Gantt" Gantt che è? È un URL a che cosa??
    E dare un 'name' ad un pulsante di submit generalmente non serve. Mettendo un name si ha solo che nella request viene passato il parametro main=Crea diagramma di Gantt. Ma a cosa ti serva ...... boh.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    71
    Niente....era solo per farti capire che devo riuscire a richiamare la classe che ti ho postato in precedenza.

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.