MODELISEUR D'IMPRESSION

Sirocooo Messages postés 412 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 7 avril 2008 - 5 mars 2004 à 09:24
cs_drissou Messages postés 160 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 14 janvier 2009 - 5 déc. 2006 à 09:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/20946-modeliseur-d-impression

cs_drissou Messages postés 160 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 14 janvier 2009
5 déc. 2006 à 09:35
OK Sibi12

POur ma part, je viens de découvrir ce projet qui m'a bien aidé dans un projet plus global.
j'ai 'supprimé' les preview, puisque je le gère plus globalement, mais par contre dans ton projet, j'ai rajouté un affichage des actions par ordre chrono et non pas forme (ligne, rectangle, texte) et en plus j'ai rajouter la possibilité de modifier l'ordre d'affichage, car tu sais bien que en fonction de l'ordre d'affichage, un texte peut se retrouver masqué par le cadre qui est censé l'encadrer, si ce dernier est créé après le texte.
POur ma part j'ai rajouté la possiblité de mettre un motif de fond de cadre et bien sur une couleur diférente pour ce fond..
a l'occasion je vais voir comment rajouter un cercle..

je vais regarder ton prog en C, bien que je n'y connaisse pas grand chose

Drissou
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
4 déc. 2006 à 19:41
Woaw... ça flanque un sacré coup de vieux de revenir sur cette source !

En fait j'etais jeune et pas très expérimenté à l'époque ou j'ai fait cette source... et je ne comprennais pas trop l'utilité du Option Explicit.

Il y a sans doute eu de petite modifs après le dépot de la source mais j'ai un peu abandonner ce projet. En fait je l'ai d'abord réecrit en C# il y a maintenant presque 2 ans (http://www.sourceforge.net/projects/printtemplate) mais j'ai jamais eu le temps de le terminer (Bien qu'il soit fonctionnel) et maintenant que je suis un inconditionnel du libre j'aimerais le réecrire en utilisant Cairo. Mais je manque cruellement de temps entre mes études et d'autre projet sur le coté.

Sinon merci pour tes remarques ! Mon père m'a justement demander de resortir un vieux projet du grenier où j'utilisais cet source pour faire quelque modif je corrigerais à ce moment là et je penserais à mettre à jour ici !
cs_drissou Messages postés 160 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 14 janvier 2009
27 nov. 2006 à 11:51
Encore moi ;o))

Je te conseillerai vivement de mettre des "Option Explicit" au début de ta feuille.
Car beaucoup de variables utilisées ne sont pas déclarées ce qui posera des problèmes lors de la compilation de ton programme

Drissou
cs_drissou Messages postés 160 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 14 janvier 2009
26 nov. 2006 à 20:24
je viens de recharger ta nouvelle version où tu corriges certains bugs

dans ta partie qui permet de tracer directement le trait ou la cadre je te propose de raajouter la possibilité de tracer directement le cadre si le chkrect est coché

A rajouter aux différents endroits
If chkRect.Value = vbChecked Then
picPreview.Line (LastX, LastY)-(TmpX, TmpY), , B
Else
picPreview.Line (LastX, LastY)-(TmpX, TmpY)
End If

Drissou
cs_drissou Messages postés 160 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 14 janvier 2009
26 nov. 2006 à 19:25
Sibi12

je continue à regarder ta source qui me plait dans sa conception

j'ai trouvé un petit bug:
dans la suppression d'un item il n'y a pas de mise à jour de picpreview et en plus la variable 'Changed' n'est pas mise à true

donc voici ma modif :

Private Sub cmdDel_Click()
List.Nodes.Remove "a" & IndiceCourant
For i = IndiceCourant + 1 To UBound(ListAction)
CopyMemory ListAction(i - 1), ListAction(i), Len(ListAction(i))
List.Nodes("a" & i).Key = "a" & i - 1
Next i
ReDim Preserve ListAction(UBound(ListAction) - 1)
'List_NodeClick List.SelectedItem
RefreshQuickView
Changed = True
End Sub


