Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Variabile Array

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473

    Variabile Array

    Ciao a tutti....
    sto integrando nel sito il modulo FPDF per la generazione automatica del PDF...

    in una pagina asp ho un elenco di fatture scritte all'interno di input text....

    poi ho un pulsante "crea pdf" che mi invia i dati del mio form in una pagina dove ho scritto la procedura per creare il pdf...

    il mio problema sta nel fatto che non riesco a prendere il valore che mi invia il form, perche è una pagina javascript e non so come leggere il valore scritto all'interno della test, come in asp ce il request.form, in javascript cosa ce????

    Pero avevo pensato ad un altra soluzione ossia quella di scrivere i valori delle fatture anziche dentro a delle text, scriverle dentro una tabella temportanea del mio db...

    pero una volta che leggo i dati e li scrivo dentro un array, quando esco dal ciclo della query, l'array si svuota completamente e non posso generare il pdf...

    vi posto il codice...

    codice:
    <%@language=javascript%>
    
    
    
    
    <%
    
    pdf=new FPDF();
    
    var fatture=new Array();
    var data_fatt = new Date();
    
    var i_fatt=-1;
    
    
    CARICO L'ARRAY CON LE FATTURE 
    var cn = new ActiveXObject("ADODB.Connection");
    var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/Inetpub/wwwroot/mipson/public/mdb-database/db.mdb;Persist Security Info=False";
    cn.Open(strConn);
    var rs = new ActiveXObject("ADODB.Recordset");
    var SQL = "select n_fatt from STAMPA_FATTURE";
    rs.Open(SQL, cn);
    	   
    while(!rs.eof) {
    	i_fatt++;
    	fatture[i_fatt]=(rs(0));
    
    rs.MoveNext();
    }
    	
    rs.Close();
    cn.Close(); 
    
    
    
    
    
    SCRIVO L'INTESTAZIONE DEL PDF, PERO QUANDO FACCIO IL CICLO L'ARRAY è VUOTO 
    IN QUESTO ESEMPIO HO TOLTO IL CICLO FOR E MESSO COME INDICE DELL'ARRAY 0 PERCHE COSI SONO SICURO CHE IL PRIMO ELEMENTO L'HO SCRITTO IN PRECEDENZA 
    
    
    // Ridefinizione delle funzioni
    pdf.Header=function Header()
    {
    
    	var data_fatt = new Date();
    
    
    	var cn = new ActiveXObject("ADODB.Connection");
    	var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/Inetpub/wwwroot/cliente/public/mdb-database/db.mdb;Persist Security Info=False";
    	cn.Open(strConn);
    	var rs = new ActiveXObject("ADODB.Recordset");
    	var SQL = "select format(data,'dd/mm/yyyy'), nome, cognome, rag_soc from FATTURE WHERE id_fattura="+fatture[0]+"";
    	rs.Open(SQL, cn);
    	   
    	while(!rs.eof) {
    		data_fatt=(rs(0));
    		
    
    		nome=(rs(1));
    		cognome=(rs(2));
    		rag_soc=(rs(3));
    		//SCRIVO L'INTESTAZIONE NEL PDF
    		this.Image('images/header.JPG',115,8,80);
    		this.Line(10,15,200,15);
    		
    		
    		this.SetX(10);
    		this.SetY(40);
    		
    		//FATTURAZIONE
    		this.SetFont('Arial','I',12);
    		this.Cell(100,4,'Indirizzo di Fatturazione:',0,0,'L');
    		
    		this.SetX(-100);
    		this.Cell(100,4,'Indirizzo di Spedizione:',0,1,'L');
    		
    		this.SetFont('Arial','B',12);
    		this.Cell(30,10,'Spett.le',0,0,'L');
    		
    		this.SetX(-100);
    		this.Cell(30,10,'Spett.le',0,1,'L');
    
    		
    		this.SetFont('Arial','',12);
    		
    		if (rag_soc!="")
    		{
    			this.Cell(100,4,rag_soc,0,0,'L');
    		}
    		
    		this.SetX(-100);
    		this.Cell(100,4,presso_spe,0,1,'L');
    		
    		if (cognome!="")
    		{
    			this.Cell(100,4,(cognome + " " + nome),0,1,'L');
    		}
    		
    		
    		
    		this.Ln(12);
    		
    		this.SetLineWidth(0.7);
    		this.Line(10,75,200,75);
    		this.SetLineWidth(0);
    		
    		
    		
    		
    	
    		rs.MoveNext();
    	}
    	
    	rs.Close();
    	cn.Close(); 
    	
    }
    Percio ho due soluzione o capire come mai la variabile si svuota dopo che ho finito While dqlla prima query, oppure leggere i valori dalla text...

    Grazie!


  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Una pagina "javascript"

    ti sposto su ASP
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Nessuno riesce ad aiutarmi?

    In poche parole io ho qst pagina asp con dichiarato il linguaggio

    <%@language=javascript%>


    non mi accetta nessuna parola chiave come ad esempio request.form (asp) oppure documet.form (javascript)....

    come faccio a passare le variabili????

    oppure se io mi leggo il numero delle fatture su una tabella, come mai una volta uscito dal ciclo while della query le variabili si azzerano???
    Questo problema l'ho notato anche quando effetuo l'intestazione del PDF, ossia devo scrivere L'intestazione sul pdf prima di chiudere il ciclo, perche qppena uscito dal ciclo la variabile si svuota!!


    Accetto tutti i consigli!!


  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Chiedo gentilmente ai moderatori di spostare il post nella sezione javascript, perche il mio problema è proprio sulle variabili javascript...

    E' tutto il giorno che provo e riprovo ma non riesco a trovare una soluzione

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Ho provato a scricere su javascript ma mi hanno chiuso il post...
    Ho un problema con javascript, pero appena apro un post su javascript prima me lo spostano e ora me lo chiudono...

    E tutto il giorno che sto impazzendo con questa funzione, e purtroppo non conoscendo javascript devo chiedere il Vs. aiuto..
    Vi riposto il post aperto in precedenza

    .....

    Dunque sto integrando il modulo FPDF sul mio sito e dovrei passare una variabile ossia il numero della fattura che deve stampare...

    Allora il numero della fattura che deve stampare lo leggo da una tabella e poi dovrei inviare alla funzione Header il numero della fattura


    Questo è il codice funzionante, scrivendo manualmente il numero della fattura dentro la query (in blu)..

    codice:
    <%@language=javascript%>
    
    
    <%
    
    pdf=new FPDF();
    
    // Ridefinizione delle funzioni
    
    
    pdf.Header=function Header() 
    { 
    
    	var data_fatt = new Date();
    
    
    	var cn = new ActiveXObject("ADODB.Connection");
    	var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/Inetpub/wwwroot/CLIENTE/public/mdb-database/db.mdb;Persist Security Info=False";
    	cn.Open(strConn);
    	var rs = new ActiveXObject("ADODB.Recordset");
    	var SQL = "select format(data,'dd/mm/yyyy'), nome, cognome, rag_soc, piva, cf, prov,
     citta, cap, via, n, sconto, peso, spese_spe, tot_ordine, rif_ordine, id_fattura, nazione, 
    presso_spe, citta_spe, prov_spe, cap_spe, via_spe, n_spe, nazione_spe from FATTURE 
    WHERE 
    id_fattura=224";
    	rs.Open(SQL, cn);
    	   
    	while(!rs.eof) {
    		data_fatt=(rs(0));
    		//data_fatt=dateFormat(data_fatt, "dd/mm/yyyy");
    		//data_fatt.format("dd/mm/yyyy");
    
    		nome=(rs(1));
    		cognome=(rs(2));
    		
    		//SCRIVO L'INTESTAZIONE NEL PDF
    		this.Image('images/header.JPG',115,8,80);
    		this.Line(10,15,200,15);
    		
    		
    		this.SetX(10);
    		this.SetY(40);
    		
    		.......
    		
    		
    	
    		rs.MoveNext();
    	}
    	
    	rs.Close();
    	cn.Close(); 
    	
    }

    In rosso scrivo il codice che modifico...
    codice:
    // Ridefinizione delle funzioni
    
    
    
    pdf.Header=Header(224);
    function Header(fatture)
    {
    
    	var data_fatt = new Date();
    
    
    	var cn = new ActiveXObject("ADODB.Connection");
    	var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/Inetpub/wwwroot/mipson/public/mdb-database/db.mdb;Persist Security Info=False";
    	cn.Open(strConn);
    	var rs = new ActiveXObject("ADODB.Recordset");
    	var SQL = "select format(data,'dd/mm/yyyy'), nome, cognome, rag_soc, piva, cf, prov, 
    citta, cap, via, n, sconto, peso, spese_spe, tot_ordine, rif_ordine, id_fattura, nazione, 
    presso_spe, citta_spe, prov_spe, cap_spe, via_spe, n_spe, nazione_spe from FATTURE 
    WHERE 
    id_fattura="+fatture+"";
    	rs.Open(SQL, cn);
    	   
    	while(!rs.eof) {
    		data_fatt=(rs(0));
    		//data_fatt=dateFormat(data_fatt, "dd/mm/yyyy");
    		//data_fatt.format("dd/mm/yyyy");
    
    		nome=(rs(1));
    		cognome=(rs(2));
    		
    		//SCRIVO L'INTESTAZIONE NEL PDF
    		
                    this.Image('images/header.JPG',115,8,80);
    		this.Line(10,15,200,15);
    		
    		
    		this.SetX(10);
    		this.SetY(40);
    		
    
                    
    
    .......


    Se scrivo il codice inviando la variabile, mi da il seguente errore,
    Tipo di errore:
    Errore di run-time di Microsoft JScript (0x800A01B6)
    Proprietà o metodo non supportati dall'oggetto
    alla riga che ho scritto in verde...

    il problema è che non riconosce l'oggetto this, ho provato a sostituirlo con pdf, ma non funziona...
    Premetto che non conosco javascript e insultatemi pure se ho scritto qualche baggianata!!

    Help!!!


    Tornoa a ipetere che è un problema di javascript e siccome per tutto il giorno non ho avuto nessuna risposta sulla sezione ASP ho pensato di aprire il post su javascript, tutto qua, questa non vuole essere una critica o un rimprovero, non fraitendete quello che ho scritto!!!

    Grazie

    Androita

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il fatto che tu usi jscript lato server determina il motivo per cui questa discussione si trova in questa sezione e non in javascript lato client

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    spè spè spè, facciamo un po' di ordine.
    Hai una pagina con una lista di fatture e premendo su un bottone visualizzi il pdf della fattura selezionata, giusto?
    A ogni fattura sarà quindi associato un identificativo che quando premi il bottone viene spedito al server, lo usi per restringere la query al db e generi il pdf con i dati della fattura selezionata, giusto?
    Il passaggio del parametro lo realizzi lato client con una semplice form che invia i dati premendo il bottone mentre per il recupero lato server, dovrebbe bastarti l'istruzione Request.Params["id"]
    Se è tutto giusto e questo torna vediamo gli altri problemi, altrimenti dimmi cosa non ho capito finora

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Ciao Potacchione, grazie per la risposta...
    allora ti spiego brevemente quello che ho e quello che vorrei avere...
    ho una pagina asp che stampa a video un elenco di ordini non ancora fatturati, e per ogni riga ho un checkbox che identifica l'ordine che voglio fatturare...
    allora una volta selezionati gli ordini invio i dati del form ad una pagina asp che genera la fattura degli ordini selezionati con i checkbox; e salva i dati della fattura nella tabella del mio db...
    e fino a qua tutto ok e funziona perfettamente,

    da qua in poi ho dei problemi...
    una volta salvati i dati della fattura ho pensato di creare una serie di campi hidden dove inserisco il numero della fattura da creare, e inviando questo form, non sapevo come leggere le hidden inviate, perche purtroppo non conosco java, ma ora che mi hai scritto "Request.Params["id"]" lo proverò (stasera perche ora sono fuori casa)...

    Non sapendo come recuperare i dati dalle mie hidden ho pensato di scrivere i numeri delle fatture dentro a una tabella del mio db e in java mi salvo i numeri delle fatture dentro un array, (e fino a qui tutto ok) il problema nasce quando ciclo l'array che ho un po di problemi l'indice del ciclo non funziona ecco qui il codice..

    codice:
    fatture=new Array();
    
    i_fatt=0;
    
    
    cnX = new ActiveXObject("ADODB.Connection");
    strConnX = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/Inetpub/wwwroot/mipson/public/mdb-database/db.mdb;Persist Security Info=False";
    //var strConn = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("public/mdb-database/db.mdb;Persist Security Info=False");
    cnX.Open(strConnX);
    rsX = new ActiveXObject("ADODB.Recordset");
    SQLX = "select n_fatt from STAMPA_FATTURE";
    rsX.Open(SQLX, cnX);
    
           
    while(!rsX.eof) {
        
        fatture[i_fatt]=(rsX(0).value);
        i_fatt++;
            
    rsX.MoveNext();
    }
        
    rsX.Close();
    cnX.Close();
    
    
    
    i=0;
    While (i < i_fatt)
    //for ((xi=0); (xi<i_fatt); (xi++))
    {
        pdf=new FPDF();
        
        var data_fatt = new Date();
        
        // Ridefinizione delle funzioni
        pdf.Header=function Header()
        {
        
            var data_fatt = new Date();
        
        
            var cn = new ActiveXObject("ADODB.Connection");
            var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/Inetpub/wwwroot/mipson/public/mdb-database/db.mdb;Persist Security Info=False";
            cn.Open(strConn);
            var rs = new ActiveXObject("ADODB.Recordset");
            var SQL = "select format(data,'dd/mm/yyyy'), nome, cognome, rag_soc, piva, cf, prov, citta, cap, via, n, sconto, peso, spese_spe, tot_ordine, rif_ordine, id_fattura, nazione, presso_spe, citta_spe, prov_spe, cap_spe, via_spe, n_spe, nazione_spe from FATTURE WHERE id_fattura="+fatture[1]+"";
            rs.Open(SQL, cn);
               
            while(!rs.eof) {
                data_fatt=(rs(0).value);
                //data_fatt=dateFormat(data_fatt, "dd/mm/yyyy");
                //data_fatt.format("dd/mm/yyyy");
        
                nome=(rs(1).value);
                cognome=(rs(2).value);
                rag_soc=(rs(3).value);
                piva=(rs(4).value);
    in poche parole io ora ho messo come indice dell'array 1 però se metto la variabile che ciclo non va...
    allora stasera provo ad usare il codice che mi hai dato te per recuperare i dati dal form e poi ti faccio sapere....


    grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Ciao...
    ho provato a leggere la text con il codice che mi hai scritto, ma niente non va...

    Mi da il seguente errore
    Errore di run-time di Microsoft JScript (0x800A138F)
    'Request.Params.i_fat' è nullo o non è un oggetto

    il codice che ho scritto è
    codice:
    fattura=Request.Params["fatt1"];
    secondo me l'unica soluzione è quella di scrivere l'elenco delle fatture di cui voglio creare il PDF in una tabella, e poi nella pagina che crea il pdf salvo l'elenco delle fatture in un array e poi ciclo il modulo che crea il pdf per le fatture che ho dentro l'array... e fino a qua l'idea mi funziona, l'unico problema è che quando effettuo il ciclo, la variabile i assume dei valori strani....
    vi posto il codice dettagliato cosi capite cosa intendo fare

    codice:
    <%@language=javascript%>
    
    
    
    
    <%   
    
    fatture=new Array();  //DICHIARO L'ARRAY
    
    i_fatt=0;  //INIZIALIZZO IL NUMERO DELLE FATTURE A 0
    
    //CONNESSIONE AL DB PER RIEMPIRE L'ARRAY DELLE FATTURE
    cnX = new ActiveXObject("ADODB.Connection");
    var strConn = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("public/mdb-database/db.mdb;Persist Security Info=False");
    cnX.Open(strConnX);
    rsX = new ActiveXObject("ADODB.Recordset");
    SQLX = "select n_fatt from STAMPA_FATTURE";
    rsX.Open(SQLX, cnX);
    
    	   
    while(!rsX.eof) {
    	
    	fatture[i_fatt]=(rsX(0).value);  //RIEMPIO L'ARRAY
    	i_fatt++;   //INCREMENTO L'INDICE DELLE FATTURE
    		
    rsX.MoveNext();
    }
    	
    rsX.Close();
    cnX.Close(); 
    
    
    //CICLO LA i DA 0 RINO AL NUMERO DELLE FATTURE
    for ((i=0); (i<i_fatt); (i++))
    {
    	pdf=new FPDF();
    	
    	var data_fatt = new Date();
    	
    	// Ridefinizione delle funzioni
    	pdf.Header=function Header()
    	{
    	
    		var data_fatt = new Date();
    	
    	
    		var cn = new ActiveXObject("ADODB.Connection");
    		var strConn = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("public/mdb-database/db.mdb;Persist Security Info=False");
    		var rs = new ActiveXObject("ADODB.Recordset");
    		var SQL = "select format(data,'dd/mm/yyyy'), nome, cognome, rag_soc, piva, cf, prov, citta, cap, via, n, sconto, peso, spese_spe, tot_ordine, rif_ordine, id_fattura, nazione, presso_spe, citta_spe, prov_spe, cap_spe, via_spe, n_spe, nazione_spe from FATTURE WHERE id_fattura="+fatture[i]+"";
    		rs.Open(SQL, cn);
    		   
    		while(!rs.eof) {
    			data_fatt=(rs(0).value);
    			//data_fatt=dateFormat(data_fatt, "dd/mm/yyyy");
    			//data_fatt.format("dd/mm/yyyy");
    	
    			nome=(rs(1).value);
    			cognome=(rs(2).value);
    			rag_soc=(rs(3).value);
    
                       ......................

    Allora come potete vedere faccio un ciclo for dentro a delle funzioni (header, footer) e secondo me il problema è proprio questo, perche dentro alle funzioni, l'array fatture[i] mi da il seguente errore:

    Microsoft JET Database Engine (0x80040E10)
    Nessun valore specificato per alcuni parametri necessari.

    se invece al posto della i metto 1 che è il secondo valore dell'array, non mi da errore, e crea il pdf correttamente!!!

    è possibile che la variabile del ciclo " i ", una volta che entra dentro a una funzione, perde il suo valore???


  10. #10
    Originariamente inviato da androita
    è possibile che la variabile del ciclo " i ", una volta che entra dentro a una funzione, perde il suo valore???
    è possibile E probabile. per sicurezza (e per correttezza formale) passa il valore alla funzione

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.