vielleicht hat jemand eine gute Idee: Wir möchten die Zulassung zur Berufsabschlussprüfung bekanntgeben. In einem Fall wird keine Zulassung ausgesprochen. Die Einstellungen im Reiter BK-Abschluss (und auch im Abitur) sind in Ordnung. Das Formular (siehe Anlage) prüft das Feld BKAbschluss['Zulassung'] und blendet entsprechend RichText10 aus und RichText11 (ff.) ein (auf Seite2_3). Das ist m. E. stimmig.
Allerdings komme ich jetzt nach längerer Fehlersuche nicht weiter. Vielleicht hat jemand hier eine Idee oder das Verhalten schon einmal beobachtet.
Ausgangslage
Im Report wird auf einer Seite (Seite2_3, keine eigene Datenquelle zugewiesen) über
Code: Alles auswählen
BKAbschluss['Zulassung']- → RichText10 (Zulassungstext) sichtbar
Code: Alles auswählen
Zulassung = '+' - → RichText11 (Nichtzulassungstext) + SubReport5 (Minderleistungen) sichtbar
Code: Alles auswählen
Zulassung = '-'
Code: Alles auswählen
procedure DetailBeforePrint;
begin
RichText10.visible:=TRUE;
RichText11.visible:=FALSE;
SubReport5.visible:=FALSE;
if BKAbschluss['Zulassung'] = '-' then begin
RichText10.visible:=FALSE;
RichText11.visible:=TRUE;
SubReport5.visible:=TRUE;
// weitere Logik für Wiederholung ...
end;
end;
Alle Schülerinnen und Schüler haben einen BKAbschluss-Datensatz mit eingetragenem Zulassungsstatus. Ein Schüler (an 4. Stelle in der Druckreihenfolge) ist nicht zugelassen (
Code: Alles auswählen
Zulassung = '-'Code: Alles auswählen
Zulassung = '+'Das Problem (in drei Stufen)
Stufe 1 – Normaler Durchlauf:
Wenn ich den Report einfach so ausführe, erhalten alle Schülerinnen und Schüler den Zulassungstext (RichText10) – auch der Schüler, der eigentlich nicht zugelassen ist. Die Abfrage auf
Code: Alles auswählen
BKAbschluss['Zulassung'] = '-'Stufe 2 – Testweise Ausgabe:
Um dem Problem auf die Spur zu kommen, habe ich auf Seite2_3 ein Label eingefügt, das
Code: Alles auswählen
BKAbschluss['Zulassung']Stufe 3 – Zustand brennt sich ein:
Wenn ich das Test-Label wieder entferne, den Report speichere und erneut damit drucke, bleibt es trotzdem bei Nichtzulassung für alle Schüler. Das lässt sich auch nicht durch erneutes Speichern oder Schließen des Reports beheben. Erst ein kompletter Neustart von SchILD setzt den Zustand zurück – dann ist man wieder bei Stufe 1.
Was ich bereits geprüft habe
- Daten in SchILD: Alle Datensätze sind korrekt gepflegt. Jeder Schüler hat einen BKAbschluss-Eintrag mit dem richtigen Zulassungsstatus.
- Direktes Ausgeben des Feldes: Wenn ich per DBText oder Label auf die Seite setze, wird der Wert solange korrekt angezeigt, bis ein Schüler in der Liste keine Zulassung hat – das Feld ist also grundsätzlich erreichbar. Aber genau dieses Einbinden scheint den Folgefehler auszulösen.
Code: Alles auswählen
BKAbschluss['Zulassung'] - Reproduzierbar: Das Verhalten ist zuverlässig reproduzierbar: normaler Start → alles Zulassung (auch bei der nicht zugelassenen Schülerin), nach Einfügen eines BKAbschluss-Feldes → alles Nichtzulassung, nach Entfernen und Speichern → bleibt bei Nichtzulassung, erst SchILD-Neustart hilft.
Es scheint zwei separate Probleme zu geben:
1. Seite2_3 hat keine Datenquelle zugewiesen. Der Zugriff auf
Code: Alles auswählen
BKAbschluss['Zulassung']2. Das Einbinden eines DB-Feldes aktiviert die Datenquelle, aber dann scheint sich der Cursor oder ein interner Zustand von BKAbschluss so zu verändern, dass er für alle Schüler denselben Wert liefert. Dieser Zustand überlebt das Entfernen des Feldes und sogar das Speichern des Reports – er wird erst durch einen SchILD-Neustart zurückgesetzt.
Hat jemand dieses Verhalten schon einmal beobachtet oder einen Hinweis, wie ich hier weiterkomme? Für jede Idee wäre ich dankbar.
Viele Grüße,
Sebastian Stüwe.
PS: Schild-Version 2 ist auf dem neuesten Stand.