Frage bzgl. Ausgabe interner Tabelle, sowie Parameterfeld

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Frage bzgl. Ausgabe interner Tabelle, sowie Parameterfeld

Postby Dorian4909 » Mon Mar 10, 2003 4:23 pm

Hallo,

ich habe mir ein kleines Programm geschrieben, dass mir die Materialnummern nebst den dazugehörigen Vertriebstexten ausgibt.

Für die Vertriebstexte nutze ich den Funktionsbaustein "READ_TEXT". Dieser gibt quasi eine interne Tabelle zurück, die so aussieht...

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. tdformat    tdline
  2. =====================              
  3.             Rasenmäher    
  4.             von  
  5. *           Helmchen
  6.  
GeSHi ©


Nun möchte ich diese Tabelle so ausgeben, dass
nur dann ein Zeilenumbruch gemacht wird, wenn
in tdformat ein * steht. Herauskommen soll der
Text also so

Rasenmäher von
Helmchen

und nicht wie jetzt

Rasenmäher
von
Helmchen


Desweiteren würde ich gerne Parameter Feld
einbinden, dass mir die Suche innerhalb des
Vertriebstextes ermöglicht (also z.B. Filter
nach "*Helmchen*")

Kann mir hier jemand weiterhelfen?

Gruß, Tom

----

Mein Programm bis jetzt....

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. REPORT z_vtext.
  2.  
  3. DATA: itab TYPE STANDARD TABLE OF tline WITH HEADER LINE.
  4. DATA: itab2 TYPE STANDARD TABLE OF mara-matnr.
  5. DATA: matnr TYPE mara-matnr.
  6. SELECT-OPTIONS imatnr FOR matnr.
  7. PARAMETERS sprache TYPE thead-tdspras DEFAULT 'DE'.
  8.   CLEAR: itab, itab2.
  9.   SELECT matnr FROM mara
  10.               INTO TABLE itab2
  11.               WHERE matnr IN imatnr
  12.               AND   matnr NE ''.
  13.   LOOP AT itab2 INTO matnr.
  14.     SKIP.
  15.     WRITE: / matnr.
  16.     PERFORM vtext_lesen USING matnr.
  17.     IF sy-subrc = 4.
  18.       WRITE: AT 30 'Kein Text vorhanden!' COLOR 6 INVERSE INTENSIFIED.
  19.     ELSE.
  20.       LOOP AT itab.
  21.         IF sy-tabix = 1.
  22.           WRITE: AT 30 itab-tdline.
  23.         ELSE.
  24.             WRITE: AT /30 itab-tdline.
  25.         ENDIF.
  26.       ENDLOOP.
  27.     ENDIF.
  28.  
  29. *&--------------------------------------------------------------------
  30. *& Formvtext_lesen
  31. *&--------------------------------------------------------------------
  32. * text
  33. *---------------------------------------------------------------------
  34. * --> p1 text
  35. * <-- p2 text
  36. *---------------------------------------------------------------------
  37.  
  38. FORM vtext_lesen USING l_matnr TYPE mara-matnr.
  39.   DATA: name TYPE thead-tdname.
  40.   MOVE l_matnr TO name.
  41.   MOVE '10' TO name+18.
  42.   MOVE '10' TO name+22.
  43.   CALL FUNCTION 'READ_TEXT'
  44.        EXPORTING
  45.             client                  = sy-mandt
  46.             id                      = '0001'
  47.             language                = sprache  "sy-langu
  48.             name                    = name
  49.             object                  = 'MVKE'
  50.        TABLES
  51.             lines                   = itab
  52.        EXCEPTIONS
  53.             id                      = 1
  54.             language                = 2
  55.             name                    = 3
  56.             not_found               = 4
  57.             object                  = 5
  58.             reference_check         = 6
  59.             wrong_access_to_archive = 7
  60.             OTHERS                  = 8.
  61.  
  62. ENDFORM. "vtext_lesen
  63.  
  64.  
GeSHi ©
Dorian4909
.
.
 
Posts: 1
Joined: Mon Mar 10, 2003 4:23 pm

Postby Ilja583 » Mon Mar 10, 2003 10:35 pm

hmm - dieselbe Frage habe ich eben schon bei ABAP-Fans gelesen - und dort sind auch ein paar Antworten gekommen.

Wer also diesbezüglich etwas wissen möchte bitte http://members3.boardhost.com/luisgarcia/msg/10939.html anklicken.



live long and prosper
Stefan


@Admins:

Könnte evtl. einer der Admins diesen Beitrag aus diesem Forum in das "Getting Started" Forum verschieben? Ich denke mal dort passt der thematisch besser.
Ilja583
.....
.....
 
Posts: 1372
Joined: Wed Jan 08, 2003 3:00 pm

Postby Willy1492 » Tue Mar 11, 2003 11:31 am

Die dort vorgeschlagenen Lösungen taugen aber wirklich nur, wenn die Format-Spalte nur '* ' und ' ' enthält.
Was machst Du z.B. mit '/ ' in der Formatspalte?
Ganz zu schweigen von anderen Absatzformaten, Anweisungen
/:IF &DEVICE& = 'SCREEN'
/: INCLUDE ...
usw.

Ich bin mir sehr sicher, daß es da passende FBs gibt, habe aber momenten mein WAS TestDrive gecrasht, kann also nicht danach suchen.
Willy1492
....
....
 
Posts: 581
Joined: Tue Dec 03, 2002 4:44 pm

Postby Jessy5246 » Wed Mar 12, 2003 7:46 pm

... and in addition to Frank's examples, it could also be protected text. In that case you have 'A>' in TDFORMAT and TDLINE starts with '* '. The actual text data starts at TDLINE+2.

Then again, if you know for sure what kind of text you can expect (ideally verified systematically), you may be able to rule out some cases.

Regards,
Wolfgang
Jessy5246
..
..
 
Posts: 23
Joined: Tue Dec 03, 2002 8:20 pm


Return to ABAP® Core

Who is online

Users browsing this forum: No registered users and 7 guests

cron