Autor Beitrag
Danny3979
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 06.07.10 10:18 
Hallo Leute,

Ich bin neu hier und brauche etwas Unterstützung. Ich habe versucht mit C# und WinForms eine Art Druckvorschau hinzukriegen. Bin leider gescheitert !
Ich möchte eine Seite mit verschiedenen Eingabefeldern erstellen. Beim Betätigen eines Buttons soll sich ein zweites Fenster öffnen und die Eingaben aus dem ersten Fenster in einer Art Liste (wie eine Rechnung) darstellen. Über einen weiteren Button soll die Liste ausgedruckt werden können.
Ich habe schon gesucht und auch einiges gefunden, leider ist das für nen Anfänger wie mich ziemlich schwierig zu verstehen.
Kann mir vielleicht jemand anhand eines codes erklären, wie sowas zu lösen ist !?
reichenberg
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 06.07.10 16:06 
Tag. Google doch einfach danach.
Chiller_No.1
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 62
Erhaltene Danke: 6

Win 7, Win XP, Win Vista
C++, C#, HTML
BeitragVerfasst: Di 06.07.10 16:18 
reichenberg...

Dazu musst du dir ersteinmal eine vorm "zusammenbasteln" mit Textboxen und Buttons! Hast du dies erst einmal gemacht kanst du ja nochmal posten ;)
Ich würd dir vorschlagen die Druckvorschau in einer einfachen Messagebox zu machen ;) Damit hast du nur eine einzige Form und hälst das ganze Programm ziemlich simpel :)

ersteinmal würde ich die eingaben in eine Variable einspeichern..
ausblenden C#-Quelltext
1:
2:
3:
string name= textbox1.Text;
string vorname= textbox2.Text;
string nummer = textbox3.Text;


Danach lässt du dir wenn du auf einen Button gekiclt hast eine Messagebox öffen in der die Eingaben stehen wie sie auch später in einer txt datei stehen sollen ;)

ausblenden C#-Quelltext
1:
2:
3:
4:
void Button_Click(Object sender, EventArgs e)
{
MessageBox.Show(WriteLine(name)+WriteLine(vorname)+WriteLine(nummer));
}

Danach speicherst du die Eingabe in eine .txt Datei ich schreib dir gleich den Quellcode wenn ich wieder am Arbeitsplatz bin ;)
Ich muss gleich selber ersmal schauen was ich hier geschreiben hab xD Aber im großen und ganzen bist du ersmal beschäftigt die Form herzustellen^^

mfg chiller


EDIT: Aber arbeite dich doch am besten ersmal hier durch ;) openbook.galileocomputing.de/csharp/ Das dürfte eine Vielzahl deiner Fragen schon beantworten^^

Für diesen Beitrag haben gedankt: Danny3979
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Di 06.07.10 16:23 
Hallo,

ich würde noch einen Schritt zurück gehen. Wie chiller schon schreibt (mit string name, vorname ...) benötigst du Variablen mit denen du die gewünschte Informationen abspeichern kannst. Am besten du überlegst dir hierfür eine Struktur die du in einer Klasse ablegst. So kannst du später auch Rechnungen bearbeiten, speichern, löschen und eben auch besser drucken.

Zu dem OpenBook rate ich dir auch.

Wenn du dies umgesetzt hast, dann kann es ans drucken gehen. Aber Daten-Logik, Verwaltungs-Logik solltest du zuerst machen.

Gruß

Für diesen Beitrag haben gedankt: Danny3979
Chiller_No.1
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 62
Erhaltene Danke: 6

Win 7, Win XP, Win Vista
C++, C#, HTML
BeitragVerfasst: Di 06.07.10 16:24 
So ist es ;)
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4796
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 06.07.10 16:55 
Hallo Danny,

für die Anzeige einer Druckvorschau gibt es schon die vorgefertigten Komponenten PrintPreviewControl bzw. PrintPreviewDialog. Diese befinden sich in der VS-ToolBox unter dem Punkt 'Drucken'. Du müßtest dazu jedoch das Drucken per Code mit der PrintDocument-Klasse erledigen.

Wenn du jedoch eine vorgefertigte Druckvorlage haben willst, dann solltest du einen ReportViewer verwenden, z.B. den MicrosoftReportViewer ('ToolBox/Berichterstattung').