De plus, j'ai rajouté la possibilité de mettre un lmotif de fond dans un cadre choisi, comme ceux disponibles en vb

Drissou
cs_drissou Messages postés 160 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 14 janvier 2009
25 nov. 2006 à 20:55
Salut Sibi12

je viens de regarder ton prog. je ne sais pas si tu l'as "amélioré". .
Pour ma part j'ai trouvé deux petites erreurs dans la gestion des couleurs.

1 . dans la procédure de demande des couleurs : tu donnes pour indice de ton tableau listeactions() l'index du noeud sélectionné
alors qu'il faut l'extraire de la clé de ce noeud.
De plus lorsque tu changes la couleur , tu ne mets pas les flags à jour avec DefineColor

elle devient donc
Private Sub picColor_Click()
Dim indice As Long
indice = CLng(Right$(List.SelectedItem.Key, Len(List.SelectedItem.Key) - 1))
With ListAction(indice)
cmdlg.Color = .Color
cmdlg.ShowColor
.Color = cmdlg.Color
.Flags = .Flags Or DefineColor
picColor.BackColor = .Color
RefreshList (Current)
End With

voilà pour l'instant
je cherche à rajouter l'option "Cercle" qui bien sur ne sert à rien dans ton objectif.


Drissou
cs_acecel Messages postés 10 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 20 janvier 2006
8 juil. 2005 à 15:15
:-)

En fait j'ai crée un modèle par type de document (carte de visite / entete de lettre / Enveloppe..)
et je souhaitais pouvoir remplir ce modèle à partir de mon programme (remplacer NOM par TOTO , PRENOM par JEAN...)
et pour cela j'ouvre le fichier grâce à ta méthode Ouvre et je modifie le texte dans la ListeAtion.

J'ai essayé de passer par ta classe clsSPR mais ca ne fonctionnait pas (erreur type utilisateur non reconnu..)
mais la façon dont je procède me convient trés bien :-)

Pour les etiquettes oui c'est trés simple, une simple boucle suffit (en gérant la position X Y)

;-)
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
8 juil. 2005 à 13:13
Je suis pas sur d'avoir bien suivi ce que tu voulais faire. Le principal est que tu ai réussi ^^.

Mais l'editeur (bien qu'il soit pas d'une finition exemplaire) permet de ne pas jouer avec la ListAction. Il suffit de faire ta feuille à l'écran et de cocher le champs "Variable" pour les champs à remplir dans un tier programme. Ensuite dans ce tier programme, tu declare Dim WithEvents SPR As clsSPR et dans l'evenement "Variable" de ton SPR il ne reste qu'à faire un grand Select Case avec toute les variables à fournir.

Un exemple est fournit dans le ZIP.

Pour le cas des etiquettes le plus embettant est de refaire plusieur fois le même boulot dans l'editeur mais à partir du moment ou tu mets le même nom pour les même variables, le code dans le programme final est relativement simple. 2 lignes par variable devrait suffir.
cs_acecel Messages postés 10 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 20 janvier 2006
8 juil. 2005 à 11:59
En fait c'est bon j'ai trouvé. et c'est tout bête. suffit de remplir la liste "ListAction", d'enregistrer ca dans le fichier avec la méthode "Sauve" et de lancer "ouvre" :-)

Franchement c'est excellent ton programme, ton code est propre. bravo encore !
cs_acecel Messages postés 10 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 20 janvier 2006
8 juil. 2005 à 11:08
Par contre j'aimerais utiliser ton programme pour imprimer des cartes de visites..etc..
donc rentrer en paramètre les valeurs des champs(nom prenom adresse..)
j'ai essayé de créer un modele (fichier .spr) en mettant les intitullés des champs ("NOM" "PRENOM"..) et en les modifiant ensuite directement dans le fichier mais cela ne fonctionne pas.
Donc en clair aurais tu une idée pour me permettre de faire ce que je souhaite?
Créer un modele d'etiquette avec les intitulés des champs
et le modifier lorsque qu'on clique sur imprimer à partir d'une fiche en y mettant les valeurs des champs.

