D46: BKAbschluss['Zulassung'] verhält sich ungewöhnlich

Alles, was zur Schulform Berufskolleg passt.

Moderatoren: Raffenberg, A. Schüller, Pfotenhauer

Antworten
Stuewe
Beiträge: 6
Registriert: Donnerstag 12. Januar 2023, 21:07
Schulform: BK
Kontaktdaten:

D46: BKAbschluss['Zulassung'] verhält sich ungewöhnlich

Beitrag von Stuewe »

Hallo zusammen,

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']
gesteuert, welche Textbausteine sichtbar sein sollen:
  • Code: Alles auswählen

    Zulassung = '+'
    → RichText10 (Zulassungstext) sichtbar
  • Code: Alles auswählen

    Zulassung = '-'
    → RichText11 (Nichtzulassungstext) + SubReport5 (Minderleistungen) sichtbar
Der zugehörige Code in DetailBeforePrint:

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;
Datenlage

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 = '-'
), alle anderen sind zugelassen (

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'] = '-'
greift also offenbar gar nicht.

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']
direkt ausgibt. Danach kippt das Verhalten: Plötzlich erhalten alle Schüler den Nichtzulassungstext (RichText11) – auch diejenigen, die zugelassen sind.

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

    Code: Alles auswählen

    BKAbschluss['Zulassung']
    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.
  • 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.
Mein Verdacht

Es scheint zwei separate Probleme zu geben:

1. Seite2_3 hat keine Datenquelle zugewiesen. Der Zugriff auf

Code: Alles auswählen

BKAbschluss['Zulassung']
im Code funktioniert im Normalbetrieb offenbar nicht zuverlässig – die Bedingung greift bei keinem Schüler, obwohl sie es bei der nicht zugelassenen Schülerin müsste. Möglicherweise wird die Datenquelle BKAbschluss von der Seite ohne Zuweisung gar nicht korrekt angesteuert. Wäre das ein denkbarer Ansatz?

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.
Dateianhänge
BAP01-Anl D46 BAP-Zulassung 1.ZAA 1.Teilprüfung.rtm
(202.05 KiB) 1-mal heruntergeladen
Antworten

Zurück zu „Berufskollegs“