www.mikrocontroller.net

Forum: PC-Programmierung C# Klasse ausdrucken


Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle miteinander,

ich brauche ein bisschen Brainstroming um auf die Sprünge zu kommen.

Folgendes Szenario:

ich habe eine C# Anwendung die mir Einstellungsparameter aus einer 
Steuerung ausliesst.(ca 400 Parameter)
Diese Parameter werden von dem Programm alle in einer Klasse "Settings"
gespeichert.
Nun soll das Programm so erweitert werden, das es möglich ist die in der
Klasse gespeicherten Parameter auszudrucken.

Zum Beispiel so:

Temperatur:   200 C
Drehzahl  :  3500 U/min

usw. das alles natürlich ordentlich formatiert.

Wie kann ich das nun machen?
Ich habe ein paar Ideen weiß aber auch nicht so recht.

1. Klasse "Settings" in ein  XML-Format speichern, dann mit Excel
   öffnen und ausdrucken.(Würde das überhaupt gehen)

2. Wie auch immer eine PDF-Datei erzeugen.
3. Klasse in eine TXT Datei speichern.


Für Vorschläge und Ideen bin ich dankbar.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder LaTeX generieren
Alternativ Postscript

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man könnte sich natürlich auch darüber schlau machen was der 
Aufgabensteller unter 'ordentlich formatiert' vorstellt (wie aufwändig 
der sich das vorstellt) und ganz einfach weiterlesen, wie man unter C# 
den PrinterDialog hochpappt, bzw. das PrinterDokument erzeugt.

http://www.c-sharpcorner.com/Articles/ArticleListi...

