Impression tableau sur plusieurs pages

Signaler
Messages postés
55
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
4 décembre 2005
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Messages postés
11
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
28 décembre 2005

J'aimerais bien savoir cette solution moi aussi
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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...
Messages postés
11
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
28 décembre 2005

Merci PetoleTeam,

mais concretement dans un script ca ressemblerait a quoi ? Je suis un peu perdu dan tout ca....
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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...
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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])