|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Inscription : août 2006 Messages : 340 ![]() |
Bonjour
Est-il possible de passer des paramètres en entrée dans une inlude. J'ai mon programme principal ou j'entre un numéro de livraison et j'aimerais pouvoir récupérer ce numéro de livraison dans une include et non pas dans mon programme principal. Est-ce possible? Code :
Code :
|
||||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() |
Bonjour,
Non la solution que tu essaies de mettre en place n'est pas possible... mais n'est pas bonne non plus. Si tu veux travailler avec des "INCLUDE" (ce qui est bien car plus propre), tu peux faire comme suit : Code :
Dans ton cas, tu utilises des variable qui ne sont déclarées qu'après leur appel, ce n'est donc pas possible. Cdt, ShAmY |
||
|
|
00
|
|
|
#3 | |
|
Membre du Club
![]() Inscription : août 2006 Messages : 340 ![]() |
ok merci pour la réponse mais j'ai un peu du mal à te suivre....
REPORT z_download_vente_ch_shan .//Programme principale INCLUDE y_download_vente_shan_ch. //Contient toutes mes variables et constantes. INCLUDE z_download_livr_ch_shan. //Nouvelle include. Citation:
Pour les variables je veux utiliser la même include donc :y_download_vente_shan_ch. A quoi sert l'écran de sélection dans ton exemple ? Pourquoi 4 includes différentes? |
|
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() |
Salut,
En fait, pour faire simple, c'est comme si que tu commençais à faire la recette sans avoir acheté les ingrédients auparavant. Tu commence TOUJOURS, par déclarer les variables dans un Include TOP, puis ton ecran de séléction, ensuite tes routines. (Fin moi je fais comme ça, ça regroupe les include comme ça ^_^) Et pour finir tu fais appelle à tes routines (PERFORM) dans ton programme principal. Voila. |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : août 2006 Messages : 340 ![]() |
ok merci j'avais compris le principe mais je ne vois pas comment faire pour passer mon paramètre dans mon include.
|
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() |
Ben tu ne peux pas passer de paramètre à un include de la même manière que pour une routine, et si tu as compris le principe des includes, tu sais que ce n'est rien d'autre que du code caché derrière l' "Instruction" INCLUDE, tout ça afin d'éviter de surcharger ton editeur de code...Donc toutes tes variables globales seront reconnus à l'intérieur même de ton Include, à la seule condition que tes variables globales soient déclarés en amont de ton programme.
J'espère que t'avoir éclairé sur ton problème. @++. |
|
|
00
|
|
|
#7 | ||
|
Membre du Club
![]() Inscription : août 2006 Messages : 340 ![]() |
ok alors ca j'ai compris ce que j'aimerais faire en fait c'est ca mais le code n'est pas juste
Code :
Mon programme principal est déjà bien chargé en code. Je voudrais que si ma variable S_liv est rempli passé dans une include. Ceci me permettrait de d'alléger mon programme principale. Je peux le faire en créant d'autre programme en les appellant avec la commande submit, mais ca ne m'arrange pas car j'aurai 20 programmes à créer. Ya t'il un moyen de tester ma variable est passer dans une include? |
||
|
|
00
|
|
|
#8 | ||||||||
|
Membre expérimenté
![]() |
Oula, j'ai l'impression que tu te complique un peu la vie, ou alors que tu t'emmele les pinceaux
Regarde ce que j'ai mis ci-dessous : Voila ton programme principal. Code :
Code :
Code :
Code :
Si tu veux que je t'explique, y'a pas de suchi. @++. |
||||||||
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : août 2006 Messages : 340 ![]() |
ok ca marche...
Peut-on faire des perform dans des include....J'ai l'impression que non !!! |
|
|
00
|
|
|
#10 |
|
Membre expérimenté
![]() |
Rien ne t'empeche de faire des PERFORM dans des Includes, du moment que l'include se trouve à la suite de l'INITIALIZATION, du START-OF-SELECTION ou du END-OF-SELECTION, étant donné que c'est une instruction, que je qualifierais d'instruction executive, au contraire des instructions déclaratives (DATA, CONSTANTS, etc.) qui peuvent être placé n'importe où...
|
|
|
00
|
|
|
#11 | ||
|
Membre du Club
![]() Inscription : août 2006 Messages : 340 ![]() |
VOILA CE QUE J'AI COMME CODE DANS MON PROGRAMME PRINCIPAL
Code :
|
||
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() Inscription : août 2006 Messages : 340 ![]() |
Si je mets mon code dans un programme principal et non pas dans une include il n'y a pas de problèmes
|
|
|
00
|
|
|
#13 |
|
Membre expérimenté
![]() |
Oui, la ton problème vient du fait que la déclaration de ta routine est entouré de code, et ça ce n'est pas correct.
Une déclaration de routine doit être faite soit : - avant ton START-OF-SELECTION (ou INITIALIZATION, si y'en a une, dans ton exemple l'INITIALIZATION est inutile) mais obligatoirement après la déclaration des données globales. - après ton tout code, dans ton exemple, après ton END-OF-SELECTION qui est inutile vu que y'a aucune ligne de code derrière. Dans ton cas, tu ne peux pas mettre dans un appel de routine et sa déclaration dans le même include. Voila. @++. |
|
|
00
|
|
|
#14 |
|
Membre du Club
![]() Inscription : août 2006 Messages : 340 ![]() |
J'ai pas tout suivi...
Je fais comment alors si je veux dans mon include des performs? |
|
|
00
|
|
|
#15 | ||
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 209 ![]() |
je n'ai rien compris mais bon j'essaie quand même
pourquoi passer des variables a un include et pourquoi ne pas passer des variables à ta routine directement (perform xxx using xxx)? lorsque tu dis j'ai un include avec des "perform" et des "form" est ce que c'est du style de ton bout de code du début Code :
ton include est il bien de type include (type i dans les propriétés du programme) |
||
|
|
00
|
|
|
#16 |
|
Membre habitué
![]() |
Rebonjour,
l'include de déclaration de tes procédures (FORM.. ENDFORM.) n'est pas le même que celui où tu appelleras tes procédures (PERFORM). Celui de tes déclarations ne doit pas être entre ton STAR-OF-SELECTION et ton END-OF-SELECTION, alors que celui ayant les appels de procédure y sera. |
|
|
00
|
|
|
#17 |
|
Membre expérimenté
![]() |
La déclaration et l'appel d'une routine ne doit pas être obligatoirement dans le même include. Tu peux très bien déclarer ta routine dans un include, et faire son appel dans un autre.
Si tu regarde l'exemple que je t'avais donné plus haut, je déclare la routine dans l'include z_download_livr_ch_shan et je l'appelle dans le corps du programme par le biais d'un perform. Mais j'aurais très bien pu inclure un nouvel include dans le corps de mon programme et faire l'appelle de la routine dans ce dernier. |
|
|
00
|
|
|
#18 |
|
Membre du Club
![]() Inscription : août 2006 Messages : 340 ![]() |
Merci beaucoup pour l'aide apporter
je faisais un mélange avec mes procédures. salutations a+ |
|
|
00
|
|
|
#20 |
|
Membre habitué
![]() |
Ouaip, lui c'est un dur!!!
Avec lui, pas de cadeau
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com