Autor: Lord Ziu (lordziu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder direkt aus dem Programm drucken lassen.

Autor: Frederik Krämer (n0ll4k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie speicherst du die Daten zwischen?

Ich nutze bei Messwerten meist ne Dataset und schmeisse mir das ganze 
als CSV raus.

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Frederik Krämer:
Ich serialisiere die Klasse mit dem SOAP-Formatter.

@Lord Ziu :
Wie direkt aus dem Programm ausdrucken lassen? Ohne vorher eine
.txt oder sowas zu machen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schrieb:

> @Lord Ziu :
> Wie direkt aus dem Programm ausdrucken lassen? Ohne vorher eine
> .txt oder sowas zu machen.


Genau.
Das kann jedes Windows Programm seit Anbeginn der Windows-Welt. Drucken 
ist auch nichts anderes als 'Malen auf einem Hintrgrund'. Nur sorgt 
Windows dafür, dass dieser Hintergrund das reale Papier ist und anstelle 
das ein Monitor Pixel anzeigt, malt ein Drucker diese Pixel aufs Papier. 
Wenn du eine Linie/Bitmap/Text in einem Fenster gezielt hinmalen kannst, 
kannst du das auch drucken. Ist im Grunde derselbe Code nur mit ein 
bischen was drumherum und mit anderen Zahlenwerten :-)

Ich hab dir doch schon mal eine Artikelsammlung rausgesucht. Fang mit 
den Artikeln an, der Überschrift nicht zu speziell klingt.

http://www.c-sharpcorner.com/Articles/ArticleListi...

Der hier zb klingt doch schon ganz gut, um die Basics einmal 
durchzuspielen
http://www.c-sharpcorner.com/UploadFile/hijazia/Pr...

Autor: Lord Ziu (lordziu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schrieb:
> Wie direkt aus dem Programm ausdrucken lassen? Ohne vorher eine
> .txt oder sowas zu machen.

Ja. Jedes Betriebssystem stellt ja Funktionen zur Verfügung, um auf die 
Systemdrucker zuzugreifen. Anders drucken Word und Excel ja auch nicht.

Dazu musst man aber vorher wissen, was du genau machen willst. Und dazu 
kenn ich dein Software nicht gut genug. Wenn du z.B. ne Anwendung hast, 
von der 90% der Anwender nur einen Ausdruck haben will, ist der Weg über 
ne extra Ausgabedatei (egal in welchem Format) natürlich lästig. Wenn 
aber 90% der User die Daten weiterverarbeiten will (egal wie), macht es 
natürlich Sinn, die Daten in eine Ausgabedatei zu schreiben. Der geringe 
Prozentsatz der Anwender, die das dann ausdrucken will, muss halt den 
Umweg über das Drucken der Datei gehen.

Der Lösungsweg ist immer von den Anforderungen abhängig.

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn aber 90% der User die Daten weiterverarbeiten will (egal wie), macht >es 
natürlich Sinn, die Daten in eine Ausgabedatei zu schreiben.

Nun gut dann mache ich mal eine Ausgabedatei .txt Format. Das hört sich
recht einfach an. Und wird auch das einfachste sein.

Dann bedanke ich mich mal für den Gedankenaustausch und fange jetzt mal 
an.

Autor: U.R. Schmitt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PDF Datei erzeugen und direkt den Viewer aufrufen.
Vorteile:
- Die Datei kann nicht nur als Papierform archiviert werden, sondern als 
Dokument in DEM derzeitigen Dokumentenstandard im Internet.
- Es gibt diverse kostenlose Toolkits für alle möglichen Sprachen zur 
Erzeugung von PDF.
- Damit kann der Kunde auch mal schnell die Parameter als Attachement an 
den Service schicken.
- Man überlässt das physische Drucken dem der sich damit auskennt (PFD 
Reader).

Alles andere ist Bastelei

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
U.R. Schmitt schrieb:
> PDF Datei erzeugen und direkt den Viewer aufrufen.
> Vorteile:
> - Die Datei kann nicht nur als Papierform archiviert werden, sondern als
> Dokument in DEM derzeitigen Dokumentenstandard im Internet.
> - Es gibt diverse kostenlose Toolkits für alle möglichen Sprachen zur
> Erzeugung von PDF.
> - Damit kann der Kunde auch mal schnell die Parameter als Attachement an
> den Service schicken.
> - Man überlässt das physische Drucken dem der sich damit auskennt (PFD
> Reader).
>


Bis hier her, hätte ich dir alles unterschrieben.

> Alles andere ist Bastelei

Bastelei ist es IMHO, wenn man zu einer Applikation auch noch 
zwangsweise einen PDF Reader installieren muss, damit man etwas so 
Banales wie 'Drucken' erledigen kann.

Besteht Interesse an deinen genannten Punkten, so hat ein Programm im 
File Menü 2 Menüpunkte
  "Drucken"
  "Exportieren"

IMHO ist alles andere Bastelei. Ein Programm welches nicht von sich aus 
Drucken kann, wird sofort wieder gelöscht. Wer weiß wie unfähig der 
Programmierer sonst noch ist.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
U.R. Schmitt schrieb:
> PDF Datei erzeugen und direkt den Viewer aufrufen.
> Vorteile:
> - Die Datei kann nicht nur als Papierform archiviert werden, sondern als
> Dokument in DEM derzeitigen Dokumentenstandard im Internet.
> - Es gibt diverse kostenlose Toolkits für alle möglichen Sprachen zur
> Erzeugung von PDF.
> - Damit kann der Kunde auch mal schnell die Parameter als Attachement an
> den Service schicken.
> - Man überlässt das physische Drucken dem der sich damit auskennt (PFD
> Reader).

Das überlässt man eher dem Druckertreiber.

>
> Alles andere ist Bastelei

Warum dann diese Bastelei?
Passenden Druckertreiber installieren und es wird bei Bedarf alles 
gedruckt (XPS, PDF, Postscript etc.).

Wie einfach das mit WinForms geht, steht z.B. hier:
http://msdn.microsoft.com/en-us/library/system.dra...

p.s. zu spät
Karl heinz Buchegger schrieb:
> IMHO ist alles andere Bastelei. Ein Programm welches nicht von sich aus
> Drucken kann, wird sofort wieder gelöscht. Wer weiß wie unfähig der
> Programmierer sonst noch ist.

Würde ich auch unterschreiben, insbesondere wenn man sich noch das 
Beispiel o.a. ansieht in dem eine Textdatei ausgedruckt wird...

Autor: U.R. Schmitt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arc Net schrieb:
> Wie einfach das mit WinForms geht, steht z.B. hier:

Klar, aber dann hast Du das Ergebnis nur auf Papier.
Als PDF hast Du es auf Platte zum Archivieren, genausoschnell gedruckt, 
per E-Mail versandt.
So what?
Weils nicht pure Microsoft ist??????

Autor: Lord Ziu (lordziu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heutzutage hat doch fast jeder User einen PDF-Generator als Drucker 
eingerichtet. Wenn man also eine ordentlich "Drucken"-Funktion in der 
Applikation implementiert, erschlägt man alle Fälle.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
U.R. Schmitt schrieb:
> Arc Net schrieb:
>> Wie einfach das mit WinForms geht, steht z.B. hier:
>
> Klar, aber dann hast Du das Ergebnis nur auf Papier.
> Als PDF hast Du es auf Platte zum Archivieren, genausoschnell gedruckt,
> per E-Mail versandt.
> So what?
> Weils nicht pure Microsoft ist??????

Nein, weil es die meisten Menschen ankotzt, wenn sie beim Installieren 
von Programm XYZ zwangsweise auch noch Programm ABC und Toolbar DEFG auf 
die Maschine installiert bekommen.
Zudem ist der Arbeitsablauf nur noch gestört:
Ich drucke in einem Programm auf 'Drucken'
Daraufhin öffnet sich ein neues Fenster in dem ich wieder auf 'Drucken' 
drücken darf.
Und dann sind da noch die Fälle, in denen ich auf 'Drucken' drücke und 
eine Message Box aufgeht, die mich darauf hinweist, dass gerade 
irgendein Programm, welches mit meinem nicht die Bohne zu tun hat, in 
ein Problem gelaufen ist und beendet wird, bzw. kein 'Viewer für 
Dateiformat UVW gefunden werden konnte und ich einen installieren 
solle'.

Drucken ist wahrlich kein Hexenwerk oder Raketentechnik. Die 
Formatierung des zu Druckenden und graphische Aufbereitung schon eher. 
Aber die hat man da wie dort.

Autor: Lord Ziu (lordziu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Drucken ist wahrlich kein Hexenwerk oder Raketentechnik. Die
> Formatierung des zu Druckenden und graphische Aufbereitung schon eher.
> Aber die hat man da wie dort.

Das kann ich nun wieder so unterschreiben.

Ob du die Formatierungsschlacht beim Generieren von einem PDF oder beim 
Generieren eines Print-Jobs hast kommt auf das Gleiche raus.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lord Ziu schrieb:

> Ob du die Formatierungsschlacht beim Generieren von einem PDF oder beim
> Generieren eines Print-Jobs hast kommt auf das Gleiche raus.

Da hab ich sie lieber beim Print Job. Denn dort hab ich sie 100% selbst 
unter Kontrolle :-)

Autor: U.R. Schmitt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lord Ziu schrieb:
> Ob du die Formatierungsschlacht beim Generieren von einem PDF oder beim
> Generieren eines Print-Jobs hast kommt auf das Gleiche raus.

Stimmt.

Karl heinz Buchegger schrieb:
> Nein, weil es die meisten Menschen ankotzt, wenn sie beim Installieren
> von Programm XYZ zwangsweise auch noch Programm ABC und Toolbar DEFG auf
> die Maschine installiert bekommen.
Na ja einen Acrobat Reader oder kompatibles ist nicht irgendein Programm 
XYZ, Auf welchem Rechner ist der nicht drauf?

Sorry, ich bin halt von unserer Situation ausgegangen. Java Software die 
auf allen Unix/Linux Derivaten und Winwows Kisten laufen können muss. Da 
ist PDF portabel zuverlässig und gut.
Außerdem hat der Hinweis der TO danach gerochen, daß das Auszudruckende 
zu jemandem anderen geschickt werden soll, nämlich 400 
Einstellungsparameter. Und da ist der Ausdruck und via Fax oder Post nur 
subotimal.
Daß man nicht alles zu Druckende über Acrobat macht ist mir auch klar, 
ich bin nur bei der Art der Fragestellung sofort auf 
Dokumentation/Archivierung von Einstellungen , bzw. Versenden der 
Parameter zu jemandem der helfen soll eingerastet.

Autor: Marcus B. (raketenfred)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pdf drucksofteware??

html files sind wesntlich einfacher zu generienen mit c# (stringbuilder 
ist da performance technisch sehr gut geeignet!)

mfg

Autor: Lord Ziu (lordziu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marcus B. schrieb:
> html files sind wesntlich einfacher zu generienen mit c# (stringbuilder
> ist da performance technisch sehr gut geeignet!)

Wie oben bereits beschrieben, gibt es diverse Möglichkeiten diese 
Problemstellung zu lösen. Alles eine Frage der Anforderungen.

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
füge doch einfach deinem C# project einen Report hinzu.
als datasource nimmst du deine settingsklasse.
Jetzt kannst du dein Blatt designen wie du willst, mit Header, Logo usw.

Im Reportviewer kannst du dann deinen Bericht anzeigen, zoomen, drucken 
und wenn du willst auch als excel oder pdf abspeichern.

Und das alles mit den Bordwerkzeugen von C#, ohne extratools.

mfg Thomas

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>füge doch einfach deinem C# project einen Report hinzu.
>als datasource nimmst du deine settingsklasse.
>Jetzt kannst du dein Blatt designen wie du willst, mit Header, Logo usw.


Das hört sich gut an weis jemand wo man für sowas ein Beispiel findet
ich kann mir das garnicht vorstellen wie ich das desginen kann wie ich
will mit Header , Logo usw

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was hast du für ein VisualStudio zur verfügung?

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Microsoft Visual C# 2008 Express Edition

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm... in der Express Edition sind die Reports nicht enthalten.
aber ich glaube, das kann man irgendwie nachinstallieren.
da ich die Prof. Edition habe, kann ich das leider nicht testen.
Ich würde dir sowieso empfehlen, die 2010 Version zu installieren.
Hat viele Verbesserungen gegenüber der 2008.
google mal nach Reportviewer und 2008/2010 Express. ich denke, da wirst 
du fündig.

Thomas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.