Announcement

Collapse
No announcement yet.

variablen in word uebergeben, weiß aber vorher nicht welche werte sie haben und wie viele es sind

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • variablen in word uebergeben, weiß aber vorher nicht welche werte sie haben und wie viele es sind

    hi,

    ich moechte in word variblen uebergeben, weiß aber vorher nicht welche werte sie haben und wie viele es sind ?

    kann mir jemand helfen ?

    danke schon mal im voraus !!

  • #2
    Kann das Problem etwas genauer beschrieben werden? Was ist mit "Variablen" gemeint, wo sollen diese in Word ausgewertet werden

    Comment


    • #3
      es handelt sich um eine dokumentenvorlage. er will keine makros !
      er setzt im text variablen wie zb betreff, anrede usw.

      ich muss dann feststellen was er als varibblen definiert hat und diese in einem programm auslesen und mit diesen inhalten fuellen...

      in etwa verstaendlich ?
      danke

      Comment


      • #4
        Hallo Manuela,

        es kommt darauf an, welche Methode der User in Word zum deklarien der Variablen verwendet.

        1. Bookmarks<p>
        2. FormFields<p>
        3. DocVariablen<p>

        Die Varianten 1 und 2 sind am einfachsten zu programmieren, jedoch muß der verwendete Bookmarkname/FormFieldName innerhalb des Dokumentes eindeutig sein, d.h. wenn Daten mehrfach verwendet werden müssen ist zusätzlicher Aufwand notwendig.
        (<b><pre>
        var
        aBookMarkName: OLEVariant;
        begin
        aBookMarName := 'Anrede';
        if aWord.ActiveDocument.Bookmarks.Item(aBookmarkName) .Exists then <br> aWord.ActiveDocument.Bookmarks.Item(aBookmarkName) .Range.Text := 'Frau';
        end;</pre> </b>

        Die Variante 3 ist am aufwendigsten, weil man im Dokument erst alle Fields einzeln abfragen muß ob sie auf eine DokumentenVariable verweisen und wenn ja auf welche. Danach kann muß man diese DokumentenVariable anlegen und Ihr den entsprechenden Wert zuweisen.
        <b>
        <pre>
        var
        sl_temp: string;
        il_temp: integer;
        aAnrede: OLEVariant;
        begin
        il_temp := 1;
        if aword.activedocument.Fields.Item(il_temp).Type = wdFieldDocVariable then begin
        sl_temp := uppercase(aWord.ActiveDocument.Fields.Item(il_temp ).Code);
        if pos('"DOKVAR_ANREDE"', sl_temp) > 0 then begin
        aAnrede := 'Frau';
        aWord.ActiveDocument.Variables.Add('DOKVAR_ANREDE' , aAnrede);
        end;
        end;
        end;
        </b></pre>

        Tschüß

        Torste

        Comment


        • #5
          danke werd es gleich mal ausprobieren ...

          ps ansonsten meld ich mich noch mal
          mfg [email protected]

          und danke schon ma

          Comment

          Working...
          X