prétendument utiliser des symboles de terrain peut entraîner une meilleure performance, mais j'ai des expériences très rares avec des pointeurs et ne comprennent pas tout à fait le concept de pointeurs.
J'ai ce programme qui sélectionne Fondamentalement, je souhaite que l'utilisateur insère de l'endroit où il veut décoller et dans quelle ville il veut atterrir. Après cela, le programme affiche tous les vols qui sont possibles à réserver. P> Voici mon code (fonctionne bien), que je souhaiterais refroidir en utilisant des symboles de champ: p> J'ai commencé par déclaration de symboles de terrain, je pensais avoir besoin, puis je les ai attribués aux tables. Après cela, j'ai essayé de déclarer carrid code >,
ConnId code>,
fldate code>,
BookID code> et l'agence de voyage code> nom code> de la table créée par
Join Inner des tableaux
spffi code>,
sflight code>,
SPORK code> et
Travelag code>, basé sur 2 entrées utilisateur (
Paramètres code>): p>
CityFrom code> LI>
cityto code> li>
ul>
paramètres code> et de spécifier leur type en fonction de symboles de champ nouvellement créés, mais il n'a pas fonctionné - Programme dit:
"Type
DATA: BEGIN OF wa,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
fldate TYPE sflight-fldate,
bookid TYPE sbook-bookid,
name TYPE stravelag-name,
END OF wa,
itab LIKE SORTED TABLE OF wa
WITH UNIQUE KEY carrid connid fldate bookid.
FIELD-SYMBOLS: <fs_spfli> TYPE any,
<fs_wa> TYPE any.
ASSIGN: spfli TO <fs_spfli>,
wa TO <fs_wa>.
PARAMETERS: fromLoc TYPE <fs_spfli>-cityfrom,
toLoc TYPE <fs_spfli>-cityto.
3 Réponses :
Vous avez déclaré vos symboles de champs comme type Celui-ci compilerait . p> et ici le programme compilable complet. p> tout code>, ceci est comme
vide * code> en C ++ (pointant dans le vide, le compilateur s'attend à ce que quelque chose commence à y commencer, mais n'a pas de connaissances ce que c'est exactement). Il n'ya absolument aucun moyen pour le compilateur de savoir que ces symboles de champ sont en fait de type
spffi code> ou celui de
wa code> jusqu'à l'heure d'exécution.
Si vous êtes sur 4,70 ou plus, vous pouvez écrire.
LOOP AT itab ASSIGNING FIELD-SYMBOL(<wa>). WRITE: / <wa>-bookid, 30 <wa>-carrid, 60 <wa>-connid, 90 <wa>-name. ENDLOOP.
Quelle ligne contient l'erreur?
@Sandrarossi
FromLoc Type -Cityfrom, code>
Vous avez déclaré vos symboles de champs comme type
tout code>, ceci est comme
vide * code> en C ++. Il n'ya absolument aucun moyen pour le compilateur de savoir que ces symboles de champ ont en fait de type
spffi code> ou celui de
wa code> jusqu'au moment de l'exécution.