Merci d'avance.
cs_acecel Messages postés 10 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 20 janvier 2006
7 juil. 2005 à 17:24
Bravo !
C'est pas mal du tout ce petit prog.
Je cherchais justement quelque chose du genre et ayant deja eu l'occasion d'imprimer des documents complexe en vb "à la main", je n'avais pas envi de recommencer... alors merci !
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
16 févr. 2005 à 14:32
Nouvelle version disponible : http://www.csharpfr.com/code.aspx?ID=29554

Une grande partie de vos suggestion sont implémenté... si j'en ai oublier dites-le moi j'essaierai de régler ça...

C'est du .Net mais je fournirais un exemple d'utilisation en VB6

Pour obtenir toujours la derniere version, rendez-vous à http://sourceforge.net/projects/printtemplate/

ça dort encore un peu pour l'instant mais c'est la début.
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
30 mai 2004 à 12:28
xlt >>

-j'ai penser au "poignée" mais je n'ai pas eu trop le tps de m'y attarder
-pour lier a une base de donnée c'est plutot simple avec les champs variable...

PROGRAMMIX >>

comme je l'ai dit, c'est assedz simple pour la base de donnée...créer une classe à part n'est pas une mauvaise idée du tout...

effectivement j'ai d'autre priorité pour le moment puisque on est a une semaine des examens puis g mon examen d'entrée à l'unif et mon permis!!! et je dois developper un programme et rendre multilingue un autre pour une société non loin de chez moi....

je pense que je pourrait créer la 2eme version fin juillet début aout...
avec au programme tte vos idées...j'essaierai de m'appliquer dans les commentaires et de faire un petit tuto

voilà...je suis dsl pour les plus pressé qui seront contraint a s'armer de patience...vous pouvez tjs laisser vos comm et vos idées...
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
30 mai 2004 à 11:09
C'est encore moi...

Pourrais-tu créer un second projet d'utilisation de tes classes en utilisant une base de données access ?

Je ne sais pas quelles sont tes priorités en programmation pour le moment, mais je suis vraiment convaincu que ta source peut rivaliser avec un datareport mais comme je te le disais, il faudrait soigner la présentation et surtout mettre des commentaires, voire créer un tutorial complet, parce que j'ai encore du mal à saisir le fonctionnement du codage des données (je n'ai jamais étudié l'informatique et c'est sur le tas et le tard que j'apprend)
cs_xlt Messages postés 15 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 18 octobre 2004
25 mai 2004 à 13:48
c'est pas mal mais j'ai quelques remarques à te faire:
-pourquoi tu n'utilises pas des poignées pour selectionner tes objets sur la form à imprimer? ca serait plus pratique
-ca serait interessant de lier ce que tu as fais à une ressource de base de donnée.
voila, bon courage
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
16 mai 2004 à 00:29
Oui oui c'est tt a fait possible de rajouter la couleur du texte de creer un OCX et mettre l'apercu dans une autre fenetre

j'ai pas mal d'occupation pour l'instant mais je v essayer de faire ca au plus vite....

XbY
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
13 mai 2004 à 09:15
Ok, la source à l'air de fonctionner sans planter. C'est vraiment très bien.

Quelques suggestions d'amélioration :

Je pense qu'il serait bon de prevoir un bouton de sortie du mode "Apperçu avant impression" dans le modeliseur.

Peut-on imaginer de pouvoir modifier la couleur du texte également ?
Concernant l'application dans laquelle on souhaite imprimer. Est-il possible de faire une OCX ? Et l'apperçu avant impression peut-il être dans une feuille à part ?

Voila, encore bravo pour cette merveilleuse source.
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
12 mai 2004 à 18:54
Hannechi >>

1 - On pourrait effectivement imaginer travailer sur une base Access au lieu d'un fichier...

2 - Pas bien compris...lol..le format est un format comme un autre...
les fichier print et print2 sont des exemples...

bouv >>

