PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Imprimer un tableau sans état
Imprimer un tableau sans état
Débuté par hetxan, 09 déc. 2004 09:10 - 6 réponses
Posté le 09 décembre 2004 - 09:10
Bonjour,
Es ce que quelqu'un sait comment imprimer un tableau sans utiliser d'état ??
Merci de vos réponses
Fred
Posté le 09 décembre 2004 - 09:56
C'est ptet pas très propre mais tu peux toujours essayer de l'exporter vers
Word, Excel ou XML puis l'imprimer à l'aide de la fonction
"LanceAppliAssociée" avec le verbe "Print"...
Pas d'autres idées pour l'instant...


"Fred" <hetxan@homail.com> a écrit dans le message de news:
41b7f057@news.pcsoft.fr...


Bonjour,
Es ce que quelqu'un sait comment imprimer un tableau sans utiliser d'état ??
Merci de vos réponses
Fred
Posté le 09 décembre 2004 - 10:26
Merci bcp,
En tout cas il semblerai que ce soit pas simple, quelquesoit la solution!!!
Si tu as une autre idée, SURTOUT n'hésite pas !!! ;)
Merci
Fred
Posté le 09 décembre 2004 - 10:36
mon autre idée, c'est de passer par un état, mais bon...
pourquoi tu ne veux pas passer par un état ? ca prend 5 min a faire, et tu
disposes de l'apercu avant impression de WinDev qui est plus que correct
(e-mail, pdf, ...)

"Fred" <hetxan64@hotmail.com> a écrit dans le message de news:
41b80244$1@news.pcsoft.fr...



Merci bcp,
En tout cas il semblerai que ce soit pas simple, quelquesoit la solution!!!
Si tu as une autre idée, SURTOUT n'hésite pas !!! ;)
Merci
Fred
Posté le 09 décembre 2004 - 10:53
Salut
Voici un code en WD5.5, non testé sous WD8


Procedure IIMPRIMETABLE(NomTable,Cadre)
i est un entier
j est un entier
x est un reel
y est un reel

DimDot est un reel
DimDot=0.3759

NumPolice est un entier
NumPolice=1

// Impression du titre des colonnes (sans cadre)
Pour j=1 à tableoccurrence(NomTable,2)
si {NomTable}[i][j]..etat<>invisible
x=iposh()
y=iposv()
// Texte dans une zone
iZoneTexte(y,x,y+ihauteurtexte("E"),Min(x+{NomTable}[i][j]..largeur*DimDot+iLargeurTexte("
"),iLargeurPage()),"
"+SansEspace({NomTable}[i][j]..libellé),NumPolice,0,"C","G")
iPosh(x+{NomTable}[i][j]..largeur*DimDot+iLargeurTexte(" "))
Si iPosH()>iLargeurPage() ALORS SORTIR
iPosv(y)
fin
fin
// va au début de la ligne suivante
iPosv(y+ihauteurtexte("E"))
SI iPosV()+ihauteurtexte("E")>iHauteurPage() alors
iSautePage()
IposV(0)
fin
iPosH(0)


// Impression de la table, ligne par ligne
pour i=1 a {NomTable}..occurrence
// Impression d'une ligne
Pour j=1 à tableoccurrence(NomTable,2)
// Si la colonne est visible
si {NomTable}[i][j]..etat<>invisible
x=iposh()
y=iposv()
// Texte dans une zone
iZoneTexte(y,x,y+ihauteurtexte("E"),Min(x+{NomTable}[i][j]..largeur*DimDot+iLargeurTexte("
"),iLargeurPage())," "+{NomTable}[i][j],NumPolice,0,"C","G")
//Cadre autour du texte
si Cadre alors
iCadre(y,x,y+ihauteurtexte("E"),Min(x+{NomTable}[i][j]..largeur*DimDot+iLargeurTexte("
"),iLargeurPage()))
fin
iPosh(x+{NomTable}[i][j]..largeur*DimDot+iLargeurTexte(" "))
SI iPosh()>iLargeurPage() ALORS SORTIR
iPosv(y)
fin
fin
iPosv(y+ihauteurtexte("E"))
SI IposV()+ihauteurtexte("E")>iHauteurPage() alors
iSautePage()
IposV(0)
fin
iPosH(0)
fin

------------Fin procédure------------------------



--------------- Clic sur Bouton---------------
// Envoie l'impression à l'écran
iApercu(2)
// Imprime la table avec les traits
IIMPRIMETABLE("TABLE1",vrai)

// Lance l'impression
iFinImprime()





bon dev









"Fred" <hetxan64@hotmail.com> a écrit dans le message de news:
41b80244$1@news.pcsoft.fr...



Merci bcp,
En tout cas il semblerai que ce soit pas simple, quelquesoit la
solution!!!
Si tu as une autre idée, SURTOUT n'hésite pas !!! ;)
Merci
Fred
Posté le 09 décembre 2004 - 11:02
Je ne peux pas utiliser d'état car j'imprime aussi des graphes, dont les données sont issues de jointure de plusieur table, avec des somme des rapports etc .. enfin un calcul invraisemblable...
Peut- être pourais-je remplir un fichier avec tous mes résultats puis créer un état ...
affaire à suivre ...
Fred
Posté le 09 décembre 2004 - 11:32
Merci, je vais examiner ça !