Bonjour,
J'aimerai savoir s'il on peut créer une table (pas une table interne) à partir d'une structure ou d'une table interne ?
Merci d'avance pour vos réponses.
Bonjour,
J'aimerai savoir s'il on peut créer une table (pas une table interne) à partir d'une structure ou d'une table interne ?
Merci d'avance pour vos réponses.
Salut,
Tu veux dire générer une table du dictionnaire (comme on ferait via SE11) dans une programme spécifique à partir d'une structure ou table interne de ton programme?
Pensez à récompenser les réponses utiles et au tag
Passez nous voir sur le chat chat.developpez.com ou http://87.98.168.209/
Oui je pense que c'est cela...
Pour un peu plus te situer mon problème:
En fait, un de mes prédécesseurs à réaliser un programme qui affiche dans les résultats dans l'ALV, ces derniers ne sont pas stockés dans une table (table que l'on pourrait faire avec se11).
J'ai donc créer une table semblable à la structure qu'il emploi dans son code afin de la remplir seulement je me heurte à un bon paquet de messages d'erreur d’où ma demande un peu plus haut...
Ah ok je ne sais pas si c'est possible mais ton ALV n'a pas une structure fixe? sinon tu peux toujours sauvegarder sur un fichier sur le serveur les données en attendant.
Chez nous ils font ça avec les données d'un spool qu'ils mettent dans access au final
Pensez à récompenser les réponses utiles et au tag
Passez nous voir sur le chat chat.developpez.com ou http://87.98.168.209/
Sa structure est fixe, cependant sauvegarder dans des fichiers ne pas durer bien longtemps...comme tu dis, "en attendant"^^.
J'ai pourtant créer une table de structure identique à la sienne mais impossible d'y insérer des données, j'ai une erreur du genre "Table interne non autorisée comme zone de travail"..?
Salut,
Je pense que ce sera plus facile si tu nous montre ton code ou t'essaies d'insérer les donnée.
Imaginons que ta table s'appelle zcol016t_arc:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 *Tu déclares une ligne du type de ta table data: lwa_zcol016t_arc type zcol016t_arc. *Tu mets lui passes les données de la ligne que tu veux insérer lwa_zcol016t_arc-opbuk = iwa_vkont-opbuk. lwa_zcol016t_arc-vkont = iwa_vkont-vkont. lwa_zcol016t_arc-gpart = iwa_vkont-gpart. lwa_zcol016t_arc-solvc = iwa_vkont-solvc_new. *Tu insères insert into zcol016t_arc values lwa_zcol016t_arc. *Tu fais commit commit work. *Et lá tu devrais avoir ta ligne dans ta table!
Je test et reviens vers vous avec du code si erreur il y 'a encore
Dans cette premiere partie du code vous pouvez voir la structure s_display de mon predecesseur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 DATA: BEGIN OF s_display, AUFNR TYPE S022-AUFNR," Ordre VORNR TYPE S022-VORNR," Opérations ARBPL TYPE S022-ARBPL," Poste de travail KTEXT TYPE CRTX-KTEXT," Désignation Magasin STEUS TYPE CRHD-STEUS," Clé de commande => PPO1 (déclaratif) ou ZP01 (<> déclaratif) KAPAR TYPE S022-KAPAR," Type de capacité MATNR TYPE S022-MATNR," Articles MAKTX TYPE MAKT-MAKTX," Désignation article FEVOR TYPE MARC-FEVOR," Agent d'ordonnancement MATGR TYPE MARC-MATGR," Groupe d'articles DISPO TYPE MARC-DISPO," Gestionnaire MAABC TYPE MARC-MAABC," Code ABC DSNAM TYPE t024D-DSNAM," Nom gestionnaire KBEAS TYPE S022-KBEAS," Besoin capacité de traitement théorique MGVRG TYPE S022-MGVRG," Quantité opérations GMNGA TYPE S022-GMNGA," Rendement confirmé LMNGA TYPE S022-LMNGA," Rendement confirmé CHCE TYPE P DECIMALS 3," Temps restant - calculée dans le FORM FILL_QTE_REST => WS_DISPLAY-CHCE = ( WS_OP_PDT-KBEAS / WS_OP_PDT-MGVRG ) * WS_DISPLAY-QTE_R QTE_R TYPE OPRZ1," Quantité restante - calculée dans le FORM FILL_QTE_REST ASVRG TYPE S022-ASVRG," Quantité rebutée XMNGA TYPE S022-XMNGA," Rebut confirmé S_DFZ TYPE S022-S_DFZ," Temps d'éxecution théorique I_DFZ TYPE S022-I_DFZ," Temps d'éxecution réel LOEKZ TYPE AUFK-LOEKZ," Témoin de suppression DGLTS TYPE AFPO-DGLTS." Fin ordonnancée DATA: END OF s_display. DATA: BEGIN OF s_chof, INCLUDE TYPE ZANALYSE_CHARGE. DATA: END OF s_chof. *&---------------------------------------------------------------------* *& Tables internes *&---------------------------------------------------------------------* DATA wt_op_pdt LIKE TABLE OF s_op_pdt. DATA wt_display LIKE TABLE OF s_display. DATA wt_chof LIKE TABLE OF s_chof."rajout POUR MODIFS DATA l_chof LIKE LINE OF wt_chof ."rajout *&---------------------------------------------------------------------* *& Structures *&---------------------------------------------------------------------* DATA: ws_op_pdt LIKE s_op_pdt, ws_display LIKE s_display, ws_chof LIKE s_chof "rajout POUR MODIFS .
La table ZANALYSE_CHARGE est celle que j'ai crée en me basant sur s_display.
Dans cette deuxieme partie, j'obtiens une erreur me disant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 LOOP AT P_WT_OP_PDT INTO WS_OP_PDT. " Si mon type était égal à rien et qu'il est désormais différent de blanc .......................... .......................... .......................... .......................... .......................... .......................... .......................... .......................... .......................... ..........................etc...(pas important du moins je pense, ce ne sont que des calculs). MOVE-CORRESPONDING WS_OP_PDT TO WS_DISPLAY. * MOVE-CORRESPONDING WS_OP_PDT TO WS_CHOF."rajout POUR MODIFS APPEND WS_DISPLAY TO P_WT_DISPLAY. "On intégre dans la table display WS_chof-AUFNR = WS_DISPLAY-AUFNR. WS_CHOF-VORNR = WS_DISPLAY-VORNR . WS_CHOF-KTEXT = WS_DISPLAY-KTEXT. WS_CHOF-STEUS = WS_DISPLAY-STEUS. WS_CHOF-KAPAR = WS_DISPLAY-KAPAR. WS_CHOF-MATNR = WS_DISPLAY-MATNR. WS_CHOF-MAKTX = WS_DISPLAY-MAKTX. WS_CHOF-FEVOR = WS_DISPLAY-FEVOR. WS_CHOF-MATGR = WS_DISPLAY-MATGR. WS_CHOF-DISPO = WS_DISPLAY-DISPO. WS_CHOF-MAABC = WS_DISPLAY-MAABC. WS_CHOF-DSNAM = WS_DISPLAY-DSNAM. WS_CHOF-KBEAS = WS_DISPLAY-KBEAS. WS_CHOF-MGVRG = WS_DISPLAY-MGVRG. WS_CHOF-GMNGA = WS_DISPLAY-GMNGA. WS_CHOF-LMNGA = WS_DISPLAY-LMNGA. WS_CHOF-CHCE = WS_DISPLAY-CHCE. WS_CHOF-QTE_R = WS_DISPLAY-QTE_R. WS_CHOF-ASVRG = WS_DISPLAY-ASVRG. WS_CHOF-XMNGA = WS_DISPLAY-XMNGA. WS_CHOF-S_DFZ = WS_DISPLAY-S_DFZ. WS_CHOF-I_DFZ = WS_DISPLAY-I_DFZ. WS_CHOF-LOEKZ = WS_DISPLAY-LOEKZ. WS_CHOF-DGLTS = WS_DISPLAY-DGLTS. APPEND WS_CHOF TO WT_CHOF. "rajout POUR MODIFS ENDLOOP. DELETE FROM ZANALYSE_CHARGE. loop at WT_CHOF into l_chof. INSERT INTO ZANALYSE_CHARGE VALUES WT_CHOF. ENDLOOP. ENDFORM.
L'objet de données "WS_CHOF" ne possède aucun membre avec le nom AUFNR...
Idem lorsque je remplace "ws_chof" par "s_chof"...
Je sèche totalement, ma table ZANALYE est faite exactement comme s_display et s_chof et une structure basée dessus...
Bonjour,
C'est normal que ça plante, ton problème vient de ton instruction INSERT qui a mal été codée.
Après le VALUES, c'est une structure qui doit être indiquée, pas une table interne, sauf si celle-ci n'est pas pure (avec entête) ce qui n'est pas ton cas.
Deux solutions:
- Soit tu indiques une structure, ce qui devrait être alors L_CHOF.
- Soit tu indiques une table interne, dans ce cas là, une boucle (LOOP) est inutile et ton instruction devient:
En espérant que ça t'aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT ZANALYSE_CHARGE FROM TABLE WT_CHOF.
Boaf...signature <= ça suffira ça ??
Dans ton code tu fais:
mais il me semble que tu devrais faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 loop at WT_CHOF into l_chof. INSERT INTO ZANALYSE_CHARGE VALUES WT_CHOF. ENDLOOP.
Car tu veux insérer ligne à ligne (l_chof) et non la table (WT_CHOF).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 loop at WT_CHOF into l_chof. INSERT INTO ZANALYSE_CHARGE VALUES l_chof. ENDLOOP.
Mais tu peux remplacer le loop par l'instruction que Celdrøn t'as conseillé!
Merci beaucoup à tous, j'ai résolu mon problème...mais sans utiliser ni l'une et l'autre de vos solutions (qui fonctionnent très bien, j'ai testé après coup ).
Je m'en suis sorti en supprimant les structures que j'avais pu ajouter au programme et en faisant :
Dites moi ce que vous en pensez, je suis pas sure que ce soit très pro mais ça marche...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 MOVE-CORRESPONDING WS_OP_PDT TO WS_DISPLAY. APPEND WS_DISPLAY TO P_WT_DISPLAY. "On intégre dans la table display ZANALYSE_CHARGE-AUFNR = WS_DISPLAY-AUFNR. ZANALYSE_CHARGE-VORNR = WS_DISPLAY-VORNR. ZANALYSE_CHARGE-KTEXT = WS_DISPLAY-KTEXT. ZANALYSE_CHARGE-STEUS = WS_DISPLAY-STEUS. ZANALYSE_CHARGE-KAPAR = WS_DISPLAY-KAPAR. ZANALYSE_CHARGE-MATNR = WS_DISPLAY-MATNR. ZANALYSE_CHARGE-MAKTX = WS_DISPLAY-MAKTX. ZANALYSE_CHARGE-FEVOR = WS_DISPLAY-FEVOR. ZANALYSE_CHARGE-MATGR = WS_DISPLAY-MATGR. ZANALYSE_CHARGE-DISPO = WS_DISPLAY-DISPO. ZANALYSE_CHARGE-MAABC = WS_DISPLAY-MAABC. ZANALYSE_CHARGE-DSNAM = WS_DISPLAY-DSNAM. ZANALYSE_CHARGE-KBEAS = WS_DISPLAY-KBEAS. ZANALYSE_CHARGE-MGVRG = WS_DISPLAY-MGVRG. ZANALYSE_CHARGE-GMNGA = WS_DISPLAY-GMNGA. ZANALYSE_CHARGE-LMNGA = WS_DISPLAY-LMNGA. ZANALYSE_CHARGE-CHCE = WS_DISPLAY-CHCE. ZANALYSE_CHARGE-QTE_R = WS_DISPLAY-QTE_R. ZANALYSE_CHARGE-ASVRG = WS_DISPLAY-ASVRG. ZANALYSE_CHARGE-XMNGA = WS_DISPLAY-XMNGA. ZANALYSE_CHARGE-S_DFZ = WS_DISPLAY-S_DFZ. ZANALYSE_CHARGE-I_DFZ = WS_DISPLAY-I_DFZ. ZANALYSE_CHARGE-LOEKZ = WS_DISPLAY-LOEKZ. ZANALYSE_CHARGE-DGLTS = WS_DISPLAY-DGLTS. INSERT INTO ZANALYSE_CHARGE VALUES ZANALYSE_CHARGE. "rajout POUR MODIFS ENDLOOP. ENDFORM.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager