Stampa ordine

Kelly

Utente Attivo
5 Set 2008
112
1
18
Ho utilizzato la funzione print con javascript per stampare alcuni dati che inserisco dinamicamente in una tabella, visto che a volte la stampa può essere di più fogli, vorrei sapere come posso gestire l'interruzione di pagina, evitando l'interruzione brutale....è possibile?




grazie mille

Codice:
 while (i< Arrayordine.length)
    {
     var descrizione= Arrayordine[4];

     rigaordine= rigaordine +"<tr><td height='10px'><font size='2'>"+testoordinenew[3]+"</font></td><td height='7px'><font size='2'>"+ testoordinenew[10]+"</font></td><td height='10px'><font size='2'>"+ descrizione +"</font></td><td ><font size='2'>"+testoordinenew[5]+"</font></td><td><font size='2'>"+testoordinenew[6]+"</font></td></tr>";
     i++;

    }
 
      // Apro una finestra pop-up nella quale inserisco i blocchi  

      var a = window.open('','','width=150px,height=250px');  
      a.document.open("text/html");  

      a.document.write("<html><head></head><body>"); 
      
    
      a.document.write("<div style ='height:640px; width:570px;'><table border='1' width='680');              .document.write(rigaordine);  
      a.document.write("</table></div></body></html>");  
     
      a.document.close();  
    
      a.print(); 
      a.window.close();
       
    }
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
scusa se il codice è un po' arruffato e c'è da sistemare il bordo tabella (se lo togli, nulla da sistemare)
a me funziona
ciao
Marino
PHP:
<!DOCTYPE html>
<html>
<head>
<title>Multipage Form</title>

<script src="jquery-1.11.1.js"></script>

<script type=text/javascript>
function myTable()
{
	var len1 = 500;
	var len2 = 10;

	var testoordinenew = new Array(len2);
	for (var j = 0; j < len2; j++) {
		testoordinenew[j] = "xxxxx";
	}

	var Arrayordine = new Array(len1);
	for (var i = 0; i < len1; i++) {
		Arrayordine[i] = testoordinenew;
	}
	alert('myTable : '+Arrayordine.length);

	var i = 0;
	var nrighe = 0;
	var rigaordine	= "";

	while (i< Arrayordine.length)
	{
		var testoordinenew = Arrayordine[i];
		var descrizione= Arrayordine[i][4];

		var riga = "<tr>";
		if (nrighe > 24)
		{
			var riga = "<tr class='page-break'>";
			nrighe = 0;
		}

		var riga =	riga
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				* "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "</tr>";
		nrighe++;

		rigaordine = rigaordine + riga;
		i++;
	}
	alert(rigaordine);

	// Apro una finestra pop-up nella quale inserisco i blocchi  

	var a = window.open('','','width=150px,height=250px'); 

	a.document.open("text/html");  
	a.document.write("<html><head><style type='text/css'>"); 
	a.document.write(" table tr.page-break{page-break-after:always} ");
	a.document.write("</style></head><body>"); 
	a.document.write("<div style ='height:640px; width:570px;'><table border='1' width='680'");
	a.document.write(rigaordine);  
	a.document.write("</table></div></body></html>");  
	a.document.close();  

	a.print(); 
	a.window.close();
	return true;
};
</script>

</head>
<body>
<form method="post" enctype="multipart/form-data" action="">
	<input type="button" onClick="return myTable();" value="Continue"/>    
</form>
</body>
</html>
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ho cercato di rendere le pagine più presentabili
vedi se ti va bene così,
ciao
Marino
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Multipage Form</title>

<script src="jquery-1.11.1.js"></script>

