Listen erstellen (HTML, IMG, oder ...?)

Alles rund um die Programmierung mit Qt
Antworten
pfusterschmied
Beiträge: 91
Registriert: 14. Mai 2007 11:19
Wohnort: Salzburg
Kontaktdaten:

Listen erstellen (HTML, IMG, oder ...?)

Beitrag von pfusterschmied »

Hallo Profis,

Ich arbeite an einem Programm, welches mir Werte aus einer MySQL DB holt und in verschiedenen Listen darstellt und ausdruckt. Eine Übersichtsliste (Html) funktioniert bereits.

Nun möchte ich eine sehr aufwenige Detailliste erstellen (siehe Anhang)

Versuch 1
Ich dachte daran die Liste in HTML zu erstellen, leider ist der HTML Code dafür 800 Zeilen lang. Wenn ich nun 300 Datensätze generiere, hängt das Programm.

Versuch 2
Ich erstelle eine Html Tablle und gebe der Tabelle einfach ein background-image. Laut Doku und Assistant ist es möglich ein css background-image attribute bei QTextEdit zu setzten. Leider dürfte es da noch einen Bug geben, da keine Background-Images bzw. Boders unterstützt werden.

Nun meine Frage: Wie kann ich am einfachen so eine Liste erstellen. Ich möchte nur Vornamen, Nachnamen und das Bild in diese Liste einfügen. Leider stehe ich ein wenig unter Zeitdruck und würde mich um baldige Antwort freuen ....
Dateianhänge
Liste welche mit Werten gefüllt werden soll
Liste welche mit Werten gefüllt werden soll
liste.gif (91.67 KiB) 3971 mal betrachtet
marco
Beiträge: 41
Registriert: 6. Dezember 2006 23:46
Wohnort: Niederrhein

Beitrag von marco »

hallo,

mit den html-tabellen ist schon eine vernünftige lösung. allerdings kann ich dir mit deinen bisherigen nicht weiterhelfen. code?...

willst du nur (sehr ansehnliche) druckergebnisse aus der datenbank erzeugen, so kann ich dir http://ncreport.sourceforge.net/ empfehlen. habs seinerzeit so weit angepasst, dass es aus models daten holt und nicht mehr nur ziemlich unmittelbar aus sql-abfragen. falls interesse besteht...
Gruß, Marco
pfusterschmied
Beiträge: 91
Registriert: 14. Mai 2007 11:19
Wohnort: Salzburg
Kontaktdaten:

Beitrag von pfusterschmied »

Danke für die rasche Antwort,

Ich hole mittel QSqlQuery meine Daten aus der Datenbank. Mein Programm ist eigentlich auch schon fertig programmiert, nur an der Darstellung der letzten Tabelle scheitere ich.

Ich habe auch schon eine Mischung von Bildern und Tabellen versucht, leider bekomme ich es nicht so hin, dass die Tabelle ordentlich abschließt, obwohl sie in FireFox und Opera passt.

Code: Alles auswählen


// HTML Template für EP Pässe
			content +=
			"<table border='1' cellspacing='0' cellpadding='0' width='1150'>"
			"<tr>"
				"<td colspan='4'><img src='images/pp/ppw2_01.jpg' width='1150' height='41' /></td>"
			"</tr>"
			"<tr>"
				"<td ><img src='images/pp/ppw2_02.jpg' width='349' height='123' /></td>"
				"<td  width='580 height='123'><div class='test'>"+ lastName +","+ firstName +"</div></td>"
				"<td  rowspan='2'  width='204' height='287'><img src='images/passbild/"+ pfadDB +"/" + pic +"' width='150' height='200' /></td>"
				"<td  rowspan='2'><img src='images/pp/ppw2_05.jpg' width='17' height='287' /></td>"
			"</tr>"
			"<tr>"
				"<td colspan='2'><img src='images/pp/ppw2_06.jpg' width='929' height='164' /></td>"
			"</tr>"
			"<tr>"
				"<td colspan='4'><img src='images/pp/ppw2_07.jpg' width='1150' height='512' /></td>"
			"</tr>"
			"</table>";

Ich dachte auch schon das ganze mit QPixmap umzusezten. Sprich einfach die Tabelle als Hintergrund, Vorname, Nachname in ein Bild umwandeln und in den Vordergrund stellen. leider scheitere ich da am Koordinatensystem.

Ich möchte nichts aufweniges! Einfach nur diese Tabelle mit Vorname, Nachname und Bild aus der DB.
pfusterschmied
Beiträge: 91
Registriert: 14. Mai 2007 11:19
Wohnort: Salzburg
Kontaktdaten:

Beitrag von pfusterschmied »