Oui c'est effectivement un oubli...desole...

Programmix >>

C'est une autre manière de voir les chose...
Comme je te l'ai dit je suis pas mal occuper pour le moment mais je pense recommencer tout avec pas mal d'amelioration...j'aime bien tt fixer au debut pour eviter le "rafistolage"...

A+

XbY
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
12 mai 2004 à 16:28
Pour le tracer d'un cadre, je préferais une autre méthode :

définir X1, Y1 et au lieu de X2, Y2, passer par Largeur et Hauteur.
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
12 mai 2004 à 13:09
sibi12 : Peut-etre un oubli mais tu n'a toujours pas re-re-re-re-mis à jours... lol (cf dernière MAJ 02/05/2004 01:23:19)
A+
Hannechi Messages postés 19 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 12 octobre 2010
12 mai 2004 à 10:49
salut,
bon c 'est un travail tres complet et tres interressant ...........
bon g qq remarques a dire :

1- peut-on ajouter une basse access ou sql a ce projet
2- peut-on changer les format des fichiers dont les informations se figures (je pense que ce sont print & print2)
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
2 mai 2004 à 18:21
Je suis désolé....je sais pas ce que j'ai fait avec le zip...ça devait etre l'heure....

je re-re-re-re-met à jours...
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
2 mai 2004 à 16:25
Salut,
petit pb avec ta MAJ. Il n'y a plus le module1.
J'ai recupéré l'ancien module, j'ai ajouté ( FontName As String) dans
Public Type Record
Mais cela ne parche pas Pb dans la fonction
Private Sub List_NodeClick(ByVal Node As MSComctlLib.Node)
A la ligne
chkFont.Value = (.Flags And FontN) / FontN
FontN à la valeur : Vide
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
2 mai 2004 à 01:21
ouh la oui il faut changer :

With ListAction(Current)

au lieu de

With ListAction(List.SelectedItem.Index)

je met a jour de suite.....
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
1 mai 2004 à 20:50
Mon erreur est

Erreur d'execution '9':
Indice en dehors de la plage

Sur la ligne :

Private Sub picColor_Click()
With ListAction(List.SelectedItem.Index) 'Celle-ci
cmdlg.Color = .Color
cmdlg.ShowColor
.Color = cmdlg.Color
picColor.BackColor = .Color
RefreshList (Current)
End With
End Sub

Peut etre parce que je suis sour WinXP ?

Je vais jeter un oeil sur la MAJ
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
1 mai 2004 à 14:10
Je suis de liège (Ans plus exactement)....serais-tu belge aussi avec une addresse skynet ???

sibi14@skynet.be
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
1 mai 2004 à 14:02
OK, j'attendrai... mais penses-y, tu as là une application et un concept que je trouve formidable et qui mériterait d'être mieux mis en valeur tant au niveau de l'interface que de son utilisation (mise en place d'un fichier d'aide pour l'utilisation d'un modèle dans une application personnelle).

Ceci dit, je ne peux m'empêcher de réagir à "boulot de fin de rhéto"... Si ce n'est indiscret : Serais-tu belge ? De quel coin ?

Programmix@skynet.be
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
1 mai 2004 à 13:50
Source mise à jour...


PROGRAMMIX >>

