Fehlersuche Feldsymbol

für eilige Fragen

Fehlersuche Feldsymbol

Postby Rosa2799 » Thu Jan 17, 2008 4:28 pm

Was bitte ist hierdran falsch?

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *&---------------------------------------------------------------------*
  2. *& Program  Z_DYNAMIC_SQL2
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8.  
  9. PROGRAM  Z_DYNAMIC_SQL2.
  10.  
  11.  
  12. PARAMETERS: lt    RADIOBUTTON GROUP 1 DEFAULT 'X',
  13.             gt    RADIOBUTTON GROUP 1,
  14.             value TYPE i.
  15.  
  16. DATA: BEGIN OF wa,
  17.         count   TYPE i,
  18. INCLUDE TYPE spfli,
  19. END OF wa.
  20.  
  21. DATA: checked     TYPE abap_bool,
  22.       name        TYPE fieldname,
  23.       lines       TYPE i,
  24.       descr_ref   TYPE REF TO cl_abap_structdescr,
  25.       sel_list    TYPE TABLE OF edpline,
  26.       group_list  TYPE TABLE OF edpline,
  27.       having      TYPE string.
  28.  
  29. FIELD-SYMBOLS: <fs>       TYPE ANY,
  30.                <comp_wa>  TYPE abap_compdescr.
  31.  
  32.  
  33.   SET PF-STATUS 'MAIN'.
  34.  
  35. * get all components of table 'SPFLI'
  36.   descr_ref ?= cl_abap_typedescr=>describe_by_name&#40; 'SPFLI' &#41;.
  37.  
  38.   LOOP AT descr_ref->components ASSIGNING <comp_wa>.
  39.     name = <comp_wa>-name.
  40.     WRITE: / checked AS CHECKBOX, name.
  41.   lines = LINES&#40; descr_ref->components &#41;.
  42.  
  43. AT USER-COMMAND.
  44.  
  45. * determine selected columns
  46.   CLEAR: sel_list, group_list.
  47.   APPEND 'count&#40;*&#41; AS count' TO sel_list.
  48.   DO lines TIMES.
  49.     READ LINE sy-index FIELD VALUE checked.
  50.     IF checked = 'X'.
  51.       READ LINE sy-index FIELD VALUE name.
  52.       APPEND name TO: sel_list, group_list.
  53.     ENDIF.
  54.   ENDDO.
  55.  
  56. * determine operator
  57.   IF gt = 'X'.
  58.     having = 'count&#40;*&#41; > value'.
  59.   ELSE.
  60.     having = 'count&#40;*&#41; < value'.
  61.   ENDIF.
  62.  
  63.   SELECT &#40;sel_list&#41;
  64.     FROM spfli UP TO 20 ROWS
  65.     INTO CORRESPONDING FIELDS OF wa
  66.     GROUP BY &#40;group_list&#41;
  67.     HAVING &#40;having&#41;.
  68.  
  69. * write all components to list
  70.     WRITE / wa-count.
  71.     LOOP AT group_list INTO name.
  72.       ASSIGN COMPONENT name OF STRUCTURE wa TO <fs>.
  73.       WRITE <fs>.
  74.     ENDLOOP.
GeSHi ©


Laufzeitfehler tritt hier auf:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. * write all components to list
  2.     WRITE / wa-count.
  3.     LOOP AT group_list INTO name.
  4.       ASSIGN COMPONENT name OF STRUCTURE wa TO <fs>.
  5. ****************************************
  6.       WRITE <fs>. " Fehler hier
  7. ****************************************
  8.     ENDLOOP.
GeSHi ©


Fehleranalyse:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. Fehleranalyse
  2.     Es wurde auf ein noch nicht zugewiesenes Feldsymbol zugegriffen
  3.     &#40;Datensegment Nr. 10&#41;.
  4.  
  5.     Dieser Fehler tritt auf, wenn
  6.     - ein typisiertes Feldsymbol angesprochen wird, bevor es mittels
  7.       ASSIGN gesetzt wird, oder
  8.     - ein Feldsymbol angesprochen wird, das auf die Zeile einer
  9.       internen Tabelle gezeigt hat, die gelöscht wurde, oder
  10.     - ein Feldsymbol angesprochen wird, das vorher mit UNASSIGN
  11.       zurückgesetzt wurde oder das auf ein lokales Feld gezeigt hat,
  12.       das nicht mehr existiert oder
  13.     - ein Parameter einer globalen Funktionsschnittstelle angesprochen
  14.       wird, obwohl der entsprechende Funktionsbaustein nicht aktiv ist,
  15.       d.h. nicht in der Liste der aktiven Aufrufe steht. Die Liste der
  16.       aktiven Aufrufe kann diesem Kurzdump entnommen werden.
GeSHi ©


Dabei habe ich die Zeile vorher alles ganz sauber assigned... (zumal ich den Code aus einem Handbuch für dynamisches Open SQL habe)
Rosa2799
..
..
 
Posts: 94
Joined: Mon Oct 15, 2007 4:29 pm

Postby ewx » Thu Jan 17, 2008 6:45 pm

Die stelle hier:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. DATA: BEGIN OF wa,
  2.         count   TYPE i.
  3.         INCLUDE STRUCTURE spfli.
  4. DATA END OF wa.
  5.  
GeSHi ©

Jetzt werden nur die Felder von SPFLI inkludiert.
Den von dir definierten Arbeitsbereich müsstest du so ansprechen:
WA-INCLUDE-FELD1
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Postby Rosa2799 » Fri Jan 18, 2008 10:08 am

Hast recht, beim debuggen ist

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. WA-DISTANCE
GeSHi ©

leer, wohingegen

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. WA-INCLUDE-DISTANCE
GeSHi ©

gesetzt ist. Wie kriege ich das denn jetzt in diesen Zeilen

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.     WRITE / wa-count.
  2.     LOOP AT group_list INTO name.
  3.       ASSIGN COMPONENT name OF STRUCTURE wa TO <fs>.
  4.       WRITE <fs>.
  5.     ENDLOOP.
GeSHi ©

korrigiert?

-----

Edit: Lösung gefunden, trivial!

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.     WRITE / wa-count.
  2.     LOOP AT group_list INTO name.
  3. ************************************************************
  4.       ASSIGN COMPONENT name OF STRUCTURE wa-include TO <fs>.
  5. ************************************************************
  6.       WRITE <fs>.
  7.     ENDLOOP.
GeSHi ©


Danke auf jeden Fall für den Hinweis!
Rosa2799
..
..
 
Posts: 94
Joined: Mon Oct 15, 2007 4:29 pm


Return to Kurzfragen

Who is online

Users browsing this forum: No registered users and 5 guests