Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 17-08-2010 16:41:35

TigerTigerTiger  
Membre
Date d'inscription: 17-08-2010
Messages: 10
Pépites: 51
Banque: 0

Clic sur bouton et passage de chaine en paramètre

Bien le bonsoir z'amis powerbuildiens, avant toute chose moults merci à ce forum d'exister (même si je suis loin de tout comprendre aux conseils qui y sont donnés).

Donc pour situer, je ne connais pas grand chose à PB (ou encore une néophyte totale), mais mon client me fait depuis quelques temps maintenir des applis codées sous Sysbase PB11. Plus habituée à du Java et à des projets web je galère un peu.

Et en ce moment je suis confrontée à un souci qui doit sûrement être très facile à résoudre, mais je tourne en rond, d'où mon appel à l'aide : Help >_< Il s'agit d'une fenêtre découpée en onglets, laquelle récupère des champs en String dans un fichier texte. (tous les champs à la suite sur la même ligne, dans le fichier texte. D'où la nécessité d'une appli dédiée. Et donc, dans un de ces onglets, j'affiche des champs,  que je souhaiterai désormais pour des histoires de place disponible visuellement déplacer dans une autre fenêtre, qui s'affiche au clic sur un bouton positionné dans mon onglet.

Pas de souci pour créer ma nouvelle fenêtre et l'ouvrir avec mon nouveau bouton, cependant je n'arrive pas à correctement faire passer mon buffer string en cours en paramètre vers ma nouvelle fenêtre. (et donc à correctement afficher les champs que j'ai déplacés dans la nouvelle fenêtre). J'utilise openwithparm.

En fait, ma chaîne de caractères du buffer "en cours de traitement sur l'onglet" est définie en local dans le constructeur de l'onglet, et fait un  message.StringParm pour récupérer ce qu'on lui passe en paramètre. Hors, l'évènement "clicked" de mon bouton ne voit pas ce String. Et lorsque je fais un message.StringParm à ce niveau, forcément ça me renvoie n'importe quoi.

Je pense que je fais fausse route et que je n'ai pas la bonne logique PowerBuilder pour aborder le problème. Dois-je définir au niveau de mon constructeur un autre objet plus "permanent" (datastore..?) pour stocker mon buffer et pouvoir y faire appel depuis le clicked du bouton ? Ou alors définir tous les champs de cet onglet, aujourd'hui définis en String et récupérés via la fonction mid(), sous forme d'une datawindow, plus facile à manipuler pour ce que je veux en faire ?

J'espère que je ne me suis pas trop embrouillée en expliquant mon problème

D'avance merci pour toute piste ou idée !

Dernière modification par TigerTigerTiger (17-08-2010 16:42:50)

Hors ligne

 

#2 17-08-2010 18:35:58

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Clic sur bouton et passage de chaine en paramètre

Bonjour et

Dans ton constructeur ta variable est locale ?
Pour qu'elle soit accessible n'importe où dans la fenêtre, il faut la définir en variable d'instance de la fenêtre (String is_param).


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 17-08-2010 19:32:24

TigerTigerTiger  
Membre
Date d'inscription: 17-08-2010
Messages: 10
Pépites: 51
Banque: 0

Re: Clic sur bouton et passage de chaine en paramètre

Merci pour ta réponse erasorz !

A ta réponse + quelques petits recherches je viens de comprendre que les préfixe des variables conditionnaient largement leur type/scope en PB .. d'où le is_param !

Je teste ça dès demain

Hors ligne

 

#4 18-08-2010 08:05:53

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: Clic sur bouton et passage de chaine en paramètre

Non pas du tout il ne faut pas confondre avec vb6, où tu peux marquer les types avec des signes comme $.

Il s'agit de convention de nommage, destinée à faciliter la lecture de code.
<portée><type>_nom

où portée :
l : local
i : instance
s : shared
g : global

type : attention, plusieurs conventions coexistent.
l : long
d : date
dt : datetime
x ou dc : decimal
s : string


pour en revenir à ton problème de base, je ne peux que paraphraser erasorz.
A savoir, déclare ta variable dans l'onglet "declare instance variable" de ta fenêtre.


never let people work on more than one thing at once.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22