Impression tableau sur plusieurs pages

willinfeo Messages postés 55 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 4 décembre 2005 - 4 déc. 2005 à 14:44
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 30 déc. 2005 à 08:33
Bonjour a tous,

Comment peut-on imprimer un tableau sur plusieurs pages en repetant entete et pied de page sans connaitre le nombre de ligne a l'avance ?

Merci

5 réponses

quebectech Messages postés 11 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 28 décembre 2005
5 déc. 2005 à 22:25
J'aimerais bien savoir cette solution moi aussi
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
28 déc. 2005 à 14:10
Là il faut mettre la main au clavier...

Cela devrait ressembler à ce qui suit...

Pour cela créer des functions
- Tableau_WriteDeb() pour l'écriture de l'entête
- Tableau_WriteLigne() pour l'écriture des données
- Tableau_WriteEnd() pour l'écriture du pied de page

Toutes ces fonctions écriront dans un document vierge crée par exemple comme ceci...
Win = window.open("","",..etc..);
Win.document.open();

On écrit l'entête...
Tableau_WriteDeb()

A chaque écriture on incrémente un compteur...
Tableau_WriteLigne();
NbrLigne ++;

Quand le compteur atteind le nombre de lignes souhaitées par page on écrit l'enpied...

Tableau_WriteEnd()


Puis on écrit dans le document la ligne suivante...
document.write('
');
pour forcer un saut de page...

...et on continu tant que des données sont à traiter...

En final on ferme le document ainsi écrit...
Win.document.close();

Et on envoie à l'impression avec
Win.document.print();

Soyez indulgent je ne l'ai pas fait mais cela devrait marcher...

Bonne programmation...
0
quebectech Messages postés 11 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 28 décembre 2005
28 déc. 2005 à 19:16
Merci PetoleTeam,

mais concretement dans un script ca ressemblerait a quoi ? Je suis un peu perdu dan tout ca....
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
29 déc. 2005 à 10:43
La maison ne reculant devant aucun sacrifice...

Copie les lignes suivantes dans un new fichier et essaies de te rendre compte d'une possible méthode, il y en a d'autres...

Cela dépend de la façon de gérer tes données bien sur...

--------------------------------------------------------------------------
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Bout de code...</title>
<STYLE media="print" TYPE="text/css">.noPrint {display:none}</STYLE>
<STYLE TYPE="text/css">
BODY {color:#000000;font-size:13px;font-family:Verdana;text-align:normal;}
.Text {color:#0000f0;font-size:11px;font-family:Verdana;text-align:normal;}
.Entete{color:#000000;font-size:13px;font-family:Verdana;text-align:center;font-weight:bold;}
.Empied{color:#000000;font-size:11px;font-family:Verdana;text-align:center;font-weight:normal;}
</STYLE>
<SCRIPT language="JavaScript">
var NbrLigne;
var NbrPage;
var NbrParPage = 5;

//-------------
function Data(){
this.Col0 = new Array();
this.Col1 = new Array();
this.Col2 = new Array();
this.Col3 = new Array();
this.AddData= AddData;
}
//-------------------------------------------
function AddData( col0_, col1_, col2_, col3_){
var i = this.Col1.length;
this.Col0[i] = col0_;
this.Col1[i] = col1_;
this.Col2[i] = col2_;
this.Col3[i] = col3_;
}
//--------------------
function WriteEntete(){
var Html="";
NbrLigne = 0;
NbrPage ++;
Html +="D&eacute;but de Page "+ NbrPage +", \";
document.write( Html);
}
//-------------------------
function WriteLigne( data_, index_){
var Html=\"\";
with( data_){
Html +=\"----
\";
Html +=\"" +Col0[index_] +", \";
Html +=\"" +Col1[index_] +", \";
Html +=\"" +Col2[index_] +", \";
Html +=\""+ Col3[index_] +", \";
Html +=\"\";
}
NbrLigne ++;
document.write( Html);
}
//--------------------
function WriteEnpied(){
var Html=\"\";
Html +=\"----
Fin de Page
";
document.write( Html);
}
//----------------------
function WriteSautPage(){
document.write('
');
}
//---------------------
function DocWriteData(){
var i;
NbrPage =0;
WriteEntete();
for( i =0; i < Ligne.Col0.length;i++){
WriteLigne( Ligne, i);
if( NbrLigne > NbrParPage){
WriteEnpied();
WriteEntete();
WriteSautPage();
NbrLigne=0;
}
}
WriteEnpied();
}

//---------------------
var Ligne = new Data();
Ligne.AddData( "Ligne 1", "Colonne 1", "Colonne 2", "Colonne 3");
Ligne.AddData( "Ligne 2", "Colonne 1", "Colonne 2", "Colonne 3");
Ligne.AddData( "Ligne 3", "Colonne 1", "Colonne 2", "Colonne 3");
Ligne.AddData( "Ligne 4", "Colonne 1", "Colonne 2", "Colonne 3");
Ligne.AddData( "Ligne 5", "Colonne 1", "Colonne 2", "Colonne 3");
Ligne.AddData( "Ligne 6", "Colonne 1", "Colonne 2", "Colonne 3");
Ligne.AddData( "Ligne 7", "Colonne 1", "Colonne 2", "Colonne 3");
Ligne.AddData( "Ligne 8", "Colonne 1", "Colonne 2", "Colonne 3");
Ligne.AddData( "Ligne 9", "Colonne 1", "Colonne 2", "Colonne 3");
Ligne.AddData( "Ligne 10", "Colonne 1", "Colonne 2", "Colonne 3");
</SCRIPT>
</HEAD>

<CENTER>
<script language="JavaScript">
DocWriteData();
</script>

&nbsp;

SCRIPT fait &agrave;&nbsp;la va vite,

il reste pas mal de probl&egrave;me &agrave;&nbsp;r&eacute;soudre mais....

A TOI de jouer...

&nbsp;

Maintenant va voir dans l'aper&ccedil;u avant impression...

</CENTER>

</HTML>

--------------------------------------------------------------------------
Allez bon travail...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
30 déc. 2005 à 08:33
Du nouveau...

J'ai bossé toute la nuit, heu c'est faux, pour livrer un exemple complet d'impression de tableau..

Va voir sur les nouveaux codes....
En espérant t'avoir donné un coup de main...
Bonne PROG pendant les fêtes....!!!
;O])
0
Rejoignez-nous