Laden...

PlainTextContentControl über Funktion ändern

Letzter Beitrag vor 15 Jahren 8 Posts 3.028 Views
PlainTextContentControl über Funktion ändern

Hallo C#'ler,

ich bin aktuell an der Programmierung eines Add-Ins, welches die Kunden-Daten aus unserem Dynamics CRM-System dynamisch in ein Word-Dokument schreiben soll.

Die CRM-Anbindung ist soweit fertig und ich kann Kunden inkl. deren Daten auslesen. Allerdings scheitere ich beim Schreiben der Werte in das Dokument.

Der Aufbau des Programms ist wie folgt:

UserControl1.cs:


private void button2_Click(object sender, EventArgs e)
{
            CRMTest.ThisDocument set = new ThisDocument();
            set.ThisDocument_setTheText("Firmenname");
}

ThisDocument.cs:

Wenn ich den Text beim Laden des Dokuments ändern will, funktioniert es tadellos.

public void ThisDocument_Startup(object sender, System.EventArgs e)
{
        crmCompanyName.Text = "Musterfirma";
}

Bei crmCompanyName handelt es sich um besagte PlainTextContentControl. Ändere ich den Text aber in einer anderen Methode, erhalte ich eine Null reference exception und ich weiß echt nicht warum.


public void ThisDocument_setTheText(string theCompanyName)
{
      crmCompanyName.Text = theCompanyName;
}

Ich hab auch mal geschaut, es gibt zwar diese FAQ zur Null Reference Exception, aber das hilft mir nicht so richtig weiter. Auch mit...

            ThisDocument doc = new ThisDocument();
            doc.crmCompanyName.Text = theCompanyName;

...funktioniert das ganze nicht. Zum heulen 😃

Wäre super, wenn mir einer sagen könnte, wie ich das beheben kann. Ich sitze jetzt schon zwei Wochen an dem Programm und komme einfach nicht weiter 😕

Man könnte zwar die Textfelder einfach

Kann doch nicht sein, dass es beim starten einwandfrei geht und nachher nichtmehr...

Textfelder

Hallo stephaaan,

ich verstehe nicht ganz. Was für Textfelder sind das in Word? Felder, Seriendruckfelder, Windows.Forms 2.0 Controls, .NET Controls, ActiveX-Controls? Word ist sehr allgemein. Wo genau willst Du die Daten aus dem CRM-System den reinschreiben. Direkt in ein Word-Dokument? In vordefinierte Seriendruck-Felder? In Positionsrahmen? In Textmarken?

Wie Du siehst, kann man mit Word ziemlich viel machen und fast überall gibt es irgendwelche Felder. Bitte beschreibe genauer, was Du machen willst. Was soll am Ende dabei herauskommen? In welcher Form liegen die CRM-Daten vor?

Hallo Rainbird,

bei den Textfeldern handelt es sich um PlainTextContentControl-Felder. Es soll ansich eine Art Rechnung werden, die bei Knopfdruck jeweils mit den Daten des Kunden (welcher in der Dropdown-List ausgewählt wurde) aus dem CRM gefüttert wird.

Microsoft Reports

Hallo stephaaan,

Word ist absolut ungeeignet, um Rechnungen, Lieferscheine, Angebote etc. zu erstellen. Sowas solltest Du besser mit Microsoft Reports machen (ist seit Visual Studio 2005 standardmäßig eingebaut; Nicht mit Crystal Reports verwechseln). Visual Studio bringt bereits einen sehr komfortablen WYSIWYG-Editor für Microsoft Berichte mit (Siehe Screeenshot).

Detaillierte Hilfe dazu findest Du hier: http://msdn.microsoft.com/de-de/library/bb885185.aspx

Microsoft Berichte kannst Du auch in Webanwendungen rendern lassen. Außerdem kannst Du die Berichte Standardmäßig in Excel, Tiff oder PDF exportieren (mit einem Klick im Viewer). Im Vergleich zur Word-Fernsteuerung ist es locker 1000 x schneller und benötigt mindestens 5 x weniger Systemressourcen.

Mit Word kannst Du Breife, Romane, Fachartikel oder z.B. eine Diplomarbeit schreiben, aber für Rechnungen ist Word wirklich nicht Erste Wahl.

Mit Word kannst Du Breife, Romane, Fachartikel oder z.B. eine Diplomarbeit schreiben,

Für Fachartikel und Diplomarbeiten oder Dissertationen würde ich ein "richtiges" Satzsystem verwenden. ZB LaTeX.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

Außer dass es als elitär gesehen wird, wenn man Latex benutzt, hat es keinen Vorteil. Wenn man in Word seine Arbeit zuerst komplett in die Gliederungsansicht schreibt und die Formatierung erst am Ende macht, hat man selbst bei sehr großen Dokumenten keine Probleme. Genauso wie die meisten Leute lieber mit Notepad arbeiten, als den Unix-vi-Editor zu verwenden, ist Latex für Leute, die nicht erst ein Studium zur Bedienung der Software absolvieren wollen, nicht unbedingt erste Wahl.

Außer dass es als elitär gesehen wird, wenn man Latex benutzt, hat es keinen Vorteil.

Elitär finde ich es nicht aber praktisch. Kommt wie immer darauf an was man will. Wenn es darum geht viele mathematische Formeln zu "setzten" liegt (meiner Meinung nach) Word klar im Nachteil. Weiters ist LaTeX ein richtiges Satzsystem das gut erweiterbar ist während Word viel mehr ein WYSIWIG-Editor ist. Ich gebe zu dass ich mich mit Word schon lange nicht mehr auseinander gesetzt habe und ich will auch keine Diskussion über LaTeX vs. Word vs. sonst irgendwas lostreten.
Die Entscheidung was Verwendet wird sollte jedem selbst überlassen werden.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

Entscheidungsfreiheit

Ich wollte niemanden eine Entscheidung aufdrängen. Wenn jemand Latex gerne verwendet und damit gute Ergebnisse erzielt, ist das natürlich super. Es gibt ja auch Leute, die statt dem bunten Visual Studio nur im Notepad und mit Konsolentools C#-Anwendungen entwickeln. Wenn jemand dafür sinnvolle Argumente hat, warum nicht.