WORD OLE - Platzhalter ersetzen Thema ist als GELÖST markiert

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 / 193 / 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 / 4002 / 166 / 378 ) » 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 / 193 / 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 / 4002 / 166 / 378 ) » 20. Mai 2019 09:30

Auch nicht schlecht... ;)

Seite 1 von 1

Aktuelle Forenbeiträge

HTTP Request
vor 5 Stunden von carlie 3 / 29
Verfügbarkeitsprüfung
vor 8 Stunden von deejey 2 / 28
Verwaltung
vor 8 Stunden von deejey 2 / 27
Knobelaufgabe zum Wochenende / Wochenbeginn
vor 8 Stunden von Tron 7 / 197
BSP-Seiten als Dienst - Fehler beim Aufrufen
Gestern von Xilukarim 1 / 33

Unbeantwortete Forenbeiträge

BSP-Seiten als Dienst - Fehler beim Aufrufen
Gestern von Xilukarim 1 / 33
CCS Bonusabrechnung
Gestern von SAP_ENTWICKLER 1 / 24
At Selection-Screen
vor 2 Tagen von L0w-RiDer 1 / 44
SP01 Verweildauer
vor einer Woche von SAP_ENTWICKLER 1 / 97
Transaktion OMT3B Subscreens in Dynpros einhängen
vor einer Woche von SAP_ENTWICKLER 1 / 65