IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

impression codesoft sur ZEBRA par automation pb de calage etiquette


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut impression codesoft sur ZEBRA par automation pb de calage etiquette
    Hello

    Voila je dois imprimer une etiquette par automation de codesoft , un logiciel d'impression d'étiquette.

    L'impression pas de souci

    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)
    mais pour faire le reglage du décalage horizontal, je n'arrive pas a obtenir la valeur actuelle ni a la changer.

    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

    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.
    pour la vertical
    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

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 350
    Points : 9 506
    Points
    9 506
    Par défaut
    Vraisemblablement le type doit être un entier : VT_I4 doit être une constante. A toi de chercher et trouver quelle est sa valeur.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut
    hello

    merci pour ta reponse

    Je pesnait faire une boucle du style

    cette entier en VT_I4 va jusqu'a combien ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    POUR i = 0 A 100000		
    QUAND EXCEPTION DANS
    	Trace ("i = " + i)
    			Trace( MyApplication>>ActiveDocument>>Printer>>GetParameter(17,i))
    FAIRE
    	GOTO on_avance
    FIN
    on_avance:
    FIN

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 350
    Points : 9 506
    Points
    9 506
    Par défaut
    Le type entier en Windev va jusqu'à 2 milliards en entier signé...

    Pour être sérieux, je pense que passé 65535 (voire même 255), on est en dehors de la plaque.

    La question c'est de mémoriser les valeurs qui sont acceptées. Avec ton quand exception, je ne suis pas sûr que du coup, ta boucle soit réellement exécutée..

    Tu n'as pas de doc de ton imprimante ?

  5. #5
    Membre actif
    Homme Profil pro
    Ingé Indus
    Inscrit en
    Juillet 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingé Indus
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 107
    Points : 241
    Points
    241
    Par défaut
    Lisez un peu plus attentivement.

    Tu veux utiliser la fonction:
    Boolean GetParameter(varParameter, varValue)

    La fonction te renverra un VRAI/FAUX si elle a réussi.

    varParameter doit être "VT_BSTR or String" ou "VT_I4 or Interger". Donc chaîne ou entier (sur 4) correspondant o paramètre que tu veux lire
    varValue : Variant. La c'est le moins clair. même si c'est indiquer de regarder dans une liste.. C'est dans cette variable que la valeur de paramètre sera écrit

    Le plus simple a faire: un buffer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    bMonBuffer est un Buffer sur 255  // voir la doc pour la taille 
    MyApplication>>ActiveDocument>>Printer>>GetParameter(17, bMonBuffer)
    info(BufferVersRéel(bMonBuffer)) // ou autre buffervers...

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut
    Hello

    Merci de vos réponses a tous


    en utilisant le code de yoshi570


    voila la réponse , je me demande si on peux vraiment y acceder

    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
    Le paramètre 2 n'est pas convertible en paramètre automation.
     
    ----- Informations techniques -----
     
    Projet : Impression_Etiquette
     
    Appel WL :
    Traitement de 'Procédure locale impression1' (FEN_impression_d_étiquette.PROCEDURE.impression1), ligne 55, thread 0
     
    Que s'est-il passé ?
    Vous avez appelé la méthode Automation 'GetParameter'.
    Le paramètre 2 n'est pas convertible en paramètre automation.
     
    Code erreur : 0
    Niveau : pas d'erreur (EL_NONE)
     
    Informations de débogage :
    COperationAutomation::__pPrepareParametreAppelAutomation(0)
    Informations supplémentaires :
    EIT_PILEWL :
    Procédure locale impression1 (FEN_impression_d_étiquette.PROCEDURE.impression1), ligne 55
    Clic sur BTN_SansNom1 (FEN_impression_d_étiquette.BTN_SansNom1), ligne 1
    EIT_DATEHEURE : 29/02/2016 13:12:26

    m'erreur vient de cette ligne de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyApplication>>ActiveDocument>>Printer>>GetParameter(17, bMonBuffer)
    Quand au manuel de l'imprimante il est en aide (le guide du programmeur)

    d'ou les infos que j'ai mis au debut


    ++

    bonne journée

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 350
    Points : 9 506
    Points
    9 506
    Par défaut
    As-tu essayé avec une chaîne / un entier ?

  8. #8
    Membre actif
    Homme Profil pro
    Ingé Indus
    Inscrit en
    Juillet 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingé Indus
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 107
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par gyver76370 Voir le message
    Le paramètre 2 n'est pas convertible en paramètre automation.
    L'erreur t'indique qu'il veut un objet automation.
    Donc a créer avant.

    Tu as mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    varValue          Required VT_VARIANT or Variant. Value to set. See the list for the correct type.
    Donc, regarde mieux dans l'aide pour savoir ce qu'attend la fonction !

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut
    hello

    heuu un peu perdu

    Je pense que je j'ai déjà un objet automation

    voici le code complet

    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
    MyApplication est un objet Automation dynamique
    nNbreEtiquettes est un entier = 1
    ErreurMessage est une chaîne
    sNomfichierImpression est un chaîne =SAI_labname
    //////////////////////////////////////////////////////
    // 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
     
     
    /////////////////////////////////
    // 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
     
     
    		// modification des variables de l'étiquette
     
    		bMonBuffer est un Buffer sur 255  // voir la doc pour la taille 
    		MyApplication>>ActiveDocument>>Printer>>GetParameter(17, bMonBuffer)
    		Info(BufferVersRéel(bMonBuffer)) // ou autre buffervers...
     
     
    	FIN
    	////////////////////////
    	// fermeture de Codesoft
    	////////////////////////
     
     
     
     
    	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)

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut
    Quand je declare un entier , j'ai ==> type incorrect

    Alros qu'effectivement avec le buffer , cela semble plus correct amis aps encore ca

  11. #11
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut
    quand je clique sur see liste

    j'ai ca
    liste.pdf

    apres quand je clique VT_I4

    vt_i4.pdf

  12. #12
    Membre actif
    Homme Profil pro
    Ingé Indus
    Inscrit en
    Juillet 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingé Indus
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 107
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par gyver76370 Voir le message
    quand je clique sur see liste

    j'ai ca
    liste.pdf

    apres quand je clique VT_I4

    vt_i4.pdf
    Ok, le varValue est indiqué comme variant car il dépend du paramètre.
    Dans ton cas du paramètre 17 il faut un entier sur 4 octets.
    Ensuite, comme l'activeX va vouloir modifier la valeur de cette variable, il faut passer l'addresse de la variable avec un &:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    nMonEntier est un Entier sur 4 octets
    MyApplication>>ActiveDocument>>Printer>>GetParameter(17, nMonEntier)  // ne marcheras probablement pas
    MyApplication>>ActiveDocument>>Printer>>GetParameter(17, &nMonEntier)  // a plus de chance de marcher
    Info(nMonEntier)

  13. #13
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut
    Bon c'est super on avance

    j'ai dû rajouter l'instruction "ConstruitVariantAutomation"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		nMonEntier_vetical est un entier sur 4 octets
    		nMonEntier_horizontal est un entier sur 4 octets
    //		MyApplication>>ActiveDocument>>Printer>>GetParameter(17, nMonEntier)  // ne marcheras probablement pas
    		MyApplication>>ActiveDocument>>Printer>>GetParameter(17, ConstruitVariantAutomation(&nMonEntier_vetical))  // a plus de chance de marcher
    		MyApplication>>ActiveDocument>>Printer>>GetParameter(18, ConstruitVariantAutomation(&nMonEntier_horizontal))
    J'ai une reponse un peu etonnante il me repond 0 au parametre vertical et horizontal (je m'attendait a autre chose ) car quand j'ouvre codesoft j'ai 0.2 et 0.6

    admettons

    J'ai testé la commande SetParameter et voila la reponse


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Erreur à la ligne 83 du traitement Procédure locale impression.
    Vous avez appelé la méthode Automation 'SetParameter'.
    En tentant d'invoquer la méthode <SetParameter> ou de lire la propriété <SetParameter>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
    'Erreur 80020010'
    En tentant d'invoquer la méthode <SetParameter>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
    'Erreur 80020010'
    En tentant de lire la propriété <SetParameter>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
    'Erreur 8002000F, Un paramètre requis a été omis' 
    En tentant d'écrire la propriété <SetParameter>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
    'Erreur 80020005, Type incorrect pour le paramètre 2'

  14. #14
    Membre actif
    Homme Profil pro
    Ingé Indus
    Inscrit en
    Juillet 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingé Indus
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 107
    Points : 241
    Points
    241
    Par défaut
    Aucune des deux syntaxe que j'ai donné ne fonctionne ?
    Attention a l'usage du &, il n'est pas anodin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // soit
    MyApplication>>ActiveDocument>>Printer>>GetParameter(17, &nMonEntier_vetical)
    //soit avec ConstruitVariantAutomation() mais sans le & !!!
    MyApplication>>ActiveDocument>>Printer>>GetParameter(17, ConstruitVariantAutomation(nMonEntier_vetical))
    Pourquoi le Setpqrqmeter ne marche plus? tu n'avais pas de probleme avant?

  15. #15
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut
    Pour Le SetParameter , je ne l'avais pas vraiment tester .

    Le GetParameter me permet bien sur d'avoir le décalage actuel et le SetParameter de le modifier (en théorie)


    La commande que tu as mis marche en rajoutant a ConstruitVariantAutomation , quand je dis "marche" je veux dire qu'il n y a pas d'exception.
    La commande " info (nMonEntier_vetical)" renvoie 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    2
    3
    4
    // soit
    MyApplication>>ActiveDocument>>Printer>>GetParameter(17, &nMonEntier_vetical)
    //soit avec ConstruitVariantAutomation() mais sans le & !!!
    MyApplication>>ActiveDocument>>Printer>>GetParameter(17, ConstruitVariantAutomation(nMonEntier_vetical))
    Info(nMonEntier)


    Apres tous ces échanges. j'e me suis dit je vais essayé le SetParameter pour voir mais ==> exeption error
    Merci

  16. #16
    Membre actif
    Homme Profil pro
    Ingé Indus
    Inscrit en
    Juillet 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingé Indus
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 107
    Points : 241
    Points
    241
    Par défaut
    Ok,
    a tout hasard, as-tu essayer le Info(nMonEntier) juste apres la 1ere syntaxe ?

    Pour le SetParameter essaye avec le ConstruitVariantAutomation

  17. #17
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut
    si je met le code ci-dessous il renvoie une erreur "exception" , je sais plus lesquel , je refait l'essai mais c'etait du mem type que les autres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    nMonEntier_vetical est un entier sur 4 octets
            	MyApplication>>ActiveDocument>>Printer>>GetParameter(17, nMonEntier)  // ne marcheras probablement pas

    avec le code ci-dessous , pas d'erreur , info renvoie 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    nMonEntier_vetical est un entier sur 4 octets
            	MyApplication>>ActiveDocument>>Printer>>GetParameter(17, ConstruitVariantAutomation(nMonEntier))
    je verfiie ce que j'ai faiot avec le setparameter mais je crois que j'ai utilisé le ConstruitVariantAutomation

  18. #18
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut
    Dsl pour la lenteur des infos

    J'ai bcp de production aujourd’hui , et le développement c'est entre deux

  19. #19
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut
    hello

    bon j'ai eu un peu de tmps pour faire qques essai

    bizarre car


    pour le getParameter il faut ConstruitVariantAutomation mais pas pour le set
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    nMonEntier_vetical est un entier sur 4 octets
            	MyApplication>>ActiveDocument>>Printer>>GetParameter(17, ConstruitVariantAutomation(&nMonEntier))
    apres j'ai essayé de changer faire un trace de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyApplication>>ActiveDocument>>Printer>>GetParameter(17, ConstruitVariantAutomation(&nMonEntier)
    et il rend 0

    apres nMonEntier je l'ai déclaré en Variant et la plus besoin de ConstruitVariantAutomation

    mais j'ai faire tout ce que je veuix il repond tjrs 0 , ce n'est pas la valeur que l'on voit qu'on on ouvre code soft


    en plus le trace de la commande repond 0 si la command avait vraiment marché je pense que j'aurais eu 1 (vrai)

    je suis perdu .


    Je vous remercie de votre aide .

    Je fermerais le sujet la semaine prochaine, je vais continuer un peu a chercher entre mes autres developpement en cours

    Je suis preneur de toutes idées

    MErci encore ,

    Bonne soirée

  20. #20
    Membre actif
    Homme Profil pro
    Ingé Indus
    Inscrit en
    Juillet 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingé Indus
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 107
    Points : 241
    Points
    241
    Par défaut
    Je l'ai déjà dit, n'utilise pas le & dans la fonction ConstruitVariantAutomation()
    L'opérateur & retourne l'adresse d'une variable sous la forme d'un entier.

    Essaye donc différents variantes comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    bRet est un booléen
    nMonEntier est un entier sur 4
    vMonVar est un Varient
     
    bRet = MyApplication>>ActiveDocument>>Printer>>GetParameter(17, nMonEntier)
    Trace(bRet + TAB + nMonEntier)
    bRet = MyApplication>>ActiveDocument>>Printer>>GetParameter(17, &nMonEntier)
    Trace(bRet + TAB + nMonEntier)
    bRet = MyApplication>>ActiveDocument>>Printer>>GetParameter(17, ConstruitVariantAutomation(nMonEntier))
    Trace(bRet + TAB + nMonEntier)
    bRet = MyApplication>>ActiveDocument>>Printer>>GetParameter(17, vMonVar)
    Trace(bRet + TAB + vMonVar)
    bRet = MyApplication>>ActiveDocument>>Printer>>GetParameter(17, &vMonVar)
    Trace(bRet + TAB + vMonVar)

Discussions similaires

  1. impression automatique sur imprimante par défaut
    Par tickerdu22 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/03/2012, 19h38
  2. Réponses: 1
    Dernier message: 24/10/2008, 11h32
  3. impression sur word par formulaire access
    Par atpwna dans le forum VBA Access
    Réponses: 1
    Dernier message: 31/01/2008, 17h55
  4. impression sur zebra (avec les drivers)
    Par waspy59 dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/01/2008, 15h19
  5. affichage sur excel avec methode par automation
    Par dricks dans le forum VBA Access
    Réponses: 7
    Dernier message: 24/09/2007, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo