Word Serienbrief aus ALV Tabelle

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Word Serienbrief aus ALV Tabelle

Postby Laurens818 » Wed Mar 14, 2012 1:23 pm

Hallo liebe ABAP-Spezialisten,

bei der ALV-Ausgabe gibt es ja die Möglichkeit Daten aus der Tabelle in ein Word-Dokument (Serienbrief) zu schreiben.
(Bei der Listausgabe das Symbol mit dem Blatt Papier und dem "T").
Daraufhin öffnet sich ja ein Popup "Einstellungen zur Textverarbeitung".
Wenn ich dort "Serienbriefverarbeitung mit MS Word" auswähle, erscheint ein neues Popup, in dem ich auswählen kann, ob ich ein neues, aktuelles oder vorhandenes Dokument öffnen möchte.

Das klappt auch alles soweit. Auch der Import der Daten aus der Tabelle usw.

Allerdings stehe ich jetzt vor folgendem Problem:

Auf meinem Dynpro habe ich einen eigenen Button, mit dem genau diese Funktion ausgeführt werden soll.
Der FuBa, der dieses Popup aufruft heißt (imho) ALV_WORD_EXECUTE_SIMPLE_LIST.
Leider erwartet der FuBa als Export-Parameter einen Feldkatalog :-/ und ich weiß nicht so recht wie und wo ich diesen füllen kann!?

Ich hoffe, ich habe das Problem verständlich beschrieben :-)

Für jeden Hinweis bin ich sehr (!!!) dankbar.
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm

Re: Word Serienbrief aus ALV Tabelle

Postby Laurens818 » Wed Mar 14, 2012 5:39 pm

Hm, habe gerade etwas anderes versucht.

Bei einer einfachen Listausgabe wird sy-ucomm auf einen Wert gesetzt (&AQW).
Wenn ich mich in der einfachen Listausgabe befinde und den Funktionscode (&AQW) manuell eingebe, wird das Popup gestartet.

Allerdings funktioniert die einfache Listausgabe in einem Dynpro nicht :-( (es sei denn, jemand erklärt mir, dass es doch geht :) )


ERGÄNZUNG:
Der Funktionscode funktioniert nur dann, wenn die ALV-Ausgabe nicht auf einem Dynpro stattfindet.
Jetzt stellt sich mir daher nur noch eine Frage :-)
Gibt es eine Möglichkeit (irgendeinen Fuba), der es mir ermöglicht auf einem Dynpro den Funktionscode für den ALV manuell zu setzen? (bzw. durch Druck auf einen Button)
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm

Re: Word Serienbrief aus ALV Tabelle

Postby Josie2243 » Thu Mar 15, 2012 10:29 am

Chrischi hat geschrieben:Der Funktionscode funktioniert nur dann, wenn die ALV-Ausgabe nicht auf einem Dynpro stattfindet.

Gibt es eine Möglichkeit (irgendeinen Fuba), der es mir ermöglicht auf einem Dynpro den Funktionscode für den ALV manuell zu setzen? (bzw. durch Druck auf einen Button)


Wichtigste Frage: Welchen ALV setzt du genau ein bzw. welche Klasse verwendest du?

Wenn du den ALV über ein Control in das Dynpro einbindest, bekommt der ALV von den Funktionen aus dem GUI-Status nichts mit, du müsstest die Toolbar des ALVs um die neue Funktion erweitern bzw. die Funktion aktivieren.

Ansich hat sowohl der OO wie auch der OM ALV die von dir gesuchte Funktion implementiert.
OO: CL_GUI_ALV_GRID->MC_FC_WORD_PROCESSOR ist die Constante für die Toolbar
OM: Über CL_SALV_FUNCTIONS kann die Funktion: SET_EXPORT_WORDPROCESSOR aktiviert werden

Du mußt noch ein wenig Input geben.
Josie2243
....
....
 
Posts: 908
Joined: Wed Feb 15, 2006 4:05 pm

Re: Word Serienbrief aus ALV Tabelle

Postby Laurens818 » Thu Mar 15, 2012 12:12 pm

Hallo Hendrik,

also ich nutze CL_SALV_TABLE.
Und in meinem Dynpro binde ich die den ALV über ein Control ein, richtig.

Die Funktion SET_EXPORT_WORDPROCESSOR habe ich schon mit eingebunden.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. cl_salv_table=>factory(
  2.     EXPORTING "list_display = 'X'
  3.           r_container    = lref_container
  4.           container_name = 'CCONTROL_ALV'
  5.     IMPORTING
  6.       r_salv_table = lref_alv
  7.     CHANGING
  8.       t_table = gt_ausgabe ).
  9.  
  10.       lref_func = lref_alv->get_functions( ).
  11.       lref_func->set_all( ).
  12.  
  13.     lref_alv->display( ).
  14.  
GeSHi ©

Genausogut könnte ich allerdings auch diese Funktion einzeln einbinden, spielt keine Rolle :)
Das habe ich ja soweit auch alles.

Wenn ich dann in der Toolbar vom ALV die "Textverarbeitung" auswähle (Exportieren --> Textverarbeitung), erscheint ja ein Popup.
Und ich möchte ja genau dieses Popup haben, wenn ich auf meinem Dynpro auf einen Button drücke.
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm

Re: Word Serienbrief aus ALV Tabelle

Postby Laurens818 » Thu Mar 15, 2012 5:06 pm

Sooooo, es ist gelöst :D :D :D :D :D

Vorgehensweise:

Der FuBa, der das Popup aufruft, mit dem der Word Absprung stattfinden soll heißt:
ALV_WORD_EXECUTE_SIMPLE_LIST
Dieser erwartet ja als EXPORTING einen Feldkatalog.

Um an diesen Feldkatalog zu kommen, habe ich mir den Funktionsbaustein:
DDIF_FIELDINFO_GET
genommen.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.           CALL FUNCTION 'DDIF_FIELDINFO_GET'
  2.             EXPORTING
  3.               tabname        = lv_name_ddic_obj
  4.             TABLES
  5.               dfies_tab      = lt_dfies
  6.             EXCEPTIONS
  7.               not_found      = 1
  8.               internal_error = 2
  9.               OTHERS         = 3.
  10.           IF sy-subrc <> 0.
  11.             MESSAGE 'Fehler' TYPE 'W'.
  12.           ENDIF.
  13.  
  14.       LOOP AT lt_dfies INTO ls_dfies.
  15.         MOVE-CORRESPONDING ls_dfies TO ls_fieldcat.
  16.         APPEND ls_fieldcat TO lt_fieldcat.
  17.       ENDLOOP.
  18.  
  19.       CALL FUNCTION 'ALV_WORD_EXECUTE_SIMPLE_LIST'
  20.         EXPORTING
  21.           it_fieldcat        = lt_fieldcat
  22.         TABLES
  23.           t_outtab           = gt_ausgabe.
  24.  
GeSHi ©


(ich hoffe nur, das klappt auch weiterhin so, wie ich mir das vorstelle :roll: )
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm


Return to ABAP Objects®

Who is online

Users browsing this forum: No registered users and 5 guests