|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 57 ![]() |
Bonjour, je débute sur abap mais j'arrive pas à trouver de la bonne doc dans laquelle je me retrouve
j'aurais besoin de savoir comment faire des champs de saisie où on pourrait choisir une valeur depuis des données sources, et par la suite récupérer la valeur qui a été choisie. Merci bcp de votre aide d'avance. |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() |
Rebonjour soufiane,
Alors ta question manque de clarté, mais ce n'est grave. Il faut déjà savoir que sur SAP il y a deux type d'écrans principalement :
Et du coup, la ou les méthodes pour parvenir au résultat attendu diffèrent. Donc il faudrait d'abord nous donner des précisions sur le contexte dans lequel tu te trouves afin qu'on puisse t'aider plus efficacement. Donc écran simple ou écran de sélection? Sinon, à ce que j'ai compris, c'est une aide à la recherche que tu souhaiterais mettre en place pour un champ en particulier? Encore une fois, cela dépend du contexte. Merci donc pour les précisions que tu pourras nous apporter.
__________________
Boaf...signature <= ça suffira ça ?? |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 57 ![]() |
En fait ce que je veux c'est des champs de sélection, et une fois tous les champs renseignés, on doit aller récupérer ce qu'il y a dedans pour que je puisse formuler une requête et aller chercher les enregistrements correspondants aux valeurs des champs de sélection.
je dois faire ça avec des instructions abap et non pas avec le painter. je sais pas si c'est assez clair, sinon posez moi des questions. merci |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 198 ![]() |
Bonjour Soufiane,
Oui maintenant ton besoin est clair. Alors dans ce cas, il faut que tu déclares un écran de sélection en utilisant l'instruction abap PARAMETERS. Exemple : Si ton type <type> possède déjà une aide à la recherche, un petit bouton apparaît sur ta zone de saisie et qui te permet d'afficher la liste des valeurs. Sinon, il faut que tu en crée un, et ensuite tu utilises l'instruction MATCHCODE comme suit : Code :
PARAMETERS : p_toto TYPE <type> MATCHCODE <nom_aide_recherche>. J'espère que ça répond à ta question. Hiraa |
|
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() |
Alors, je vais compléter un peu la réponse de Hiraa.
Alors en effet, tu peux définir des paramètres , via PARAMETERS, et des options de sélection, via SELECT-OPTIONS. Tu vas donc en même temps créer des zones d'écrans et des variables, et tout ce qui concerne transfert de données des zones d'écrans vers les variables, et inversement, est géré par SAP, donc pas besoin de faire la moindre ligne de code... pour les traitements de base bien entendu. Une fois que t'as choisi tes valeurs de sélection, tu lances l'exécution qui te mettra « directement » dans le START-OF-SELECTION où sont déclarées normalement tes requêtes SELECT. Voila.
__________________
Boaf...signature <= ça suffira ça ?? |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 57 ![]() |
Salut Hiraa merci pour les explications, en fait je vois pas trop comment faire une aide à la recherche qui va aller me proposer toutes les valeurs possibles pour ma sélection.
Merci. |
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 198 ![]() |
Bonjour soufiane,
Pour créer une aide à la recherche, il faut utiliser la transaction SE11. Mais normalement, si ton type de données est déjà attaché à une aide à la recherche (voir la zone dans la table, onglet aide/controle saisie, colonne aide rech.). Bon courage, Hiraa |
|
|
00
|
|
|
#8 |
|
Membre expérimenté
![]() |
Attention, une aide à la recherche fonctionne également via les plages de valeurs définies dans les Domaines d'éléments de données, donc vérifier la aussi.
Sinon, t'as plusieurs manières de faire une aide à la recherche :
Voila les différentes possibilités.
__________________
Boaf...signature <= ça suffira ça ?? |
|
|
00
|
|
|
#9 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 57 ![]() |
Merci beaucoup, finalement j'ai réussi à résoudre le problème.
Merci encore une fois. Par contre j'aurais un autre souci sur lequel je sollicite vivement votre aide qui m'a été précieuse jusque là je fais donc: Code :
select SALESORG from TSALESORG INTO corresponding fields of table itab where salesorg in itabsalo Code :
Merci pour vos éventuels retours. je reste à votre dispo pour tout complément. |
||
|
|
00
|
|
|
#10 |
|
Membre expérimenté
![]() |
Ben tout simplement, tu tries ta table interne en fonction des SALESORG, tu la parcours, tu remplies une table temporaire pour un même SALESORG, tu créés ton fichier avec cette dernière, puis tu passes au prochain SALESORG ainsi de suite.
PS : GUI_DOWNLOAD (Module Fonction) ou CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD (Méthode) pour créer ton fichier. Les modules fonctions WS_ sont devenus obsolètes depuis le passe des systèmes en Unicode (≥6.40 je crois).
__________________
Boaf...signature <= ça suffira ça ?? |
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 57 ![]() |
Je vois très bien le raisonnement, mais je vois pas du tout comment faire en abap.
ma table est déjà triée sur le SALESORG, par contre comment prendre un bout de table et le mettre dans ma table tempo ça je sais pas faire, et aussi comment détecter le passage d'un SALESORG à un autre pour pouvoir le copier dans la table tempo. |
|
|
00
|
|
|
#12 | ||||
|
Membre expérimenté
![]() |
Pour faire une table temporaire, c'est comme déclarer une table interne, vu que c'est la même chose, sauf qu'on parle de table temporaire pour des table qui ne sont utiles que temporairement et donc à créer en local ou à détruire après leur utilisation via FREE.
Code :
Code :
Essaie de mettre en place cette logique par tes propres moyens, sinon tu risques de ne pas retenir la logique si je te donne une solution possible. Si tu rencontres des difficultés, poste ton bout de code pour corriger ce que tu auras fait et pour pouvoir t'aiguiller sur la suite des traitements à mettre en place.
__________________
Boaf...signature <= ça suffira ça ?? |
||||
|
|
00
|
|
|
#13 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 57 ![]() |
je voulais commencer par faire un test :
Code :
en exécution ça m'affiche des 0000000. |
||
|
|
00
|
|
|
#14 | ||
|
Membre expérimenté
![]() |
La ligne de code suivante n'est pas correcte :
append itab-SALESORG to itabtemp. Il faut que tu copies les valeurs d'une entête à l'autre. itabtemp = itab append itabtemp. Pense bien à regarder l'aide F1 pour chaque instruction que tu ne connais pas, car il y a un piège avec l'instruction AT, en effet, dans le bloc AT. END AT., les champs suivant celui testé voient leur valeur être remplacée par un caractère « * ». Sinon : write:/ itabtemp. Cette ligne de code ne va t'afficher que l'entête de table avec les dernières valeurs qui y ont été renseignées et non le contenu de table. Pour t'aiguiller, la logique à suivre est la suivante : Code :
__________________
Boaf...signature <= ça suffira ça ?? |
||
|
|
00
|
|
|
#15 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 57 ![]() |
Bonjour, donc j'ai suivi l'algo que tu m'as filé et j'ai fait quelque chose de ce genre:
Code :
Merci. |
||
|
|
00
|
|
|
#16 |
|
Membre actif
![]() Marianne ABAP Inscription : novembre 2008 Messages : 203 ![]() |
STOP ?
__________________
Pensez à récompenser les réponses utiles et au tag .
|
|
|
00
|
|
|
#17 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 57 ![]() |
oui pour arreter de boucler, une fois la valeur change je veux qu'il sorte de la boucle.
|
|
|
00
|
|
|
#18 | ||
|
Membre expérimenté
![]() |
Ce n'est pas STOP, mais EXIT qu'il faut utiliser pour sortir d'une boucle.
Sinon, c'est normal que ça ne t'affiche que la première ligne, tu sors au bout d'un tour à cause du STOP. C'est déjà pas mal ce que t'as fait. Voila la correction : Code :
__________________
Boaf...signature <= ça suffira ça ?? |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com