Eingegebene Daten strukturiert ausdrucken

sinni800

Mitglied
Guten Tag..

Und zwar muss ich ein Programm machen, bin aber noch nicht so gut im .NET Gewühl. Es geht darum, dass in einer Form Daten eingegeben werden müssen. Das muss nun einfach Strukturiert ausgedruckt werden. Also die Inhalte in verschiedenen Textboxen nun es irgendwie auf ein Blatt schaffen...

Jetzt stellt sich die Frage:

Wie soll ich die Infos ausgedruckt bringen?

Ich möchte einen Kaufvertrag hinbringen, der eine Struktur hat.

Ich hab schon drüber nachgedacht und bin nur auf 2 Möglichkeiten gekommen:
Drawing (die Texte pixelgenau auf ein Drawing)
HTML (Dann die Variablen einfügen...)

Was ich jetzt bräuchte ist die vor allem einfachste Strukturierungsmethode für Seiten...

Hope you can help me.

Danke im Vorraus

Dennis J.
 
Hast du Word? Du könntest dir eine Vorlage schreiben, die ins Programmverzeichnis legen und dann einfach den Text aus den Textboxen da einsetzen lassen. Dann hättest du gleich ein besseres Layout...
Weil nur so mit .net... ich weiß nicht, ob das dann so schön aussieht.
 
Wie "da einsetzen lassen"?

Eigentlich sollte das ziemlich unabhängig von der (gekauften, .NET gilt ja nicht dazu ;) ) installierten Software sein. Der Kunde bräuchte das doch dann normal auch, oder?
 
Eine wirklich einfache Möglichkeit wäre:

  1. Speichern der Daten in einem XML
  2. Transformation der Daten in XML-Form mit Hilfe eines XSLTs nach HTML
  3. Anzeige im Browser-Control
  4. Möglichkeit des Ausdruckens ist über Punkt 3 gegeben, muss eventuell nur noch extra angeboten werden, wenn das Kontextmenü des Browser-Controls nicht ausreichend ist (was ich mir vorstellen könnte).
 
Is wirklich die beste möglcihkeit..
Habs so gemacht:

1. Eine HTML Datei genommen, dort die Platzhalter mit den IDs der einzelnen steuerelemente gefüllt

2. For Schleife die die HTML datei mit den Platzhaltern füllt:

Code:
        For Each d As Control In Me.Controls
            If d.Name.StartsWith("grp") Then
                For Each d2 As Control In CType(d, GroupBox).Controls
                    If d2.Name.StartsWith("txt") Then
                        html = ReplacePlus(html, d2.Name, umlaute(CType(d2, TextBox).Text))
                    ElseIf d2.Name.StartsWith("chk") Then
                        'CType(d2, CheckBox).Checked = False
                        If CType(d2, CheckBox).Checked = True Then
                            html = ReplacePlus(html, d2.Name + """", d2.Name + """" + " checked = ""true""")
                        End If
                    ElseIf d2.Name.StartsWith("cbox") Then
                        html = ReplacePlus(html, d2.Name, umlaute(CType(d2, ComboBox).Text))
                    ElseIf d2.Name.StartsWith("rad") Then
                        If CType(d2, RadioButton).Checked = True Then
                            html = ReplacePlus(html, d2.Name + """", d2.Name + """" + " checked = ""true""")
                        End If
                    End If
                Next
            End If
        Next

"Umlaute"-Funktion (wegen der Limitierung von HTML dass man ü schreiben muss, für ein Ü)

Code:
        umlaute = text
        umlaute = ReplacePlus(umlaute, "ä", "ä")
        umlaute = ReplacePlus(umlaute, "ö", "ö")
        umlaute = ReplacePlus(umlaute, "ü", "ü")
        umlaute = ReplacePlus(umlaute, "ß", "ß")

ReplacePlus Funktion von einer VB-Seite:

Code:
    Public Function ReplacePlus(ByVal Text As String, _
      ByVal oldChar As String, ByVal newChar As String, _
  Optional ByVal bIgnoreCase As Boolean = True, _
  Optional ByVal bReplaceOnlyWholeWords As Boolean = False) As String

        ' Mit Hilfe dieser Funktion können Sie beim Aufruf von Replace (in .NET) 
        ' die Groß-Kleinschreibung ignorieren und auch nur ganze Worte ersetzen

        Dim sPattern As String = ""

        ' Falls nur ganze Wörter ersetzt werden sollen
        If bReplaceOnlyWholeWords = True Then sPattern = "\b"

        If bIgnoreCase = True Then
            Return New Regex(sPattern & oldChar & sPattern, RegexOptions.IgnoreCase Or _
              RegexOptions.Multiline).Replace(Text, newChar)
        Else
            Return New Regex(sPattern & oldChar & sPattern, _
              RegexOptions.Multiline).Replace(Text, newChar)
        End If
    End Function


Bin jetz wegen der Antworten bei HTML geblieben ;)

Norbert Eder: Wegen XML, da find ich sind meine Fähigkeiten noch nichst sooo berauschend, dass ich das hinbringe ;)

Hab nur noch ein Problem:

Den fertigen Code schieß ich jetz in eine per GetTempFileName erstellten Tempdatei.

Wenn ich drucke, ist jedoch unten der Dateiname noch angegeben. Ein bisschen komisch ist der schon da...

Kriegt man den irgendwie weg? Hab nur eine eher Hack-mäßige Lösung für VB6 gefunden. Mit Registry umstellen. Hab aber leider auch jemanden gefunden, der verschiedene Probleme auf verschiedenen Computern damit hatte.

Bedanke mich im Vorraus für Antworten ;)
 
Zurück