Entwickler-Ecke

WinForms - eingegebene Daten eines Wizards am ende in eine PDF schreibe


Bl!tz - Mo 23.07.12 09:39
Titel: eingegebene Daten eines Wizards am ende in eine PDF schreibe
ich hab ein Problem mit meinem Wizard. Ich habe als Vorlage diesen Wizard genommen:

http://www.codeproject.com/Articles/120607/Simple-Wizard-for-WinForms

im Moment sind es 4 WizardPages.

Mein Problem besteht jetzt darin, dass ich Benutzereingaben die in den 4 Pages eingegeben wurden am Ende des Wizards nach einem Button Klick in eine PDF schreiben möchte.

wie bekomm ich jetzt die eingegebenen Daten (textboxen, berechnete werte, ...)von den ersten 3 Seiten in die 4. Seite um sie dort in die PDF zu schreiben?

Mfg

Bl!tz


Bl!tz - Mi 25.07.12 11:27

weiss keiner nen rat, oder hab ich es nicht deutlich genug beschrieben?

mfg Bl!tz


Delete - Mi 25.07.12 12:05

Merk dir doch die Eingaben in Variablen wenn die Seiten gewechselt werden.


Bl!tz - Mi 25.07.12 12:39

so meinst du:


C#-Quelltext
1:
2:
3:
4:
5:
6:
private static DateTime WorkStart
public DateTime workStart
{
   get{return WorkStart;}
   set{WorkStart = value;}
}


aber das wären ziemlich viele, oder hab ich dich da falsch verstanden?


Delete - Fr 27.07.12 00:54

Doch so war es gemeint. Was anderes wird dir aber nicht übrig bleiben. Überleg dir mal eine sinnvolle Klassen-/Datenstruktur.


Bl!tz - Fr 27.07.12 07:37

ich könnte das ganze ja auch in arrays packen dann hätte ich nicht soviele variablen die ich übergeben muss.

oder?

es gibt ja keinen typ der strings und double-werte in einem speichern kann. oder kenn ich den vielleicht noch nicht?


Bl!tz - Mo 30.07.12 12:57

wenn ich das aber so mache muss ich ja in der klasse in der ich die daten brauche eine neue instanz erstellen und dann ist das ja ne andere instanz und ich hab somit auch nicht die eingegeben daten.

bin gerade am verzweifeln :(


Th69 - Mo 30.07.12 18:44

Hallo Bl!tz,

erstelle genau eine Instanz deiner Datenklasse und übergebe diese jeweils den Pages (entweder im Konstruktor oder als Eigenschaft):

C#-Quelltext
1:
2:
3:
4:
5:
6:
// Aufruf:
MyDataClass data = new MyDataClass();

host.WizardPages.Add(1new Page1(data));
// ...
host.WizardPages.Add(1new Page4(data));

Und die Page-Klasse sieht dann z.B. so aus:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
class Page1
{
  public Page1(MyDataClass data)
  {
     Data = data;
  }
  
  MyDataClass Data { get; private set; }
}

So kannst du dann in den Page.Load bzw. Save-Methoden auf diese Dateninstanz mittels der Eigenschaft Data zugreifen (du solltest dafür dann natürlich einen besseren Klassen- und Eigenschaftennamen wählen ;-))