Listen erstellen (HTML, IMG, oder ...?)
-
pfusterschmied
- Beiträge: 91
- Registriert: 14. Mai 2007 11:19
- Wohnort: Salzburg
- Kontaktdaten:
Listen erstellen (HTML, IMG, oder ...?)
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 ....
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.gif (91.67 KiB) 3979 mal betrachtet
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...
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:
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.
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.
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 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:
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.
-
pfusterschmied
- Beiträge: 91
- Registriert: 14. Mai 2007 11:19
- Wohnort: Salzburg
- Kontaktdaten:
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
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?
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 );
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?
Du machst dir ein riesigen mehr aufwand .... solche template zu machen..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?
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
speack português italiano deutsch english castellà qt
-
pfusterschmied
- Beiträge: 91
- Registriert: 14. Mai 2007 11:19
- Wohnort: Salzburg
- Kontaktdaten:
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 :
Anschließend ersetzte ich einfach die ###MARKER### im Template mit dem Inhalt.
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));
Naturlich kannst du hinterher alles neu formatieren... im template ohne den code aendern...pfusterschmied hat geschrieben:Danke werde ich gleich mal testen. Kann ich in XSLT ordentlich formatieren ?alt.
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
speack português italiano deutsch english castellà qt