Hello
Voila je dois imprimer une etiquette par automation de codesoft , un logiciel d'impression d'étiquette.
L'impression pas de souci
mais pour faire le reglage du décalage horizontal, je n'arrive pas a obtenir la valeur actuelle ni a la changer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 MyApplication est un objet Automation dynamique nNbreEtiquettes est un entier = 1 ErreurMessage est une chaîne sNomfichierImpression est un chaîne sProduitCode est un chaîne sProduitICS est une chaîne nGaphorizontal est un entier = SAI_hvert nGapvertical est un entier = SAI_vertigap ////////////////////////////////////////////////////// // Fermeture éventuelle des instances CodeSoft lancées ////////////////////////////////////////////////////// SI ExeLancé("lppa.exe") ALORS ExeTermine("lppa.exe") // éventuellement, on peut récupérer un codesoft déja lancé //MyApplication = ObjetActif ("Lppx2.Application") //SI MyApplication = Null ALORS // // lancement instance de Codesoft //FIN // nom du fichier d'impression sNomfichierImpression = SAI_chemin + SAI_labname ///////////////////////////////// // lancement instance de Codesoft ///////////////////////////////// MyApplication = allouer un objet Automation "LPPX2.Application" SI MyApplication = Null ALORS // erreur ErreurMessage = "Impossible de lancer Codesoft" SINON // pas d'affichage de l'interface MyApplication>>visible = Faux // pas de gestion des évènements MyApplication>>EnableEvents = Vrai // ouverture fichier d'impression MyApplication>>Documents>>Open(sNomfichierImpression) // erreur ? SI MyApplication>>GetLastError() <> 0 ALORS // affichage erreur ErreurMessage = "problème ouverture fichier " + sNomfichierImpression SINON // impression des étiquettes MyApplication>>ActiveDocument>>Printer>>SetParameter(17,POT_decalage) // modification des variables de l'étiquette MyApplication>>ActiveDocument>>Variables>>FormVariables("produit")>>Value=SAI_pn MyApplication>>ActiveDocument>>Variables>>FormVariables("SN")>>Value=SAI_sn MyApplication>>ActiveDocument>>Variables>>FormVariables("LABNAME")>>Value=SAI_labname // impression MyApplication>>ActiveDocument>>PrintDocument(nNbreEtiquettes) FIN //////////////////////// // fermeture de Codesoft //////////////////////// Trace(MyApplication>>ActiveDocument>>Format>>HorizontalGap) MyApplication>>Documents>>CloseAll(Faux) MyApplication>>EnableEvents = Faux MyApplication>>Quit() libérer MyApplication SI ExeLancé("lppa.exe") ALORS ExeTermine("lppa.exe") FIN // envoi du résultat RENVOYER (ErreurMessage)
D'apres le guide du programmeur voici la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Printer.GetParameter VT_BOOL or Boolean GetParameter(varParameter, varValue). Gets the current printer settings. See the list. Parameters: varParameter Required VT_VARIANT or Variant. Parameter name to use. This variant must be VT_BSTR or String if the Property Name is used or it must be VT_I4 or Integer if Property ID is used. varValue Required VT_VARIANT or Variant. Value to set. See the list for the correct type.
La List des printer setting
pour la vertical
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 VerticalPos varParameter PROP_VERTICALPOS = 17 varValue VT_I4 Définition Allows you to enter the vertical adjustment value for all objects included in the label. /////////////////////////////////////////////////////////////////////////////////////////////////////////////// varParameter HorizontalPos PROP_HORIZONTALPOS = 18 varValue VT_I4 definition Allows you to enter the horizontal adjustment value for all objects included in the label.
J'ai essayé Printer>>GetParameter(17,"VT_I4") marche pas
Voila , l'erreur renvoyé est mauvais parmatre 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Erreur à la ligne 62 du traitement Clic sur BTN_SansNom7. Vous avez appelé la méthode Automation 'GetParameter'. En tentant d'invoquer la méthode <GetParameter> ou de lire la propriété <GetParameter>, l'objet Automation/ActiveX a renvoyé l'erreur suivante : 'Erreur 80020005, Type incorrect pour le paramètre 2' En tentant d'invoquer la méthode <GetParameter>, l'objet Automation/ActiveX a renvoyé l'erreur suivante : 'Erreur 80020005, Type incorrect pour le paramètre 2'
Merci d'avance de votre aide
Partager