Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > ERP > SAP
SAP Forum d'entraide sur SAP et sur la programmation avec le langage ABAP
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 16/02/2011, 20h00   #1
Membre du Club
 
Inscription : janvier 2004
Messages : 308
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 308
Points : 56
Points : 56
Envoyer un message via MSN à faamugol
Par défaut search help avec ABAP

Bonjour experts,

J'ai deux champs fields1 et fields basés sur une même table bdd et qui apparaissent sur l'écran. Je voudrais qu'une fois que l'on selectionne une valeur dans field1 que la liste disponible dans field2 en depende.

la relation entre field1 et field2 est n:1.

Merci pour votre aide.
faamugol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 11h06   #2
Membre confirmé
 
Inscription : août 2009
Messages : 226
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 226
Points : 239
Points : 239
voici un exemple qui marche, tu pourras regarder ce qu'il y a dans SE11 dans la table SFLIGHT:
parameters CARRID TYPE SFLIGHT-CARRID.
parameters CONNID TYPE SFLIGHT-CONNID.

tu lances avant le programme SAPBC_DATA_GENERATOR (avec le plus petit éventail de données) pour remplir SFLIGHT
sandraros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 11h43   #3
Membre confirmé
 
Inscription : août 2009
Messages : 226
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 226
Points : 239
Points : 239
je viens de voir qu'il y a un bug SAP sur le cas que je t'ai donné. SAP utilise H_SPFLI sur la zone SFLIGHT-CONNID, alors qu'elle n'est en réalité pas liée (il suffit de cliquer sur le bouton Aide à la recherche pour cette zone pour obtenir un message d'erreur "il n'a pas d'aide à la recherche").

Bref, voici un vrai exemple (la liste de valeurs de la zone Y dépend de la valeur de la zone X) :

parameters x type scounter-carrid.
parameters y type scounter-countnum.
sandraros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 11h57   #4
Membre du Club
 
Inscription : janvier 2004
Messages : 308
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 308
Points : 56
Points : 56
Envoyer un message via MSN à faamugol
Merci vous,

Le code suivant fonctionne bien. Je voudrais maintenant savoir comment remplir automatiquement, le champ1(p_bukrs)

des que l'on choisit une valeur dans champs2(p_tplst). Au fait la relation p_bukrs : p_tplst est de 1:N. Donc, quand on choisit

une valeur dans p_tplst , il n'y aura qu'une seule valeur correspondante dans p_bukrs. Alors autant la remplir automatiquement pour

eviter au user de devoir choisir, de tout facon il n'y a qu'une seule valeur.

J'ai essayé le code suivant mais ca ne marche pas.

Code :
1
2
SELECT bukrs FROM ttds INTO TABLE it_bukrs WHERE tplst = p_tplst.
  p_bukrs = it_bukrs-bukrs.
Merci d'avance,


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
REPORT  z4help.

DATA : it_return1 LIKE ddshretval OCCURS 0 WITH HEADER LINE,
       it_return2 LIKE ddshretval OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF it_bukrs OCCURS 0,
        bukrs LIKE ttds-bukrs,
      END OF it_bukrs.

DATA: BEGIN OF it_tplst OCCURS 0,
        tplst LIKE ttds-tplst,
      END OF it_tplst.

PARAMETERS: p_bukrs LIKE ttds-bukrs,
            p_tplst LIKE ttds-tplst.

"DATA m LIKE ttds-tplst.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bukrs.
  IF p_tplst IS INITIAL.
    SELECT DISTINCT bukrs FROM ttds INTO TABLE it_bukrs.
    "where bukrs = p_bukrs.

  ELSE.
    SELECT  DISTINCT bukrs FROM ttds INTO TABLE it_bukrs WHERE tplst = p_tplst.
  ENDIF.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = 'P_BUKRS'
      value_org       = 'S'
    TABLES
      value_tab       = it_bukrs
      return_tab      = it_return1
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.
  p_bukrs = it_return1-fieldval.

  SELECT tplst FROM ttds INTO TABLE it_tplst WHERE bukrs = p_bukrs.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_tplst.
  IF p_bukrs IS INITIAL.
    SELECT  DISTINCT tplst FROM ttds INTO TABLE it_tplst.
  ELSE.
    SELECT  DISTINCT tplst FROM ttds INTO TABLE it_tplst WHERE bukrs = p_bukrs.
  ENDIF.
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = 'P_TPLST'
      value_org       = 'S'
    TABLES
      value_tab       = it_tplst
      return_tab      = it_return2
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.
  p_tplst = it_return2-fieldval. 

"****************************************************************************** 

SELECT bukrs FROM ttds INTO TABLE it_bukrs WHERE tplst = p_tplst.
  p_bukrs = it_bukrs-bukrs.
faamugol 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 14h01.


 
 
 
 
Partenaires

Hébergement Web