Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Seriendruckfelder in Word
sg-sd
myCSharp.de - Member



Dabei seit:
Beiträge: 106
Herkunft: Solingen

Themenstarter:

Seriendruckfelder in Word

beantworten | zitieren | melden

Hallo zusammen,

ich habe mir über eine COM-Schnittstelle zugriff auf ein Word-Dokument verschafft. In diesem Word-Dokument habe ich Seriendruckfelder aus einer Datenbank. Jetzt würde ich diese gerne aus meinem Programm ansprechen und mit Daten befüllen, nur leider weiss ich nicht wie das geht und habe bis jetzt auch noch keinen Erfolg im Internet gehabt.
Kann mir da jemand weiterhelfen?

gruß sg-sd
Wer, Wie, Was, Wieso, Weshalb, Warum ??
Wer nicht fragt bleibt dumm!!!
private Nachricht | Beiträge des Benutzers
Rainbird
myCSharp.de - Experte

Avatar #avatar-2834.jpg


Dabei seit:
Beiträge: 3953
Herkunft: Mauer

Word-Seriendruck mit C#

beantworten | zitieren | melden

Folgender Artikel sollten Dir weiterhelfen:

Word MailMerge Problem

Ansonsten gibts hier ist ein komplettes Seriendruck-Beispiel mit C#: http://support.microsoft.com/kb/301659/
private Nachricht | Beiträge des Benutzers
sg-sd
myCSharp.de - Member



Dabei seit:
Beiträge: 106
Herkunft: Solingen

Themenstarter:

beantworten | zitieren | melden

Danke für Links nur zum ersten Link "Word MailMerge Problem" habe ich noch eine Frage.

Der Threaderöffner schreibt das er folgendes deklarieren musste damit das Problem gelöst ist :

MailMergeDataField mailMergeCellValue

Ist dieses MailMergeDataField abgeleitet aus:

wordDoc.MailMerge.DataSource.DataFields

oder woher nimmt der jenige diesen Deklarationstyp??

Das hat er geschrieben gehabt:
--------------------------------------------------------------------------------
mit MailMergeDataField mailMergeCellValue = fields.get_Item(ref fieldIndexer)

komm ich jetzt auf das value des gewünschten feldes.
einziges problem: ich komme nur auf die values vom ersten datensatz, habe mich mit dem activerecord propertyy gespielt, komme aber noch auf keinen trichter
Wer, Wie, Was, Wieso, Weshalb, Warum ??
Wer nicht fragt bleibt dumm!!!
private Nachricht | Beiträge des Benutzers
sg-sd
myCSharp.de - Member



Dabei seit:
Beiträge: 106
Herkunft: Solingen

Themenstarter:

beantworten | zitieren | melden

Habe die Antwort gefunden:

Word.MailMergeDataField
Wer, Wie, Was, Wieso, Weshalb, Warum ??
Wer nicht fragt bleibt dumm!!!
private Nachricht | Beiträge des Benutzers
sg-sd
myCSharp.de - Member



Dabei seit:
Beiträge: 106
Herkunft: Solingen

Themenstarter:

beantworten | zitieren | melden

Also ich glaub ich bin zu blöd dafür, ich bekomme es einfach nicht hin.
Ich habe gestern den ganzen Tag verschiedene Ansätze ausprobiert und ich bekomme einfach nicht den Zugriff hin.
Kann wir vielleicht jemand noch nen Tip geben?

Nochmal mein Problem:

Ich habe ein WordComInterface in meiner C#-Webanwendung. Desweiteren habe ich ein Wordformular mit Seriendruckfeldern, welche als Datenquelle die Datenbank-Tabelle haben in der die Daten für das Formular stehen.
Nun möchte ich aus meiner Anwendung heraus das Formular mit bestimmten Daten gefüllt anzeigen. Die Daten hole ich mir über ein Dataset und möchte diese dann an bestimmten Stellen im Formular ( Seriendruckfelder ) anzeigen lassen.
Dies klappt aber nicht, aus welchem Grund auch immer. Ich schaffe es nur mir mittlerweile über 3 Wege die Anzahl der Seriendruckfelder zu geben, aber ich bekomme keinen Zugriff drauf so das ich die Daten dort abspeichern kann.
Ich habe auch schon die Beispiele von Rainbird durch gekaut von oben nach unten und von unten nach oben. Ich schaff es einfach nicht.
Bitte kann mir jemand helfen??

gruß sg-sd
Wer, Wie, Was, Wieso, Weshalb, Warum ??
Wer nicht fragt bleibt dumm!!!
private Nachricht | Beiträge des Benutzers
Rainbird
myCSharp.de - Experte

Avatar #avatar-2834.jpg


Dabei seit:
Beiträge: 3953
Herkunft: Mauer

Füllen

beantworten | zitieren | melden

Du kannst die Seriendruck-Datenqulle nicht von Hand befüllen. Du musst entweder eine Datei (CSV-Textdatei, Excel, Word, etc.) angeben, die die Daten enthält oder eine Datenbankverbindung (OLEDB oder ODBC) und ein SQL-SELECT-Statement angeben.

Der Seriendruck zieht sich also die Daten selbst. Wenn Du ein Word Dokument manuell befüllen möchtest, sind Seriendruckfelder nicht der richtige Weg. Stattdessen solltest Du über das über ein eingebettetes XML-Schema tun oder über Textmarken.
private Nachricht | Beiträge des Benutzers
sg-sd
myCSharp.de - Member



Dabei seit:
Beiträge: 106
Herkunft: Solingen

Themenstarter:

beantworten | zitieren | melden

Oh 8o, dann habe ich mir also um sonst den Kopf zerbrochen????
hmm kein Wunder das ich das nicht hinbekommen habe.
Wer, Wie, Was, Wieso, Weshalb, Warum ??
Wer nicht fragt bleibt dumm!!!
private Nachricht | Beiträge des Benutzers
sg-sd
myCSharp.de - Member



Dabei seit:
Beiträge: 106
Herkunft: Solingen

Themenstarter:

beantworten | zitieren | melden

Also mit Bookmarks funktioniert das ganze sofort und einwandfrei.
Die Bookmarks habe ich nach diesem Prinzip gefüllt:

if (b.Name == "Firma")
{
       wordApp.Selection.SetRange(b.Start, b.End);

       wordApp.Selection.Text = bookmarkArray[0];
}
Wer, Wie, Was, Wieso, Weshalb, Warum ??
Wer nicht fragt bleibt dumm!!!
private Nachricht | Beiträge des Benutzers