Accueil > > > C'EST COMME DE LE PAGINATION À PART QUE C'EST POUR L'IMPRESSION
C'EST COMME DE LE PAGINATION À PART QUE C'EST POUR L'IMPRESSION
Information sur la source
Description
vous choisissez le nombre d'enregistrement à ne pas dépasser par page, et ça vous imprime ici sous forme de tableau, un tableau par page qui n'est pas coupé en fin de page en fin les problèmes de mise en page pour l'impression habituels quoi! Pas besoin d'ouvrir la fenêtre du choix d'imprimante, elle s'ouvre toute seule.
Source
- <!--
- Auteur Jessie
- J'ai bien détaillé le code, exprès pour les Newbies
- Pour les personnes plus avancés, vous passez certains commentaires
- trop détaillés.
- J'espère que ça vous aidera, je n'ai pas trouvé de source parlant de la
- mise en page pour l'impression, avec un tableau qui reprend des données
- d'une table.
-
-
- Dernière chose
- J'ai limité à 18 enregistrements par tableau, par ce que pour mon cas
- il n'en tenait pas plus.
-
- Sachant aussi qu'il faut jouer avec les marges, je vous conseille de vous intéresser
- Au CSS.
- Si Questions, vous savez où me joindre.
-
- -->
-
-
- <!--#include file="../../BD/connexionbase.asp"-->
- <%
- Dim strSQL29
- '*****************************************************************************
- '* On cree sa requete SQL (ici c'est la mienne, mettre bien entendu la votre)*
- '*****************************************************************************
-
- StrSQL29 = "SELECT Sum(CONGES.Nbre) AS SommeDeNbre, admin.ID1, admin.Fonction, Groupe.Services, CONGES.DateDeb, CONGES.DateFin, Month(CONGES.DateFin) AS MOIS, Year(CONGES.DateFin)As Expr2, CONGES.Nature, CONGES.Valider, CONGES.Refus, CONGES.IDConges, CONGES.DEM, admin.nom, admin.prenom FROM Groupe INNER JOIN (admin INNER JOIN CONGES ON admin.ID1 = CONGES.ID1) ON Groupe.Groupes = admin.SERVICE1 GROUP BY admin.ID1, admin.SERVICE1, Groupe.Groupes, admin.Fonction, Groupe.Services, CONGES.DateDeb, CONGES.IDConges, CONGES.DEM, CONGES.DateFin, CONGES.Nature, CONGES.Valider, CONGES.Refus, admin.nom, admin.prenom HAVING Groupe.Services = '"&request.querystring("Serv")&"' AND Month(CONGES.DateFin)="&request.querystring("mois")&" AND CONGES.Valider=True ORDER BY DateDeb DESC;"
-
- SET rs = Server.CreateObject("AdoDB.RecordSet")
-
-
- '************************************************************
- '* Récupération des informations du select dans un RecordSet*
- '************************************************************
-
- rs.Open strSQL29, conn,3,3
-
-
- %>
- <HTML>
- <HEAD>
- <!--
- Ici c'est ma ligne pour ma feuille de style, donc si vous en avez pas
- enlever la 1 ere ligne ci dessous (<link rel etc...>)
- -->
- <link rel = "stylesheet" type = "text/css" href = "../../CSS/Absences_Print.css">
-
-
- <TITLE>Tableau récapitulatif des Absences par Services pour le Mois de <%=request.querystring("mois")%></TITLE>
- <!--
- Petit code que j'ai trouvé sur un site
- qui permet de revenir à la page précedente
- une fois que l'on a imprimé au bout 5000 millisecondes
- elle revient à la page précèdente.
- -->
-
- <!-- DEBUT REMOVE PRINT-->
- <!--http://www.javascriptkit.com/-->
- <script language="JavaScript">
-
- function revertback()
- {
- setTimeout("history.go(-1)",5000)
- }
- window.onafterprint=revertback
-
- </script>
- <!-- FIN REMOVE PRINT-->
- </HEAD>
-
- <!--
- La ligne ci dessous permet de charger votre page
- avec la fenetre de l'impression qui s'ouvre automatiquement
- donc si vous ne voulez pas, mettre un <Body> tout simple
- -->
- <BODY OnLoad = "window.print()">
-
- <%
- '****************************************
- '*Le rs.pagesize permet de limiter *
- '*le nombre d'enregistrement sur ma page*
- '*ici c'est 18 enregistrements *
- '****************************************
-
- rs.pagesize = 18
-
- '******************************************************************************
- '*Si vous enlevez la ligne "response.write..." du commentaire, ça vous donnera*
- '*le nombre de page qui dépend du nbre d'enregistrement par page (ici 18), *
- '*et le nbre d'enregistrement total qui dépend de votre requête. *
- '*response.write rs.pagecount& " " &rs.recordcount& " *
- '******************************************************************************
-
- '************************************
- '*Limite à ne pas dépasser *
- '*c'est le total des enregistrements*
- '*de ma requête *
- '************************************
-
- LimiteFin = rs.recordcount
-
- '******************************************************************
- '*Si il n'y a pas d'enregistrement ma petite fonction Validation()*
- '*ouvre une boite de dialogue Vbscript donc vous devez remplacer *
- '*cette ligne par ce que vous voulez. *
- '*Exemple: response.write "C'est vide" *
- '******************************************************************
-
- If rs.EOF and rs.BOF then
-
- response.write "<Script language='VBScript'>Validation()</SCRIPT>"
- else
-
- '**********************************************************
- '*On commence la 1ère boucle qui permet de passer le total*
- '*des enregistrements *
- '**********************************************************
-
- For i = 0 to LimiteFin
-
- %>
-
- <!--
- Attention si vous laissez le titre dans la boucle ainsi que
- les En-Têtes de colonne, vous aurez un tableau avec un titre
- sur chaque feuille et les En-Tête de chaque colonne aussi
- Mais moi je trouve que c'est plus claire d'avoir le titre et
- le tableau complet qui se répète sur chacune des feuilles
- -->
-
- <H1>Tableau récapitulatif des Absences par Services pour le Mois de <%=Ucase(t)%></H1>
-
-
- <DIV>
-
- <!--
- Commencement du tableau
- Enlever toutes les ( class="table1", etc.. ) (c'est pour ma feuille de style CSS)
- ou créer une feuille de style
- Si vous ne savez pas ce qu'est une feuille de style, regardez sur le net
- -->
-
- <TABLE class="table1">
-
- <!--En-Tête du tableau-->
- <TR>
- <TH class="histo">Utilisateurs</TH>
- <TH class="histo">Services</TH>
- <TH class="histo">Date de Debut</TH>
- <TH class="histo">Date de Fin</TH>
-
-
- </TR>
-
- <%
- '*****************************************************
- '*2ème boucle imbriquée dans la 1ère qui va permettre*
- '*de limiter le nbre d'enregistrement à (ici 18) par *
- '*page *
- '*****************************************************
-
-
- For x = 1 to rs.pagesize
-
- '****************************************
- '*Corp de mon tableau avec récupération *
- '*des variables de ma requête, donc à *
- '*changer avec les votres. *
- '****************************************
-
- %>
-
-
- <TR class="histo">
- <TD class="histo"><%= Ucase(rs("Nom"))%> <%=Ucase(rs("Prenom"))%></TD>
- <TD class="histo"><%= Ucase(rs("Services"))%></TD>
- <TD class="histo"><%= rs("DateDeb") %></TD>
- <TD class="histo"><%= rs("DateFin") %></TD>
- </TR>
-
- <%
-
- '*************************************
- '*Je passe à l'enregistrement suivant*
- '*************************************
- rs.movenext
-
- '*************************************
- '*Si plus d'enregistrement on sort de*
- '*la 2ème boucle *
- '*************************************
-
- If rs.eof Then Exit for
-
- '*********************************
- '*autrement on continue la boucle*
- '*********************************
-
- Next
-
- '****************
- '*Fin de Tableau*
- '****************
- %>
- </TABLE></DIV>
-
- <%
-
- '*************************************
- '*Si plus de page on sort de pages *
- '*on sort de la 1 ère boucle *
- '*************************************
-
- If rs.eof Then Exit for
-
- '***********************************************************************
- '*Si encore des pages on génère un saut de page, ici(<Br class='saut'>)*
- '*c'est ma feuille de style CSS, Vous, vous remplacez par *
- '*<Br style='page-break-after = always;'>, si pas feuille de style *
- '*Ca vous permet d'avoir un tableau par page *
- '***********************************************************************
- If not Rs.EOF then
- response.write "<Br class='saut'>"
- End If
-
-
- Next
-
-
- '**********************************************
- '*Je ferme mon premier "If" vous vous souvenez*
- '*apres le BODY. *
- '**********************************************
- End If
-
-
- '****************************************
- '*Et pour finir je cloture mon recordset *
- '*et je le vide *
- '****************************************
-
- rs.close
- Set rs = Nothing
- %>
-
- </BODY>
- <!--#include file="../../BD/deconnexionbase.asp"-->
-
- </HTML>
<!--
Auteur Jessie
J'ai bien détaillé le code, exprès pour les Newbies
Pour les personnes plus avancés, vous passez certains commentaires
trop détaillés.
J'espère que ça vous aidera, je n'ai pas trouvé de source parlant de la
mise en page pour l'impression, avec un tableau qui reprend des données
d'une table.
Dernière chose
J'ai limité à 18 enregistrements par tableau, par ce que pour mon cas
il n'en tenait pas plus.
Sachant aussi qu'il faut jouer avec les marges, je vous conseille de vous intéresser
Au CSS.
Si Questions, vous savez où me joindre.
-->
<!--#include file="../../BD/connexionbase.asp"-->
<%
Dim strSQL29
'*****************************************************************************
'* On cree sa requete SQL (ici c'est la mienne, mettre bien entendu la votre)*
'*****************************************************************************
StrSQL29 = "SELECT Sum(CONGES.Nbre) AS SommeDeNbre, admin.ID1, admin.Fonction, Groupe.Services, CONGES.DateDeb, CONGES.DateFin, Month(CONGES.DateFin) AS MOIS, Year(CONGES.DateFin)As Expr2, CONGES.Nature, CONGES.Valider, CONGES.Refus, CONGES.IDConges, CONGES.DEM, admin.nom, admin.prenom FROM Groupe INNER JOIN (admin INNER JOIN CONGES ON admin.ID1 = CONGES.ID1) ON Groupe.Groupes = admin.SERVICE1 GROUP BY admin.ID1, admin.SERVICE1, Groupe.Groupes, admin.Fonction, Groupe.Services, CONGES.DateDeb, CONGES.IDConges, CONGES.DEM, CONGES.DateFin, CONGES.Nature, CONGES.Valider, CONGES.Refus, admin.nom, admin.prenom HAVING Groupe.Services = '"&request.querystring("Serv")&"' AND Month(CONGES.DateFin)="&request.querystring("mois")&" AND CONGES.Valider=True ORDER BY DateDeb DESC;"
SET rs = Server.CreateObject("AdoDB.RecordSet")
'************************************************************
'* Récupération des informations du select dans un RecordSet*
'************************************************************
rs.Open strSQL29, conn,3,3
%>
<HTML>
<HEAD>
<!--
Ici c'est ma ligne pour ma feuille de style, donc si vous en avez pas
enlever la 1 ere ligne ci dessous (<link rel etc...>)
-->
<link rel = "stylesheet" type = "text/css" href = "../../CSS/Absences_Print.css">
<TITLE>Tableau récapitulatif des Absences par Services pour le Mois de <%=request.querystring("mois")%></TITLE>
<!--
Petit code que j'ai trouvé sur un site
qui permet de revenir à la page précedente
une fois que l'on a imprimé au bout 5000 millisecondes
elle revient à la page précèdente.
-->
<!-- DEBUT REMOVE PRINT-->
<!--http://www.javascriptkit.com/-->
<script language="JavaScript">
function revertback()
{
setTimeout("history.go(-1)",5000)
}
window.onafterprint=revertback
</script>
<!-- FIN REMOVE PRINT-->
</HEAD>
<!--
La ligne ci dessous permet de charger votre page
avec la fenetre de l'impression qui s'ouvre automatiquement
donc si vous ne voulez pas, mettre un <Body> tout simple
-->
<BODY OnLoad = "window.print()">
<%
'****************************************
'*Le rs.pagesize permet de limiter *
'*le nombre d'enregistrement sur ma page*
'*ici c'est 18 enregistrements *
'****************************************
rs.pagesize = 18
'******************************************************************************
'*Si vous enlevez la ligne "response.write..." du commentaire, ça vous donnera*
'*le nombre de page qui dépend du nbre d'enregistrement par page (ici 18), *
'*et le nbre d'enregistrement total qui dépend de votre requête. *
'*response.write rs.pagecount& " " &rs.recordcount& " *
'******************************************************************************
'************************************
'*Limite à ne pas dépasser *
'*c'est le total des enregistrements*
'*de ma requête *
'************************************
LimiteFin = rs.recordcount
'******************************************************************
'*Si il n'y a pas d'enregistrement ma petite fonction Validation()*
'*ouvre une boite de dialogue Vbscript donc vous devez remplacer *
'*cette ligne par ce que vous voulez. *
'*Exemple: response.write "C'est vide" *
'******************************************************************
If rs.EOF and rs.BOF then
response.write "<Script language='VBScript'>Validation()</SCRIPT>"
else
'**********************************************************
'*On commence la 1ère boucle qui permet de passer le total*
'*des enregistrements *
'**********************************************************
For i = 0 to LimiteFin
%>
<!--
Attention si vous laissez le titre dans la boucle ainsi que
les En-Têtes de colonne, vous aurez un tableau avec un titre
sur chaque feuille et les En-Tête de chaque colonne aussi
Mais moi je trouve que c'est plus claire d'avoir le titre et
le tableau complet qui se répète sur chacune des feuilles
-->
<H1>Tableau récapitulatif des Absences par Services pour le Mois de <%=Ucase(t)%></H1>
<DIV>
<!--
Commencement du tableau
Enlever toutes les ( class="table1", etc.. ) (c'est pour ma feuille de style CSS)
ou créer une feuille de style
Si vous ne savez pas ce qu'est une feuille de style, regardez sur le net
-->
<TABLE class="table1">
<!--En-Tête du tableau-->
<TR>
<TH class="histo">Utilisateurs</TH>
<TH class="histo">Services</TH>
<TH class="histo">Date de Debut</TH>
<TH class="histo">Date de Fin</TH>
</TR>
<%
'*****************************************************
'*2ème boucle imbriquée dans la 1ère qui va permettre*
'*de limiter le nbre d'enregistrement à (ici 18) par *
'*page *
'*****************************************************
For x = 1 to rs.pagesize
'****************************************
'*Corp de mon tableau avec récupération *
'*des variables de ma requête, donc à *
'*changer avec les votres. *
'****************************************
%>
<TR class="histo">
<TD class="histo"><%= Ucase(rs("Nom"))%> <%=Ucase(rs("Prenom"))%></TD>
<TD class="histo"><%= Ucase(rs("Services"))%></TD>
<TD class="histo"><%= rs("DateDeb") %></TD>
<TD class="histo"><%= rs("DateFin") %></TD>
</TR>
<%
'*************************************
'*Je passe à l'enregistrement suivant*
'*************************************
rs.movenext
'*************************************
'*Si plus d'enregistrement on sort de*
'*la 2ème boucle *
'*************************************
If rs.eof Then Exit for
'*********************************
'*autrement on continue la boucle*
'*********************************
Next
'****************
'*Fin de Tableau*
'****************
%>
</TABLE></DIV>
<%
'*************************************
'*Si plus de page on sort de pages *
'*on sort de la 1 ère boucle *
'*************************************
If rs.eof Then Exit for
'***********************************************************************
'*Si encore des pages on génère un saut de page, ici(<Br class='saut'>)*
'*c'est ma feuille de style CSS, Vous, vous remplacez par *
'*<Br style='page-break-after = always;'>, si pas feuille de style *
'*Ca vous permet d'avoir un tableau par page *
'***********************************************************************
If not Rs.EOF then
response.write "<Br class='saut'>"
End If
Next
'**********************************************
'*Je ferme mon premier "If" vous vous souvenez*
'*apres le BODY. *
'**********************************************
End If
'****************************************
'*Et pour finir je cloture mon recordset *
'*et je le vide *
'****************************************
rs.close
Set rs = Nothing
%>
</BODY>
<!--#include file="../../BD/deconnexionbase.asp"-->
</HTML>
Conclusion
J'ai bien détaillé le code, exprès pour les Newbies Pour les personnes plus avancés, vous passez certains commentaires trop détaillés. J'espère que ça vous aidera, je n'ai pas trouvé de source parlant de la mise en page pour l'impression, avec un tableau qui reprend des données d'une table.
Dernière chose J'ai limité à 18 enregistrements par tableau, par ce que pour mon cas il n'en tenait pas plus.
Sachant aussi qu'il faut jouer avec les marges, je vous conseille de vous intéresser Au CSS. Si Questions, vous savez où me joindre.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Impression [ par manu ]
Bonjour,Je dispose d'une page ASP que je dois imprimer sur du papier en tête (avec logo en haut et adresse en bas)Problème :1. la page ne s'imprime pa
Pb Impression sous ASP.Net [ par Mask ]
Salut tlm!!Je fais un site en C# et je ne sais pas comment imprimer via ASP.Net...Je voudrais imprimer juste une chaine de caractère lorsque l'interna
Imprimer des documents depuis le serveur [ par psegalen ]
Bonjour,L'impression de documents en .NET fait couler beaucoup d'encre virtuelle sur les forums mais malgrès plusieurs heures de recherche, je n'
Imprimer une page aspx FORMATER [ par leroitony ]
Bonjour tout le monde je vous contact concernant un petit soucis que j'ai sur un site en asp J’ai une page bien dans laquelle j'ai une séri
impression avec crsytal reports [ par foufidou ]
bonjour tout le monde,je developpe une site web en asp .net et j'utilise pour afficher quelques rapports crystal reports. Tout marche a merveille le r
Programmation du bouton Imprimer tout [ par EurlyCias ]
salutest ce possible programmer l'impression successive de tout les fichiers repartis dans les onglets?Pour ce qui ne comprendront pas, je m'explique:
Imprimer un "form" avec un bouton [ par nico5969 ]
Alors mon souci est que j'ai une page maitre qui contient une page x.aspx (admettons)dans cette page "x", j'ai un form (id=form1) et je voudrais lance
impression multiple [ par gui2113 ]
Bonjour, J'ai actuellement une page asp dans laquelle j'affiche un certain nombre d'éléments provenant d'une table accès. Ces informations ont préalan
Bouton imprimer [ par estrella_brillosa ]
Bonjour, j'aimerai ,s'il vous plait, savoir comment cacher le bouton imprimer en asp aprés avoir cliquer dessus.Pour qu'il ne s'imprime pas.Merci d'av
Pagination DataGrid [ par exar ]
Bonjour à tous !Je suis newbie en ASP.net. J'essaie d'utiliser la pagination d'un DataGrid, mais cela ne fonctionne pas...Je suis allé voir la doc, q
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Forum
RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|