[Gelöst]Problem mit Spaltenbreite bei CairoReport

Spezielle Fragen zu PostgreSQL, MySQL, SQLite, SQL ...
Antworten
scatzy
Foriker
Beiträge: 22
Registriert: Do 12. Feb 2015, 20:25
Kontaktdaten:

[Gelöst]Problem mit Spaltenbreite bei CairoReport

Beitrag von scatzy » So 18. Okt 2015, 11:25

Hallo,
mein Projekt ist schon ziemlich weit fortgeschritten, die Grundfunktionalität ist mittlerweile erreicht.
Zur Zeit bin ich dabei die Report-Ausgabe zu erstellen. Dabei tritt ein für mich unlösbares Problem auf.
Für mein Projekt habe ich das Programm SQLiteCairoReportM angepasst und als Modul eingefügt.
Dies funktioniert auch eigentlich problemlos.
Nun möchte ich allerdings die Spaltenbreite nicht mehr fest vergeben sondern entsprechend den ausgegebenen Daten
anpassen. Dazu habe ich eine Funktion geschrieben, der ein ResultSet und ein Array mit den anzuzeigenden Spaltennamen
übergeben wird. Die Funktion soll alle Datensätze durchgehen und die maximal benötigte Spaltenbreite in Millimeter in einem
FloatArray zurückgeben. Aus irgendwelchen Gründen zerstört mir aber diese Funktion die Reportansicht der 1.Seite.
Ich begreife einfach (trotz aller möglicher Versuche) nicht, wo der Fehler liegt.
Vielleicht findet Ihr ihn ja.
Ich habe das Projekt mal mit hochgeladen (weiter unten).
Um den Fehler zu rekonstruieren müsst Ihr nur die Zeile 89 im CairoReport.modul wieder aktivieren.
Vielen Dank
Thomas
Zuletzt geändert von scatzy am Mo 19. Okt 2015, 17:40, insgesamt 2-mal geändert.

tux_
Moderator
Beiträge: 941
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: Problem mit Spaltenbreite bei CairoReport

Beitrag von tux_ » So 18. Okt 2015, 11:42

Ich habe das Projekt im Download-Bereich mal mit hochgeladen. -> OK, funtioniert natürlich nicht, WARUM? - Das Projekt ist gepackt 1,3 MB groß

Ich habe keine Ahnung (und auch keine Zeit, mir eine Ahnung zu verschaffen). Versuch bitte, das Projekt an einen Beitrag anzuhaengen. Unter dem Beitrags-Editor gibt es einen Reiter "Dateianhang hochladen".
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

scatzy
Foriker
Beiträge: 22
Registriert: Do 12. Feb 2015, 20:25
Kontaktdaten:

Re: Problem mit Spaltenbreite bei CairoReport

Beitrag von scatzy » So 18. Okt 2015, 11:47

Habe schon versucht, es anzuhängen - ist aber 1,3MB groß und erlaubt sind nur 512kB
Ich versuche mal es zu splitten.

Ok, splitten hat zwar geklappt, ich kann die Dateien trotzdem nicht hochladen da die Dateierweiterungen _00, _01, _02
nicht erlaubt sind.
Ich denke mal, das Thema kann gelöscht werden und probiere eben noch weiter rum :cry:
Zuletzt geändert von scatzy am So 18. Okt 2015, 12:06, insgesamt 1-mal geändert.

tux_
Moderator
Beiträge: 941
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: Problem mit Spaltenbreite bei CairoReport

Beitrag von tux_ » So 18. Okt 2015, 11:50

Warte. Ich stelle die Obergrenze fix auf 2MiB hoch.

EDIT: Erledigt.
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

scatzy
Foriker
Beiträge: 22
Registriert: Do 12. Feb 2015, 20:25
Kontaktdaten:

Re: Problem mit Spaltenbreite bei CairoReport

Beitrag von scatzy » So 18. Okt 2015, 12:08

Oh, Glück gehabt vielen Dank :P
Dateianhänge
PDF-Manager-1a-0.1.9.tar.gz
(1.3 MiB) 327-mal heruntergeladen

scatzy
Foriker
Beiträge: 22
Registriert: Do 12. Feb 2015, 20:25
Kontaktdaten:

Re: Problem mit Spaltenbreite bei CairoReport

Beitrag von scatzy » So 18. Okt 2015, 12:33

Achso, habe ich ganz vergessen zu erwähnen:
Um den Report anzuzeigen muss im Tab "Ausgabe" in Gruppe Feldauswahl bei "vorhandene Felder" mindestens
ein Feld ausgewählt werden. Nach betätigen von Button "Vorschau" wird der Report angezeigt.

scatzy
Foriker
Beiträge: 22
Registriert: Do 12. Feb 2015, 20:25
Kontaktdaten:

Re: Problem mit Spaltenbreite bei CairoReport

Beitrag von scatzy » Mo 19. Okt 2015, 17:12

Ich glaube, ich habe den Fehler gefunden.
In der Funktion CalculateColumnWidth wird vor der äußeren Schleife (ForEach hRes) der Datensatzzeiger auf First gesetzt.
Vor dem Schleifenende wird der Zeiger auf Next gesetzt. Wenn das Result komplett durchgelaufen ist, steht der Zeiger wahrscheinlich außerhalb des Results, da
er ja nochmal auf Next gesetzt wird.
In der die Funktion aufrufenden Routine ExportPDF wird zwar der Zeiger auf den ersten ( hRes.MoveTo(0)) Datensatz gesetzt, das scheint aber so nicht zu funktionieren.
Habe jetzt in der Funktion CalculateColumnWith nach dem Next, also vor dem Return, ein hRes.MoveFirst eingefügt und das scheint die Lösung gewesen zu sein.

MfG Thomas

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast