Feldüberlauf feststellen

Wie kann ich feststellen ob während des Drucks ein Feld nicht in den dafür vorgesehenen Platz hineingepasst hat?
Beispiel: ein besonders hoher Betrag in der Spalte “Preis”, der nicht in die dafür vorgesehene Breite passt und deswegen nicht korrekt angedruckt wird.
Gibt es hier irgendein Flag oder ähnliches, welches ich während/nach des Drucks abfragen kann?

Seit der Version 25 gibt es das Feature “Automatische Anpassung der Spaltenbreiten”, eventuell wäre das eine Option für Sie, unter folgendem Link finden Sie den zugehörigen Blog-Artikel.

Falls das Feature nicht für Sie in Frage kommt oder Sie eine ältere Version verwenden, bleibt Ihnen hier nur die Verwendung der Spalten-Eigenschaft “Einpassen” und dort dann auf “Umbrechen” + “Umbruch erzwingen” setzen.

Das ist ein guter Vorschlag - grundsätzlich gesehen. Leider hilft mir dies hier aber nicht weiter. Denn:

Ich bekomme die Druckdaten von einem im Hintergrund laufendem Service, dem ich diverse Informationen zurückliefern muss, z.B. gibt es ein Feld “WasOverflow” welches ich setzen muss wenn ein Feld nicht reingepasst hat.

Deswegen benötige ich diese Information. Nach Rückfrage mit dem Endkunden ist das Umbrechen keine Lösung, es wird auf das korrekte Ausfüllen dieses Flags bestanden.

Gibt es eine Möglichkeit für mich an diese Information zu gelangen?

Da fällt mir leider nichts ein - per TextWidth()-Funktion können Sie Ausgabebreiten vorab bestimmen, solange es sich nicht um RTF-Text handelt und mit der Breite der Spalte vergleichen. Aber diese Information an den aufrufenden Code zu geben dürfte schwierig werden. Eventuell könnten Sie die Information in eine Benutzervariable parken und per Objektmodell in einem der Malevents auswerten. Die eigentlich richtige Lösung wäre in meinen Augen aber, ein Abschneiden zu vermeiden/verhindern, wie es @ealacali oben vorgeschlagen hat. Klar, der Kunde ist König, aber hier scheint mir die Lösung, die gewünscht ist der möglichen Lösung im Produkt deutlich unterlegen zu sein.

Letztendlich konnten wir den Kunden von der Umbruch-Lösung überzeugen.
@H. Bartlau: das wäre meine Notlösung gewesen, über das DOM zu gehen, aber dann hätte ich alles umschreiben müssen und es wäre deutlich komplizierter und aufwändiger geworden.

1 Like