Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Automation
Automation Forum d'entraide sur l'automatisme, la robotique et l'informatique industrielle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/04/2011, 15h54   #1
Invité de passage
 
Inscription : avril 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 4
Points : 0
Points : 0
Par défaut Wincc VBS navigation

Bonjour,
je developpe un projet sous WinCC7 sp2 sur une machine sous win XP. Je suis entrain de structurer la navigation dans mon appli.
J'aimerais garder un bandeau commun à toutes les pages.

J'ai donc une page WinCC (main.pdl) avec les infos communes à toutes mes vues dans laquelle j'ai posé un objet "Fenêtre de vue" nommé "fond" avec la propriété: Nom de vue = zone0.pdl.
Pas de problemes jusque là, si je créé un bouton (evenement sur clic) et que je vais changer le parametre "Nom de vue" de mon objet "fond" en lui faisant passer une constante (Zone1.pdl par exemple) tout fonctionne, je navigue.

Le probleme c'est que je ne vais pas utiliser des boutons pour la navigation mais une barre de menu créé avec l'editeur "menus et toolbars" et que je vais donc passer par du vbs.

J'ai donc créé un petit script vbs inspiré d'un tutorial que j'ai lié a la navigation via le menu déroulant et bien entendu ca ne fonctionne pas. Voici le petit script en question:
Code vb :
1
2
3
4
5
6
7
8
9
 
Sub ActivatePicture (Byval PictureName)
Dim objScreen
Dim strScreenName
Dim objScrWindow
	strScreenName = PictureName.Userdata		
	Set objScrWindow = ScreenItems("fond")
	objScrWindow.ScreenName = "strScreenName"	
End Sub

L'idée est toujours de changer le parametre "Nom de vue" de mon objet "fond" mais via un script qui fonctionne.
N'hesitez pas à me demander des screens ou plus d'explications.
Spone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 21h07   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 768
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 768
Points : 16 830
Points : 16 830
Envoyer un message via Skype™ à bbil
salut,

je n'ai pas la solution , mais il y as des trucs pas trop logique dans ton code, je comprends pas pourquoi tu utilise ces variables intermédiaires :

Code :
1
2
3
Dim objScreen
Dim strScreenName
Dim objScrWindow

puis surtout pour avec cette affectation :
Code :
objScrWindow.ScreenName = "strScreenName"
tu place dans la propriété :
Code :
objScrWindow.ScreenName
le texte : "strScreenName" et pas le contenu de la variable "strScreenName" .. pour placer le contenu enlève les guillemets.
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 21h32   #3
Invité de passage
 
Inscription : avril 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 4
Points : 0
Points : 0
Pour les variables intermédiaires c'est vraiment parce que je n'ai aucune connaissance en vbs et que j'ai repris un un exemple que j'ai "adapté".

Je pense que tu as la solution avec l'histoire des guillemets. Si j'ai de la chance ça fonctionnera directement.
Juste une dernière petite question avant que je teste ça demain. Pour que cela fonctionne (si je ne me suis pas trompé dans mes variables et propriétés) il faut que je passe une chaine du genre: "nomdevue.pdl". Dans le cas ou ne me retourne que "nomdevue" est il possible de faire une concaténation pour lui ajouter le .pdl?
Au hasard:
Code :
objScrWindow.ScreenName = strScreenName".pdl"
mais ça ne m'inspire pas ^_^
Spone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 21h43   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 768
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 768
Points : 16 830
Points : 16 830
Envoyer un message via Skype™ à bbil
VBS
voir : Comment concaténer deux chaînes ?

bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 21h50   #5
Invité de passage
 
Inscription : avril 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 4
Points : 0
Points : 0
Merci beaucoup avec tout ces infos, je devrais pouvoir faire avancer les choses.
Spone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 11h55   #6
Invité de passage
 
Inscription : avril 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 4
Points : 0
Points : 0
voici une solution qui fonctionne.

Code :
1
2
3
4
5
Sub ActivatePicture (Byval PictureName)
Dim strScreenName
	strScreenName = PictureName.Userdata
	HMIRuntime.ActiveScreen.ScreenItems("fond").ScreenName = strScreenName 
End Sub
Probleme reglé. Merci.
Spone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h53.


 
 
 
 
Partenaires

Hébergement Web