Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Erreur ActiveX pour affichage PDF

Résolu !
Accéder à la solution

Bonjour à tous,

 

J'ai fais un affichage d'un PDF dans une face-avant via les outils ActiveX ( que je ne maitrise pas vraiment... ) ainsi qu'une gestion de la page affiché:

Sans titre.png

 

Cependant quand je veux testé les fonctions, le fichier PDF n'est pas affiché et lorsque j'appui sur le bouton "Page suivante" qui active la méthode "gotoNextPage", une erreur apparait sur la méthode "LoadFile" :

 

Sans titre.png

 

Quelqu'un pourrait me dire d'ou vient ce problème ?

 

Cordialement

Nathan

0 Compliments
Message 1 sur 28
4 661 Visites

Bon autant pour moi, l'erreur est due au fait que j'avais oublier une liaison d'erreur entre deux méthode...

 

Par contre mon afficheur ActiveX reste noir, le fichier PDF ne s'affiche pas, est-ce normal ?

0 Compliments
Message 2 sur 28
4 660 Visites

Cet oubli ne justifie pas l'erreur.

En fait en recablant le fil d'erreur, tu as juste enlever l'apparition de la popup.
Ton erreur est toujours présente, mais doit apparaitre dans un cluster d'erreur que tu as du mettre plus loin dans ton programme.

 

As tu fait une exécution en mode pas à pas, pour cibler réellement la méthode qui se met en erreur ?

Pourrais tu joindre ton vi, il sera plus simple d'analyser sa structure, plutôt que sur une capture d'image tronquée.


Cdt,

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 3 sur 28
4 652 Visites

Effectivement je m'était précipité dans mon résonnement, mais j'ai vu apres coup que l'erreur apparaisait à la méthode "LoadFile", vous trouverez le VI en piece jointe. ( La partie concernée se trouve dans Alarmes>>Manuel )

 

Cdt

0 Compliments
Message 4 sur 28
4 644 Visites

Alors voici mon retour suite à analyse de ton programme :

 

1 - C'est impossible d'imaginer la maintenabilité d'un programme qui ne tiens pas à l'écran, encore moins quand il faudrait une dizaine d'écran pour l'afficher.

--> Les préconisations de NI sont d'avoir un diagramme qui tient dans un écran, ou au pire qu'il ne soit nécessaire de faire défiler que suivant une direction (verticale ou horizontale).
Je t'encourrage donc vivement à segmenter ton code dans des sous-vi pour rendre celui-ci plus lisible.

 

2- Ta boucle "While" n'a pas de condition d'arrêt, elle tourne à l'infini, ce qui t'oblige à arrêter ton VI en mode bourrin, pouvant laisser trainer des choses indésirables en mémoire, t'empéchant d'être reproductible d'une exécution à l'autre.

--> Câble une commande stop à ta boucle qui te permette de travailler correctement.

 

3- Il n'est pas nécessaire de  créer ta référence d'automation à l'entrée de ta boucle while alors que tu ne t'en sers que dans le cas où l'opérateur affiche l'onglet "manuel".

Déplace la gestion complète "ouverture /fermeture" de la référence dans le case correspondant de ta structure.


4- Pour analyse, j'ai extrait la partie de code de on programme dans un VI, et celle-ci marche très bien. Après analyse de mon côté, la méthodologie que tu as utilisé implique que ton VI soit exécuter en mode interface utilisateur.

Si ce n'est pas déjà le cas, clic droit -> Propriété de VI --> Interface utilisateur.

 

Voilà,

Essaye d'appliquer déjà ces remarques, et dit nous comment cela évolue.

 

Cdt,

 

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
Message 5 sur 28
4 637 Visites

Je te remercie pour ta réponse !

 

1 - Pour l'instant, il n'y pas grand chose dans les autres cas et donc les commandes et indicateurs sont en vrac sur le diagramme, ce qui prend beaucoup de place, mais au fur et à mesure que j'avancerai la programmation ça se condensera dans des structures/sous-VIs.

 

2 - Au final, l'application sera la seul chose qui tournera en permanence sur le PC, mais comme je suis encore loin d'avoir fini je vais mettre une commande pour l'arreter plus proprement pendant les tests.

 

3 - J'ai pensé que ça pouvait poser problème de constemment rouvrir/fermer la référence, mais si tu me dis que c'est mieux je vais faire ça.

 

4 - J'avais déjà passé le VI en mode Interface utilisateur et meme avec les modifications que je viens d'apporter, ça ne marche toujours pas, j'ai toujours l'erreur non-spécifiée quiu apparait...

 

Cdt,

Nathan

0 Compliments
Message 6 sur 28
4 630 Visites

1- Très bien, il est important de document aussi ton code au fur et à mesure pour al suite.

2- Dans tous les cas, il est important que l'arrêt de ton programme se fasse proprement, et pas en fermant brutalement le programme.

 

3- Ah mon sens, l'utilisateur ne vas pas passer 40 fois sur l'onglet manuel, donc le nombre d'ouverture/fermeture va tout de même rester limiter.

 

4- Vu que la partie que j'ai extraite chez moi fonctionne, je te dirais de vérifier le chemin du fichier que tu renseignes, met un contrôle de présence avec la fonction fichier existe en amont, afin de contrôle ce statut.

 

 

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 7 sur 28
4 626 Visites

Bonjour,

 

Merci pour tes remarques, j'en prendrais compte à l'avenir !

 

Ensuite, je ne pense pas que ce soit ça le problème puisque jai sélectionner le chemin dans la constante en faisant clic-droit >> Sélectionner un chemin. J'ai rajouté la fonction Fichier Existe et elle retourne bien VRAI.

 

Après est-ce qu'il y a besoin de certains module labview spécifique pour faire de l'ActiveX ?

 

Cordialement,

Nathan

0 Compliments
Message 8 sur 28
4 615 Visites

As tu fait le test avec le VI que j'ai mis en pièce jointe.

Si celui-ci est fonctionnel, cela indique que ton environnement de test (windows, labview, ....) est opérationnel, et que le souci se passe au niveau de ton programme principal.

 

Vérifie les droits de ton fichier, sont ils en lecture/lecture seule, ... selon le mode d'appel de l'active X utilisait cela peut changer.

 

 

Sinon pour répondre à ta question, l'active X nécessite uniquement le fichier OCX ou dll auquel il est associé. Si celui-ci fait parti d'une installation basique de windows, alors pas de souci, sinon il faut l'importer avec ton projet sur les PCs utilisateurs, et les enregistrer dans windows en passant la commande 'regsvr32 c:\....\nom_du_fichier" dans l'invite de commande.

Attention, ces outils ne sont généralement pas polymorphe 32bit/64bits, il faut donc tenir compte de ce point.

 

Dans le cas présent, je ne pense pas que ce soit le problème puisque j'ai pu tester un extrait de ton code sans ajouter de bibliothèque à mon environnement.


Cdt,


Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 9 sur 28
4 611 Visites

Oui j'ai bien fais le test avec ton VI mais le PDF ne s'affiche pas et j'ai une erreur qui apparait à l'appui sur les bouton Page Precédente et Page Suivante :

 

Sans titre.png

 

Le fichier est bien disponible en lecture/écriture donc il ne devrait pas y avoir de soucis à ce niveau là...

 

Cdt

0 Compliments
Message 10 sur 28
4 606 Visites