PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Sous-programme interne à une procédure (type GOSUB)
Sous-programme interne à une procédure (type GOSUB)
Débuté par eric.jeanneau, 13 déc. 2004 15:13 - 7 réponses
Posté le 13 décembre 2004 - 15:13
Bonjour,

Je cherche l'équivalent du GOSUB d'Access.

C'est à dire de grouper des lignes de code, à l'intérieur d'une même procédure, et de pouvoir les appeler à partir de plusieurs endroits de cette procédure, ce qui permet d'utiliser les variables locales, les sources de données et fichiers ouverts.

Je n'ai rien trouvé dans l'aide. Any idea somewhere ?

Merci d'avance de vos conseils.
Posté le 13 décembre 2004 - 16:14
Je ne suis pas sûr de t'avoir compris mais ce n'est pas tout simplement un
GOTO que tu cherches ? Si c'est le cas, regarde l'aide sur "GOTO" dans
WinDev...

--
Bon dév'
Hervé


"Eric" <eric.jeanneau@worldonline.fr> a écrit dans le message de news:
41bd8b67$1@news.pcsoft.fr...

Bonjour,

Je cherche l'équivalent du GOSUB d'Access.

C'est à dire de grouper des lignes de code, à l'intérieur d'une même
procédure, et de pouvoir les appeler à partir de plusieurs endroits de cette
procédure, ce qui permet d'utiliser les variables locales, les sources de
données et fichiers ouverts.

Je n'ai rien trouvé dans l'aide. Any idea somewhere ?

Merci d'avance de vos conseils.
Posté le 13 décembre 2004 - 16:18
Il te suffit de crééer une procédure!!!que tu appelles à partir de ta première procédure.
Posté le 13 décembre 2004 - 16:31
Vous pouvez utiliser "GOTO" comme avec VB.
Posté le 13 décembre 2004 - 18:12
Le GOTO est un branchement inconditionnel, sans retour à l'instruction appelante.

Le GOSUB s'utilise de la manière suivante :

PROC MaPROC

a=1 : gosub Traitement
a=2 : gosub Traitement
...

Traitement:
instructions

Return

ce qui fait que les "instructions" sont tour à tour exécutées en contexte "a=1", "a=2", etc

De plus, l'intégralité des variables définies dans "MaPROC" ainsi que les sources de données et fichiers ouverts sont utilisables, alors que la création d'une procédure nécessiterait, à ma connaissance, de passer nominativement chacunes de ces valeurs à la procédure.
Posté le 13 décembre 2004 - 18:18
J'avais effectivement pensé à une procédure. Mais, à ma connaissance (je suis récent dans le monde WinDev), cette procédure ne pourra utiliser les variables, sources de données et fichiers ouverts dans la procédure de départ que si ils sont passés en paramètres.

Cela dit, le passage de paramètres à une procédure permet-il :

- de donner l'accès à toutes les variables, ... de la procédure appelante
- de passer la référence d'un ficier externe ouvert ou d'une source de données (comme une requête SQL) ?

Merci de l'intérêt porté à ma question.
Posté le 13 décembre 2004 - 18:33
Utilise des variables globales, ou alors déclare tes variables dans le code
d'initialisation de la fenêtre, elles seront alors accessibles par toutes
les procédures de la fenêtre.

--
Bon dév'
Hervé


"Eric" <eric.jeanneau@worldonline.fr> a écrit dans le message de news:
41bdb6aa@news.pcsoft.fr...

J'avais effectivement pensé à une procédure. Mais, à ma connaissance (je
suis récent dans le monde WinDev), cette procédure ne pourra utiliser les
variables, sources de données et fichiers ouverts dans la procédure de
départ que si ils sont passés en paramètres.

Cela dit, le passage de paramètres à une procédure permet-il :

- de donner l'accès à toutes les variables, ... de la procédure appelante
- de passer la référence d'un ficier externe ouvert ou d'une source de
données (comme une requête SQL) ?

Merci de l'intérêt porté à ma question.
Posté le 13 décembre 2004 - 18:57
Merci, Hervé, de ce tuyau (une variable définie dans l'init de la fenêtre est utiisable dans toutes procédure de cette fenêtre), et merci aux auteurs des autres réponses.

Eric