Le fait de mettre les outils dans d'aute fenêtre cause pas mal de problème...et je n'ai pas le courage de remettre tout le code dans une autre fenêtre pour le moment... J'ai pas mal de projet pour l'instant et les profs nous donnent pas mal de boulot de fin de rheto d livre à lire et tout...enfin c'est un peu la galere...
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
1 mai 2004 à 12:53
Si tu refais une mise à jour, peux-tu refaire ton interface avec de permettre un affichage maximal du formulaire (en mettant par exemple le treeview et les boutons dans des barres d'outils style VB) ?
Le pied serait également de pouvoir jongler entre plusieurs pourcentage de vue.

Si j'ai bonne mémoire, je crois qu'il est impossible de revenir à l'interface initiale après avoir fait un aperçu avant impression. Je te suggère également de mettre cet aperçu dans une autre form.

Bon courage,
Programmix.
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
1 mai 2004 à 12:24
>> bouv :

Pour les traits et la police, c'est tout à fait possible. Je vais essayer d'en faire une mise à jour ....

Pour le bug chez moi je n'ai rien du genre !!! il te met quoi exactement comme message d'erreur?
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
1 mai 2004 à 12:05
Salut,
ta source est vraiment genial, je te met 10/10.

Qq petites suggestions lors de la creation de l'etat :
- Pour les traits et rectangles, n'est-il pas possible de les tirer d'un point à l'autre avec la souris ?
-Il y a un bouton couleur, mais quand je clique dessus ça bug ???
-Pourrait on choisir la police du texte.
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
6 avril 2004 à 17:51
>> ikimad:
Je te propose de mettre une gestion d'erreur dans ton code ; un truc du genre :

On Error Resume Next
MonXL.Worksheets("Sal").PrintOut
If Err = 1004 Then
Err.Clear
Msgbox "Une erreur inattendue est survenue" &vbcr &"Vérifiez votre imprimante et réessayez..."
Exit Sub
Else
Msgbox "Une erreur inattendue est survenue" &vbcr &"Erreur n°" &Err &" : " &Err.Description
Err.Clear
Exit Sub
End If
ikimad Messages postés 3 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 6 septembre 2004
6 avril 2004 à 16:01
Salut,
J’ai un problème lorsque je lance l'impression d’un document et l'imprimante éteinte
Le programme se bloque sur cette ligne : MonXL.worksheets("Sal").Printout
Erreur d’exécution ‘1004’ :
La méthode PrintOut de la classe worksheet a échoué
SVP je suis bloqué si quelqu’un a un esolution !
Merci d’avance
Email : ikimad@hotmail.com
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
7 mars 2004 à 13:53
j'ai oublié...ma resolution d'ecran, c'est 1280 par 1024 mais comme je sais que d'autre pc ne vont pas au-dessus de 800 par 600, j'ai mis en 800 * 600.

C'est vrai que j'aurais peu le mettre en vbMaximized directement et peut-etre meme sauvegarder la taille de la fenetre à la sortie....
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
7 mars 2004 à 13:41
salut,

pour le petit fichier explicatif j'ai jamais été tres douer pour ça mais je vais essayer de m'y atteler.

la barre de défilement n'est pas une mauvaise solution mais j'ai préférrer utiliser le glisser déplacer avec la souris...ça devrait pouvoir se rajouter sans problème...

pour les images j'y ai déjà penser...mais j'ai pas encore commencer a le faire...

les petites boîtes à outils j'y avais pas penser c'est pas mal du tout comme idée...

merci pour tes remarques pertinentes...

je vais essayer de m'y atteler...

@+
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
6 mars 2004 à 16:02
Encore une suggestion pour ton créateur de modèle.

Pourquoi ne pas créer une application où la form principale contiendrait l'aperçu et où ton treeview et picInterface seraient dans des forms de type "outils" (un peu comme l'explorateur de projets et la fenêtre Propriétés dans visual basic) ? Ce qui permettrait d'avoir une meilleure visualisation de ton modèle.
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
6 mars 2004 à 14:39
Cela me paraît très intéressant et je vais étudier la source de plus prêt.

Mais j'ai déjà quelques remarques à formuler :
1°) un petit fichier explicatif serait utile ;
2°) il faudrait ajouter des barres de défilement afin que l'on puisse voir l'aperçu dans son entièreté (quelle résolution d'écran utilises-tu ?) ;
3°) ce qui serait bien, c'est la possibilité d'intégrer une image sur le formulaire comme un logo d'entreprise par exemple.

J'attends avec impatience une mise à jour.
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
5 mars 2004 à 09:43
Ca m'a l'air pas mal tout ça
Sirocooo Messages postés 412 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 7 avril 2008 1
5 mars 2004 à 09:24
c'est balaise... bravo 10/10
Rejoignez-nous