mir ist ein Fehler im Designer begegnet, welcher leider äußerst störend ist:
Wenn für eine Tabelle eine feste Höhe angelegt wurde und diese aber durch irgendeinen Grund überschritten wird, dann entsteht eine Dauerschleife. Der Designer probiert es pausenlos erneut zu erstellen und man ist gezwungen das Programm mit dem Taskmanager zu killen.
Das ist kein seltenes Vorkommen, sondern bei Bedarf mit 100% Quote replizierbar. Als Nutzer bekommt man allerdings kein Feedback des Programms, wo überhaupt der Fehler liegt. Ergo man sucht bis man letztendlich über Debwin folgendes erfährt:
grundsätzlich ist es schwierig, das Thema “Endlosschleife” zu lösen. Oft entstehen die Schleifen durch die unterschiedlichsten Bereiche und Designer Eingaben / Einstellungen.
Dort ist auch die Möglichkeit aufgeführt, Schleifendurchläufe zu begrenzen. Das würde zumindest das “endlose” umgehen.
Aber ja, ganz ersichtlich ist es nicht, wenn man nicht sofort nach jeder Änderung einmal in die Berichtsvorschau springt um zu sehen, ob sich ein möglicher Fehler eingeschlichen hat. Nimmt man viele Änderungen auf einmal vor, fehlt dem Anwender beim designen möglicherweise der Kontext zur Endlosschleife.
Daher habe ich intern einen Wunsch für unsere Entwicklungsabteilung angelegt, eine Option einzuführen, die es erlaubt, den betroffenen Objektnamen (zum Beispiel die Tabelle), der verantwortlich für die Endlosschleife ist, anzuzeigen.
Das ist genau die Art von Bug, die einen wahnsinnig macht, das kenne ich nur zu gut. Dieser berüchtigte “IDLE COUNTER”, der in Debwin durchdreht, ist meistens ein Zeichen dafür, dass die Rendering-Engine in einer Endlosschleife hängt, weil sie den Seitenumbruch nicht berechnen kann. Im Grunde versucht deine Tabelle, Inhalte in einen gesperrten Bereich zu „drücken“, und da der Layout-Algorithmus keine logische Lösung findet, fängt er immer wieder von vorne an. Das ist typisch für Reporting-Tools mit einer Single-Pass-Engine.
Ein kleiner Experten-Trick, den kaum jemand nutzt, um das ohne Task-Manager zu lösen: Versuch mal, die Eigenschaft “Keep Together” (Zusammenhalten) bei den Gruppen- oder Datenzeilen auf “False” zu setzen. Oft ist genau diese Einschränkung in Kombination mit der festen Höhe der Auslöser für den Konflikt. Wenn die Engine die Zeile aufteilen darf, stoppt die Schleife. In Sachen “Topical Authority” beim Designer-Debugging: Die Zahl hinter dem IDLE COUNTER gibt oft an, wie viele Neupositionierungsversuche vor dem Crash gemacht wurden. Es wäre definitiv menschlicher, eine Fehlermeldung wie “Overflow bei fester Höhe” zu bekommen, statt eines kompletten Freezes!
Also den Idle Counter kannst du ja wie in meinem geteilten Link beschrieben per Option “LL_OPTION_IDLEITERATIONCHECK_MAX_ITERATIONS” bereits setzen.
Bezüglich der konkreten Hinweismeldung / einer Option dies einzublenden, die sich auf das jeweilige Objekt bezieht, habe ich das wie erwähnt als einen Wunsch intern bei unserer Entwicklungsabteilung eröffnet. Ob und wann dies umgesetzt werden würde, kann ich dir allerdings nicht sagen.