<script type=text/javascript>
function myTable()
{
	var len1 = 500;
	var len2 = 10;

	var testoordinenew = new Array(len2);
	for (var j = 0; j < len2; j++) {
		testoordinenew[j] = "xxxxx";
	}

	var Arrayordine = new Array(len1);
	for (var i = 0; i < len1; i++) {
		Arrayordine[i] = testoordinenew;
	}
	alert('myTable : '+Arrayordine.length);

	var i = 0;
	var nrighe = 0;
	var rigaordine	= "";
	var rigats =	"<tr>";
	var rigat =	"<td height='10px'><font size='2'>"
			+ "colonna1"
			+ "</font></td>"
			+ "<td height='10px'><font size='2'>"
			+ "colonna2"
			+ "</font></td>"
			+ "<td height='10px'><font size='2'>"
			+ "colonna3"
			+ "</font></td>"
			+ "<td height='10px'><font size='2'>"
			+ "colonna4"
			+ "</font></td>"
			+ "<td height='10px'><font size='2'>"
			+ "colonna5"
			+ "</font></td>"
			+ "</tr>";


	while (i< Arrayordine.length)
	{
		if (nrighe == 0)
		{
			rigaordine = rigaordine + rigats + rigat;
			rigats = "<tr class='page-break'>";
		}
		nrighe++;

		var testoordinenew = Arrayordine[i];
		var descrizione= Arrayordine[i][4];

		var riga =	"<tr>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "</tr>";
		if (nrighe > 49)
		{
			nrighe = 0;
		}

		rigaordine = rigaordine + riga;
		i++;
	}
	alert(rigaordine);

	// Apro una finestra pop-up nella quale inserisco i blocchi  

	var a = window.open('','','width=150px,height=250px'); 

	a.document.open("text/html");  
	a.document.write("<html><head><style type='text/css'>"); 
	a.document.write(" table tr.page-break{page-break-before:always} ");
	a.document.write("</style></head><body>"); 
	a.document.write("<table border='1' width='680'>");
	a.document.write(rigaordine);  
	a.document.write("</table></body></html>");  
	a.document.close();  

	a.print(); 
	a.window.close();
	return true;
};
</script>

</head>
<body>
<form method="post" enctype="multipart/form-data" action="">
	<input type="button" onClick="return myTable();" value="Continue"/>    
</form>
</body>
</html>
 

Kelly

Utente Attivo
5 Set 2008
112
1
18
grazie mille la studio e me la provo...


ciao ;-)


ho cercato di rendere le pagine più presentabili
vedi se ti va bene così,
ciao
Marino
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Multipage Form</title>

<script src="jquery-1.11.1.js"></script>

<script type=text/javascript>
function myTable()
{
	var len1 = 500;
	var len2 = 10;

	var testoordinenew = new Array(len2);
	for (var j = 0; j < len2; j++) {
		testoordinenew[j] = "xxxxx";
	}

	var Arrayordine = new Array(len1);
	for (var i = 0; i < len1; i++) {
		Arrayordine[i] = testoordinenew;
	}
	alert('myTable : '+Arrayordine.length);

	var i = 0;
	var nrighe = 0;
	var rigaordine	= "";
	var rigats =	"<tr>";
	var rigat =	"<td height='10px'><font size='2'>"
			+ "colonna1"
			+ "</font></td>"
			+ "<td height='10px'><font size='2'>"
			+ "colonna2"
			+ "</font></td>"
			+ "<td height='10px'><font size='2'>"
			+ "colonna3"
			+ "</font></td>"
			+ "<td height='10px'><font size='2'>"
			+ "colonna4"
			+ "</font></td>"
			+ "<td height='10px'><font size='2'>"
			+ "colonna5"
			+ "</font></td>"
			+ "</tr>";


	while (i< Arrayordine.length)
	{
		if (nrighe == 0)
		{
			rigaordine = rigaordine + rigats + rigat;
			rigats = "<tr class='page-break'>";
		}
		nrighe++;

		var testoordinenew = Arrayordine[i];
		var descrizione= Arrayordine[i][4];

		var riga =	"<tr>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "<td height='10px'><font size='2'>"
				+ "xxxxx"
				+ "</font></td>"
				+ "</tr>";
		if (nrighe > 49)
		{
			nrighe = 0;
		}

		rigaordine = rigaordine + riga;
		i++;
	}
	alert(rigaordine);

	// Apro una finestra pop-up nella quale inserisco i blocchi  

	var a = window.open('','','width=150px,height=250px'); 

	a.document.open("text/html");  
	a.document.write("<html><head><style type='text/css'>"); 
	a.document.write(" table tr.page-break{page-break-before:always} ");
	a.document.write("</style></head><body>"); 
	a.document.write("<table border='1' width='680'>");
	a.document.write(rigaordine);  
	a.document.write("</table></body></html>");  
	a.document.close();  

	a.print(); 
	a.window.close();
	return true;
};
</script>

