Guten Tag,
für das anstehende Anmeldeverfahren zu Klasse 5 erzeugen wir die Briefe mit SCHILD. Für den Fall, dass ein/e Schüler/in ein geschwisterkind an der Schule hat, geben wir diese Information unter dem Punkt "GS-Daten" mit dem Haken "Geschwisterkind" an.
Leider gelingt es mir nicht, dass dieser Text bei den "Geschwisterschülern" erscheint. Können Sie hier weiterhelfen und mir sagen, an welcher Stelle der Programmierung ich einen Fehler gemacht habe. Die Reportdatei hängt an.
Inhaltlich gibt es noch Lücken im Text, die jedoch die Fragestellung nicht beeinflussen sollten.
Mit freundlichen Grüßen
Sebastian Riege
Ablehnungsschreiben Geschwisterkind
Moderatoren: Raffenberg, A. Schüller, Pfotenhauer
-
- Beiträge: 10
- Registriert: Montag 28. Januar 2019, 17:55
- Schulform: Gesamtschule
- Motto: Bildung, Sport, Kultur
Ablehnungsschreiben Geschwisterkind
- Dateianhänge
-
- Ablehnung_Geschwisterkind.rtm
- (145.97 KiB) 49-mal heruntergeladen
-
- Beiträge: 10
- Registriert: Montag 28. Januar 2019, 17:55
- Schulform: Gesamtschule
- Motto: Bildung, Sport, Kultur
Re: Ablehnungsschreiben Geschwisterkind
Als Ergänzung:
Codetechnisch habe ich es so eingebunden:
begin
if SchuelerGSDaten['Geschwisterkind']= '+'
then begin
Brieftext4.RichText := ReplaceText(Brieftext4.RichText, '<<Geschwister>>', 'Leider hat auch die Tatsache, dass bereits ein Geschwisterkind die Schule besucht, keinen positiven Bescheid möglich gemacht.');
end
else begin
Brieftext4.RichText := ReplaceText(Brieftext4.RichText, '<<Geschwister>>', '');
end;
end;
Der Wert "else text" wird korrekt ausgegeben, jedoch erkennt SCHILD offensichtlich die Bedingung nicht.
Codetechnisch habe ich es so eingebunden:
begin
if SchuelerGSDaten['Geschwisterkind']= '+'
then begin
Brieftext4.RichText := ReplaceText(Brieftext4.RichText, '<<Geschwister>>', 'Leider hat auch die Tatsache, dass bereits ein Geschwisterkind die Schule besucht, keinen positiven Bescheid möglich gemacht.');
end
else begin
Brieftext4.RichText := ReplaceText(Brieftext4.RichText, '<<Geschwister>>', '');
end;
end;
Der Wert "else text" wird korrekt ausgegeben, jedoch erkennt SCHILD offensichtlich die Bedingung nicht.
- Raffenberg
- Beiträge: 2280
- Registriert: Dienstag 25. September 2018, 15:22
- Schulform: Gymnasium
- Kontaktdaten:
Re: Ablehnungsschreiben Geschwisterkind
Hallo Herr Riege,
die Information Geschwisterkind befindet sich in einer anderen Hauptdatenpipeline. Aus der Hauptpipeline "Schueler" kommen Sie nicht an diese Information heran. Hierzu müssten Sie die Hauptdatenquelle auf SchuelerGSDaten umstellen, wodurch für den Serienbrief andere relevante Informationen verloren gehen würden. Man müsste eine eigene Datenpipeline definieren und den Serienbrief auf die eigene Pipeline umfangreich anpassen.
Ich würde Ihnen empfehlen, sofern nicht jemand anderes doch noch eine Lösung findet, zwei Briefe vorzubereiten. Die Geschwisterkinder können Sie dann mit dem Gruppenprozess filtern. Ich glaube, dass dieser Gruppenprozess seine Filterung nicht aus dem Häkchenfeld bezieht, da dieses vornehmlich nur von Gesamtschulen verwendet wird. Vielmehr vergleicht der Gruppenprozess die Nachnamen und Wohnorte (vermute ich).
die Information Geschwisterkind befindet sich in einer anderen Hauptdatenpipeline. Aus der Hauptpipeline "Schueler" kommen Sie nicht an diese Information heran. Hierzu müssten Sie die Hauptdatenquelle auf SchuelerGSDaten umstellen, wodurch für den Serienbrief andere relevante Informationen verloren gehen würden. Man müsste eine eigene Datenpipeline definieren und den Serienbrief auf die eigene Pipeline umfangreich anpassen.
Ich würde Ihnen empfehlen, sofern nicht jemand anderes doch noch eine Lösung findet, zwei Briefe vorzubereiten. Die Geschwisterkinder können Sie dann mit dem Gruppenprozess filtern. Ich glaube, dass dieser Gruppenprozess seine Filterung nicht aus dem Häkchenfeld bezieht, da dieses vornehmlich nur von Gesamtschulen verwendet wird. Vielmehr vergleicht der Gruppenprozess die Nachnamen und Wohnorte (vermute ich).
Mit freundlichen Grüßen
Jens Raffenberg
Jens Raffenberg
-
- Beiträge: 10
- Registriert: Montag 28. Januar 2019, 17:55
- Schulform: Gesamtschule
- Motto: Bildung, Sport, Kultur
Re: Ablehnungsschreiben Geschwisterkind
Danke für die Antwort. In Anbetracht des engen Zeitplans, werde ich den Filter anwenden, um die Briefe zu erzeugen.
vg, S. Riege
vg, S. Riege
Re: Ablehnungsschreiben Geschwisterkind
In der kurzen Zeit kann ich leider Ihren Report nicht in Ihrem Sinne ergänzen.
Folgende Idee kann Ihr Problem ggf. beheben, ohne den Report komplett umbauen zu müssen:
In der Datenquelle SchuelerGSdaten sind die Datenfelder Schueler_ID , Geschwisterkind und Status enthalten.
Die Schüler der Neuaufnahme haben den Status 0. DIe bei Grundschuldaten markierten Geschwisterkinder sind mit + markiert.
In einer global definierten TStringlist werden die Schueler_IDs der Schüler gespeichert, die in der Datenquelle SchuelerGSdaten mit Status 0 und Geschwisterkind = + markiert sind.
Globale Variable einrichten: Geschwistertext:String; GeschwisterKinder:TStringlist;
ReportBeforePrint:
var i:integer;
begin
...
....
....
Geschwistertext:='Obwohl schon Geschwister an unserer Schule sind, können wir Ihr Kind leider nicht aufnehmen.'; // oder ähnlich
Geschwisterkinder:= TStringlist.create;
PipelineOeffnen( SchuelerGSdaten );
DatensatzzeigerBewegen(SchuelerGSdaten,-1000); // erster Datensatz
For i:=0 to RecordCount(SchuelerGSdaten)-1 do
begin
if ((SchuelerGSdaten['Geschwisterkind']='+') and (SchuelerGSdaten['Status']=0)) then Geschwisterkinder.Add(inttostr(SchuelerGSdaten['Schueler_ID']));
DatensatzzeigerBewegen(SchuelerGSdaten,1);
end;
end;
In der TStringlist sind dann die IDs der Schüler gespeichert, die als Geschwisterkind bei Grundschuldaten markiert sind.
Damit ist es dann möglich, den in Ihrem Text enthaltenen Platzhalter <<Geschwister>> durch den Text der Variablen Geschwistertext zu ersetzen, wenn die ID des aktuellen Schülers in der TStringlist enthalten ist.
if (Geschwisterkinder.IndexOf(inttoStr(Schueler{'ID')] > -1) then Platzhalter ersetzen
ReportAfterPrint
..
..
Geschwisterkinder.free
Ich hoffe, ich konnte Ihnen helfen, und mein Vorschlag funktioniert wie gewünscht.
Folgende Idee kann Ihr Problem ggf. beheben, ohne den Report komplett umbauen zu müssen:
In der Datenquelle SchuelerGSdaten sind die Datenfelder Schueler_ID , Geschwisterkind und Status enthalten.
Die Schüler der Neuaufnahme haben den Status 0. DIe bei Grundschuldaten markierten Geschwisterkinder sind mit + markiert.
In einer global definierten TStringlist werden die Schueler_IDs der Schüler gespeichert, die in der Datenquelle SchuelerGSdaten mit Status 0 und Geschwisterkind = + markiert sind.
Globale Variable einrichten: Geschwistertext:String; GeschwisterKinder:TStringlist;
ReportBeforePrint:
var i:integer;
begin
...
....
....
Geschwistertext:='Obwohl schon Geschwister an unserer Schule sind, können wir Ihr Kind leider nicht aufnehmen.'; // oder ähnlich
Geschwisterkinder:= TStringlist.create;
PipelineOeffnen( SchuelerGSdaten );
DatensatzzeigerBewegen(SchuelerGSdaten,-1000); // erster Datensatz
For i:=0 to RecordCount(SchuelerGSdaten)-1 do
begin
if ((SchuelerGSdaten['Geschwisterkind']='+') and (SchuelerGSdaten['Status']=0)) then Geschwisterkinder.Add(inttostr(SchuelerGSdaten['Schueler_ID']));
DatensatzzeigerBewegen(SchuelerGSdaten,1);
end;
end;
In der TStringlist sind dann die IDs der Schüler gespeichert, die als Geschwisterkind bei Grundschuldaten markiert sind.
Damit ist es dann möglich, den in Ihrem Text enthaltenen Platzhalter <<Geschwister>> durch den Text der Variablen Geschwistertext zu ersetzen, wenn die ID des aktuellen Schülers in der TStringlist enthalten ist.
if (Geschwisterkinder.IndexOf(inttoStr(Schueler{'ID')] > -1) then Platzhalter ersetzen
ReportAfterPrint
..
..
Geschwisterkinder.free
Ich hoffe, ich konnte Ihnen helfen, und mein Vorschlag funktioniert wie gewünscht.
Mit freundlichen Grüßen
A. Löser
A. Löser