Für diesen Beitrag haben gedankt: Danny3979
Danny3979 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 06.07.10 19:20 
Hallo Leute,
erstmal danke für eure Hilfe !


user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:


Wenn du jedoch eine vorgefertigte Druckvorlage haben willst, dann solltest du einen ReportViewer verwenden, z.B. den MicrosoftReportViewer ('ToolBox/Berichterstattung').


Das ist ne gute Idee, aber ich denke, dass der Lernefekt größer ist, wenn ich mir ein Dokument selber bastle.
Die Form hab ich übrigens schon erstellt. Sie besteht nur aus ner ComboBox für die Anrede und ein paar TextBox-Elementen.
Was haltet ihr davon, ne zweite Form mit Label´s zu erstellen und die .Text-Eigenschaften zu "verbiegen" ? Könnte man das so lösen ?

user profile iconChiller_No.1 hat folgendes geschrieben Zum zitierten Posting springen:

Ich würd dir vorschlagen die Druckvorschau in einer einfachen Messagebox zu machen ;) Damit hast du nur eine einzige Form und hälst das ganze Programm ziemlich simpel :)^^


Warum komm ich da nicht drauf ??

user profile iconChiller_No.1 hat folgendes geschrieben Zum zitierten Posting springen:

Danach speicherst du die Eingabe in eine .txt Datei ich schreib dir gleich den Quellcode wenn ich wieder am Arbeitsplatz bin ;)^^


Das wäre echt super ! Dann könnte ich mir ein nettes Formular basteln.

Gruß Danny
Chiller_No.1
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 62
Erhaltene Danke: 6

Win 7, Win XP, Win Vista
C++, C#, HTML
BeitragVerfasst: Mi 07.07.10 08:46 
So hier der Code ;)
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
//Protokoll speichern in .txt Datei

            string b = Convert.ToString(dateTimePicker1.Value);
            string f = Convert.ToString(dateTimePicker1.Value.Day);
            string g = Convert.ToString(dateTimePicker1.Value.Month);
            string h = Convert.ToString(dateTimePicker1.Value.Year);
            string i = Convert.ToString(dateTimePicker1.Value.Hour);
            string j = Convert.ToString(dateTimePicker1.Value.Minute);
            string k = Convert.ToString(dateTimePicker1.Value.Second);

          
            StreamWriter sw = File.CreateText(@"C:\Dokumente und Einstellungen\admin\Desktop\teste\" + comboBoxEx1.Text + "-" + comboBoxEx2.Text + "-" + comboBoxEx3.Text + "-" + f + "." + g + "." + h + "_" + i + "-" + j + "-" + k + ".txt");
            sw.WriteLine("Name - des - Programms    /" + b);
            sw.WriteLine("==================================================================================");
            sw.WriteLine();
            sw.WriteLine("Telefondauer:");
            sw.WriteLine("==================================================================================");
            sw.WriteLine(m_Hours + " Stunden " + " " + m_Minutes + " Minuten " + " " + m_Seconds + " Sekunden ");
            sw.WriteLine();
            sw.WriteLine("Kosten:");
            sw.WriteLine("==================================================================================");
            sw.WriteLine(textBoxX2.Text);
            sw.WriteLine();
            sw.WriteLine("Bearbeitender Mitarbeiter:");
            sw.WriteLine("==================================================================================");
            sw.WriteLine(comboBoxEx1.Text);
            sw.WriteLine();
            sw.WriteLine("Kunde:");
            sw.WriteLine("==================================================================================");
            sw.WriteLine(comboBoxEx2.Text);
            sw.WriteLine();
            sw.WriteLine("Ansprechpartner des Kunden bzw. Auftragsgeber des Kunden:");
            sw.WriteLine("==================================================================================");
            sw.WriteLine(comboBoxEx3.Text);
            sw.WriteLine();
            sw.WriteLine("Kommentar:");
            sw.WriteLine("==================================================================================");
            sw.WriteLine(richTextBox1.Text);
            sw.Flush();
            sw.Close();
            MessageBox.Show("Gespeichert!");


Ist villeicht ein wenig unübersichtlich aber so in der Art köntest du es angehen!

mfg chiller