</head>
<body>
<form method="post" enctype="multipart/form-data" action="">
	<input type="button" onClick="return myTable();" value="Continue"/>    
</form>
</body>
</html>
 

Kelly

Utente Attivo
5 Set 2008
112
1
18
Marino,

ho rivisto il codice, e l ho adattatto...., il problema è che non mi funziona il salto pagina, praticamente la cosa per la quale ti ho scritto !
non è che posso chiederti se a occhio vedi qualcosa di strano?
Invece il tuo codice funziona... :(


Codice:
   function stampaordine()
    {
    var rigaordine="";
    var ordinelocalstorage = localStorage[codcli]; 
     var Arrayordine = ordinelocalstorage.split("|");//QUI TRASFERISCO I DATI NELL ARRAY
    i=0;

      var intest ="<tr><img width='35' height='40' src='logo.gif'> </tr>"
	  +"<br><STRONG><tr><th><font size='2'>CODICE</font></th><th><font size='2'>EAN</font></th><th><font size='2'>DESCRIZIONE"
	  + "</font></th><th><font size='2'>QT</font></th><th><font size='2'>NOTE</font></th></tr></STRONG>";
	  var rigatsbreak="";
	  var testoordine="";
	  var numerorighe=0;
	  
		while (i< Arrayordine.length)
			{
				
				
			if (numerorighe == 0)
				{
				
				var testoordine = testoordine + rigatsbreak + intest;
				rigatsbreak = "<tr class='page-break'>";
				}
			numerorighe++;
			var testoordinenew = Arrayordine[i].split(",");
  
			if (testoordinenew[4].length ==0)
				testoordinenew[4]="&nbsp;";
			if (testoordinenew[2].length > 35)
			var descrizione= testoordinenew[2].substr(0,35); 
			else 
			var descrizione= testoordinenew[2];
			
            var rigaarticoli="<tr><td height='10px'><font size='2'>"+testoordinenew[1]+"</font></td><td height='7px'><font size='2'>"+ testoordinenew[8]+"</font></td><td height='10px'><font size='2'>"+ descrizione +"</font></td><td ><font size='2'>"+testoordinenew[3]+"</font></td><td><font size='2'>"+testoordinenew[4]+"</font></td></tr>";
			
			if (numerorighe > 20)
				{
				numerorighe = 0;
				}

     		            testoordine= testoordine + rigaarticoli;
			i++;			
			}

   	var a = window.open('','','width=150px,height=250px'); 

	a.document.open("text/html");  
	a.document.write("<html><head><style type='text/css'>"); 
	a.document.write(" table tr.page-break{page-break-before:always} ");
	a.document.write("</style></head><body>"); 
	a.document.write("<table border='1' width='680'>");
	a.document.write(testoordine);  
	a.document.write("</table></body></html>");  
	a.document.close();  
 

    

      // Invio il documento alla stampante  
      
      a.print(); 
      a.window.close();
       
    }
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
tr viene passato dalla variabile, la prima volta(prima pagina è solo tr) poi viene cambiato aggiungendo il salto pagina, rivedi queste righe, le ho modificate (vedi se devi introdurre colspan sulla riga dell'immagine),
ciao
Marino
HTML:
      var intest ="<td><img width='35' height='40' src='logo.gif'> </td></tr>"
	  +"<br><STRONG><tr><th><font size='2'>CODICE</font></th><th><font size='2'>EAN</font></th><th><font size='2'>DESCRIZIONE"
	  + "</font></th><th><font size='2'>QT</font></th><th><font size='2'>NOTE</font></th></tr></STRONG>";
	  var rigatsbreak="<tr>";
	  var testoordine="";
	  var numerorighe=0;
	  
		while (i< Arrayordine.length)
			{
			if (numerorighe == 0)
				{
				var testoordine = testoordine + rigatsbreak + intest;
				rigatsbreak = "<tr class='page-break'>";
				}
			numerorighe++;
 

Kelly

Utente Attivo
5 Set 2008
112
1
18
Perfetto.....mancava il tr, e ci voleva colspan....


grazie infinite...mitico Marino


tr viene passato dalla variabile, la prima volta(prima pagina è solo tr) poi viene cambiato aggiungendo il salto pagina, rivedi queste righe, le ho modificate (vedi se devi introdurre colspan sulla riga dell'immagine),
ciao
Marino
HTML:
      var intest ="<td><img width='35' height='40' src='logo.gif'> </td></tr>"
	  +"<br><STRONG><tr><th><font size='2'>CODICE</font></th><th><font size='2'>EAN</font></th><th><font size='2'>DESCRIZIONE"
	  + "</font></th><th><font size='2'>QT</font></th><th><font size='2'>NOTE</font></th></tr></STRONG>";
	  var rigatsbreak="<tr>";
	  var testoordine="";
	  var numerorighe=0;
	  
		while (i< Arrayordine.length)
			{
			if (numerorighe == 0)
				{
				var testoordine = testoordine + rigatsbreak + intest;
				rigatsbreak = "<tr class='page-break'>";
				}
			numerorighe++;
 
Discussioni simili
Autore Titolo Forum Risposte Data
J modifica spooler di stampa per stampare in ordine di nome i files pdf Windows e Software 2
D Stampa a video solo campi compilati MySQL 1
M Problemi con la stampa dei valori in php PHP 1
D Stampa a video in altra pagina html Database 3
K Margini di stampa Photoshop 4
Samuele Ronzani Stampa su stampante predefinita Javascript 11
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
M Stampa fpdf e lettere accentate PHP 0
S incoerenza di stampa. problemi con il magenta Photoshop 3
atipika INSERIRE ICONE DOWNLOAD E STAMPA WORDPRESS WordPress 10
L [RISOLTO] Stampa a video risultato count in html PHP 13
S [PHP] Stampa a video Nome e Cognome in seguito a login PHP 1
S Consigli per invio di comunicati stampa Discussioni Varie 2
P [WordPress] B2B stampa abbigliamento - plugin woocommerce? WordPress 2
M [PHP] Database e stampa files PHP 2
E [Photoshop] consigli per stampa puzzle personalizzato Photoshop 0
F [PHP + MYSQLI] Stampa a video di una tabella nel database PHP 4
P problema di stampa con photoshop Presentati al Forum 0
R [PHP] Problema stampa array bidimensionali con formula $html.=<<<myHtml... PHP 2
A Stampa da PHP PHP 4
jailbait [PHP] Upload immagine e stampa a schermo PHP 0
L border in tabella php + layout stampa PHP 0
E [PHP] associazione id e stampa a video PHP 0
napuleone [HTML] Numerazione pagine in stampa HTML e CSS 2
K [Visual Basic] Stampa e modifica record non funziona più Visual Basic 0
K [ASP.Net] Problema stampa e modifica ms sql ASP.NET 0
K stampa e modifica tabella in php e ms sql PHP 2
W [Photoshop] Problemi di stampa Photoshop 1
M [HTML] stampa riga condizionata HTML e CSS 3
D Stampa Webdesign e Grafica 1
S [Javascript] [HTML] problema nella stampa degli elementi della pagina Javascript 3
napuleone [Javascript] cambiare i parametri di stampa con js Javascript 2
E [PHP] creazioni nuove variabili per modulo di stampa PHP 1
N [PHP] stampa video PHP 3
otto9due [PHP] Dubbio esistenzaile: Regex email e stampa valori trovati.. PHP 5
Roulder [PHP] Stampa file di testo Automatico senza conferma PHP 1
V [PHP] stampa a video valori query array multidimensionale PHP 4
Rikk73 [C#] problema con stampa da query linq EnumerableRowCollection .NET Framework 0
M Stampa immagine video tabella HTML e CSS 4
F layout stampa css HTML e CSS 2
G PHP stampa di immagini PHP 2
V Stampa con msword PHP 3
teotode stampa automatica da php PHP 4
M stampa modello f24 con php PHP 1
C Cookiechoices Stampa pagina Javascript 2
Z recupero e stampa a video di immagini da database PHP 3
felino [Smarty] Stampa di una tabella dinamica, condizione su una cella PHP 1
J indirizzare coda di stampa Windows e Software 11
C Textarea stampa font personalizzato PHP 5
A separare la stampa dei valori dell'array PHP 1

Discussioni simili