hab mir das Programm ( http://ncreport.sourceforge.net/) mal angesehen, coole sache, jedoch viel zu umfangreich. Soweit ich das mit meiner 3wöchigen c++ Erfahrung beurteilen darf, verwendet er zum zeichnen der Tabellen QPainter. Das ist mir (noch) zu kompliziert. Trotzdem danke.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Nimm deine HTML-Liste und warte halt mal 10min bis das Ergebnis fertig ist. Alles andere kostet dich nur mehr Zeit...
pfusterschmied
Beiträge: 91
Registriert: 14. Mai 2007 11:19
Wohnort: Salzburg
Kontaktdaten:

Beitrag von pfusterschmied »

Danke, sitz gerade dabei das html zu vereinfachen um code zu sparen...

Hätte da noch eine Frage. Ich dachte daran, das HTML Template in ein QTextDocument mit

Code: Alles auswählen

QString html;
	preview->addResource( QTextDocument::HtmlResource, QUrl( "files/pp_html.html" ), html );
einzufügen damit ich nicht alles im Quellcode stehen habe ...
anschließend könnte ich mir Marker ins Template geben (###Makrer###) welche ich dann mit replace ersetzte ...

Denke ich da richtigt oder bin ich wieder mal auf dem Holzweg?
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

pfusterschmied hat geschrieben:Danke, sitz gerade dabei das html zu vereinfachen um code zu sparen...
einzufügen damit ich nicht alles im Quellcode stehen habe ...
anschließend könnte ich mir Marker ins Template geben (###Makrer###) welche ich dann mit replace ersetzte ...
dem Holzweg?
Du machst dir ein riesigen mehr aufwand .... solche template zu machen..
Wass wenn der kunde dir sagt; ich moechte oben noch ein logo, oder die schrift etwas mehr oder das ganze in Verdana XX...
Dann siehst du alt aus...

Forme dir die daten in xml .. und extern die template oder mehrere template in xslt ... die libs sind in http://sourceforge.net/projects/qtexcel-xslt/ mit reichlich excel oder pdf generieren beispiel....

Ein template ist dann so .. http://switch.dl.sourceforge.net/source ... sql2fo.xsl und kannst jederzeit farbe font ecc bestiemmen ...
http://de.wikipedia.org/wiki/XSL_Transformation

Wenn der kunde sagt bitte in word ... dann schriebst du nur eine neue template ohne den code zu aendern...
.........................
speack português italiano deutsch english castellà qt
pfusterschmied
Beiträge: 91
Registriert: 14. Mai 2007 11:19
Wohnort: Salzburg
Kontaktdaten:

Beitrag von pfusterschmied »

Danke werde ich gleich mal testen. Kann ich in XSLT ordentlich formatieren ?
Werden alle Formatierungen unterstützt? Sonst bleibe ich bei meiner Lösung,wenn auch nur ungern:

Lösung:
Leider ist die Formatierung der Tabellen unter QT eine aufwendige Sache, da nur sehr wenige CSS-Tags unterstützt werden. Border, Background-Image, Hight, width etc. werden im QTextBrowser bzw. QTextDocument nicht unterstützt.

Ich habe jetzt alle Listen die ich erstellen möchte in externe HTML Files ausgelagert und lade sie nach bedarf einfach mit :

Code: Alles auswählen


QString templateDetails;
			// Template laden
			QString details = "files/details.html";
			if (!details.isEmpty()) { 
				QFile fileDetails(details); 
				if (fileDetails.open(QIODevice::ReadOnly | QIODevice::Text)) { 
					QTextStream inDetails(&fileDetails); 
					while (!inDetails.atEnd()) { 
						QString lineDetails = inDetails.readLine(); 
						templateDetails.append(lineDetails); 
					}
				} 
			}



templateDetails.replace(QString("###LOGO###"), QString("images/logo.jpg"));
				templateDetails.replace(QString("###LAST_NAME###"), QString(lastName));
				templateDetails.replace(QString("###FIRST_NAME###"), QString(firstName));
				templateDetails.replace(QString("###SF###"), QString(sfPrint));
Anschließend ersetzte ich einfach die ###MARKER### im Template mit dem Inhalt.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

pfusterschmied hat geschrieben:Danke werde ich gleich mal testen. Kann ich in XSLT ordentlich formatieren ?alt.
Naturlich kannst du hinterher alles neu formatieren... im template ohne den code aendern...

XSLT ist ein basiwerkzeug von webmaster http://de.selfhtml.org/xml/darstellung/ ... dlagen.htm und da es auf praktisch alles formatieren kann auch fuer programmieren..
http://albumshaper.sourceforge.net/ brauch auch xslt um die foto gallery zu machen auch QT4.



Mit xslt habe ich bis heute erfogreich die folgende formate ausgegeben. aus xml file;

Latex fuer pdf formulare, apache FOP pdf , reinen text , csv , sql dump, html, openoffice spredsheet, excel format 95. weitere sind moeglich ...


IMO: meine Eigene Home page http://ciz.ch/ basiert aus 2 einfache xslt template
1 - http://ciz.ch/map/theme/zest/page.xsl
2 - http://ciz.ch/map/theme/zest/master_html.xsl


die fertige body der page laden ich dann einfach so:

Code: Alles auswählen

<xsl:template match="body//*">
<xsl:copy>
<xsl:for-each select="@*">
<xsl:copy/>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>




Und das framework Popoon http://www.popoon.org/ gibt die richtige page je nach url regular expression... Und ein QT CMS http://cms.ciz.ch/it/software/content_m ... 69775.html
packt alle file in einen zip und ladet alles auf dem server ein entpacktes zip sieht dann so aus... http://cms.ciz.ch/data/2007/01/01/50000/
XML file mit alle sprachen bilder anlage ecc...


Und Mein Kontakt formular aus latex mit beamer folie http://latex-beamer.sourceforge.net/
http://cms.ciz.ch/data/2007/06/13/14080 ... t_Form.pdf ist auch mit xml entsanden.... im pdf fullscreen modus.... pdflatex
http://www.tug.org/applications/pdftex/
.........................
speack português italiano deutsch english castellà qt
Antworten