WORD OLE - Platzhalter ersetzen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge Seite 1 von 1
4 Beiträge Seite 1 von 1

WORD OLE - Platzhalter ersetzen

Beitrag von Kerstin (Specialist / 187 / 2 / 0 ) » 17. Mai 2019 15:00

Hallo,
ich erstelle WORD-Dateien aus ABAP heraus. Ich lese eine WORD-Vorlage mit Platzhaltern ein und ersetze diese. Solange der ABAP für den Platzhalter einen Wert ungleich Initial liefert, funktioniert das gut. Sobald das Feld aber keinen Wert enthält, erscheint in der neuen WORD-Datei der Name des Platzhalters. Ich möchte aber, dass der Platzhalter durch Leerzeichen ersetzt wird. Das Übergabefeld mit Leerzeichen zu füllen, was ja bei char-Feldern sowieso dem Initial entspricht, bringt auch nichts. Übergehe ich in diesem Fall die Ausgabe, bleibt der Name des Platzhalters ebenfalls stehen.

WORD-Vorlage: .dotx
Tätigkeit/Kurzzeichen: %%taet_bish

Code: Alles auswählen.

  
PERFORM fill_daten USING '%%taet_bish'  ' '  taet_bish.
...
FORM fill_daten  USING p_%feld p_look p_wert.
  CALL METHOD OF
      h_word
      'EditFind'
    EXPORTING
      #1         = p_%feld.
  CALL METHOD OF
      h_word
      'Insert'
    EXPORTING
      #1       = p_wert.
ENDFORM.                    " FILL_DATEN
Kann mir jemand weiterhelfen?

Gruß
Kerstin


Re: WORD OLE - Platzhalter ersetzen

Beitrag von ewx (Top Expert / 3944 / 162 / 360 ) » 17. Mai 2019 15:33

Probier mal einen richtigen STRING zu übergeben, also nicht den Text in einfachen Hochkomma ' ', sondern mit Backticks ` `.

Oder mal mit Textmarke versuchen?

Code: Alles auswählen.

// Name der Textmarke setzen
      vBookmarkName := 'ErweiterungsText_2';

      // Prüfen ob die Textmarke vorhanden
      if vWordInstanz.Bookmarks.Exists(vBookmarkName) then
        begin
          vBookmarkRange := vWordInstanz.Bookmarks.Item(vBookmarkName).Range;
          // Text bei Textmarke einfügen
          vBookmarkRange.InsertAfter(Memo_Lager_1.Text);
        end

Re: WORD OLE - Platzhalter ersetzen

Beitrag von Kerstin (Specialist / 187 / 2 / 0 ) » 20. Mai 2019 09:21

Hallo Enno,
vielen Dank für Deine Hilfe.
Der String hat nicht funktioniert und bei Deiner 2. Idee fehlten mir auf die Schnelle die entsprechenden Methoden, um den Code im ABAP umzusetzen.
Ich habe aber trotzdem eine Lösung gefunden.
Ich dachte mir, ich gebe statt des Leerzeichens oder Strings ein anderes nicht sichtbares Zeichen aus , einen Tab :

Code: Alles auswählen.

constants tab value %_horizontal_tab
das funktioniert.

Viele Grüße
Kerstin

Re: WORD OLE - Platzhalter ersetzen

Beitrag von ewx (Top Expert / 3944 / 162 / 360 ) » 20. Mai 2019 09:30

Auch nicht schlecht... ;)

Seite 1 von 1

Aktuelle Forenbeiträge

ABAP Clean Code
vor 8 Stunden von ewx 56 / 1393
Funktionsbaustein READ_TEXT
vor 9 Stunden von SAP_ENTWICKLER 3 / 151
Code lesen
vor 2 Tagen von GastX 5 / 1480
CL_GUI_TEXTEDIT im Subscreen
vor 2 Tagen von black_adept 2 / 95

Unbeantwortete Forenbeiträge

HowTo? Reisekosten PR05: Land hinzufügen
vor 3 Tagen von Florian9999 1 / 85
eMail Versand Faktura, falscher Betreff in eMail
vor 3 Tagen von bapimueller 1 / 83
[GELÖST] Kundenhierarchien in der Preisfindung
vor 4 Tagen von SAP_ENTWICKLER 1 / 94
[GELÖST] Feld KNVV-BOIDT
vor einer Woche von SAP_ENTWICKLER 1 / 74