GetTimeTableText (Opus Funktion)

Beschreibung

Gibt einen Stundenplan im RTF Format unter Berücksichtigung der Einstellungen zurück. Es ist auch möglich, über eine Callback Funktion den Inhalt der Zellen zu steuern.

Argumente

Name
Typ
Beschreibung
TableTypeinteger
1Wochenplan
2Kursplan
4Semesterplan
0Automatischer Plantyp (Es wird der Typ der ersten Klassengruppe genommen)
|(eines der oberen nehmen und die weiteren Optionen mit der OR Operation ( | ) verknüpfen.
0x08 (8)Angegebene Lektionen (i_SSB_LessonID)
0x10 (16)Persönlicher Stundenplan
0x20 (32)Klassengruppenstundenplan
0x40 (64)Lehrerplan
0x80 (128)Raumplan
0x80000Hausplan

je eins und dann zusammenrechnen

Weitere Optionen:

0x200 (512): Gleiche Klassengruppen zusammenfassen

0x400 (1024): Gleiche Lehrer zusammenfassen

0x800 (2048): Gleiche Räume zusammenfassen

0x1000 (4096) RTF Texte für Anhang generieren (Siehe Argumente MarksList1, MarksList2, SubjectTable, SubjectList)

0x2000 (8192) Totale Lektionenzahl hinzufügen

0x4000 (16384): Lektionenzahl ausgeben (nur Lehrerplan)

0x8000 (32768): Raumplan als kleine Tabelle ausgeben (nur Raumplan)

0x20000 (131072): Nur die reine Tabelle ausgeben (alle Pläne)

0x40000 (262144): Callback Funktion für die Zellentexte verwenden. Dazu muss der Parameter CallbackFunction angegeben werden.

DatasetID

integer

[integer]

TeacherID / ClassGroupID / RoomID / AddressRoleID / LessonID

oder Array der entsprechenden IDs

PlanningPeriodIDintegerPlanningPeriodID
PrintableTableinteger

PrintableTable (0/1)

0 = schneller

SeminarCenterIDintegerID des Standortes
ShowTeacherAvailabilityinteger

1 = nicht verfügbare Lektionen werden grau hinterlegt.

TeacherFlaginteger

Nur bei Wochenplan relevant

0 = nur Lehrerkürzel wird ausgegeben

1 = der volle Name der Lehrpersonen wird ausgegeben

SubjectFlaginteger

Nur bei Wochenplan relevant

0 = nur der Fachname wird ausgegeben

1 = Fachname und Beschreibung wird ausgegeben

SkipEmptyColumnsinteger(optional) (0/1) 1 = Leere Spalten im Stundenplan werden nicht ausgegeben
DayIDList[integer]

(optional) Liste von DayID, die maximal ausgegeben werden sollen.

Ist das Array leer oder wird es weggelassen, dann werden alle Wochentage berücksichtigt.

CallbackFunctionstring

(optional) Name einer Callback Funktion, mit welcher der Zellentext bestimmt werden kann.

Diese Funktion sollte im Minimum folgendermassen aussehen, wobei der Funktionsname beliebig sein kann:

function TimeTableCallback(CellText, LessonID, LessonDate)
{
  // Hier den CellText setzen oder verändern.
  return (CellText);
};

Wird diese Funktion fehlerhaft definiert oder gibt sie einen falschen Datentyp zurück, wird der generierte Text verwendet.

Die Argumente sind:

NameWert
CellTextUrsprünglicher RTF Text der Zelle
LessonIDID der Lektion, welche in der Zelle abgebildet werden soll
LessonDateEinzelnes Datum der Lektion. Dies wird nur bei Semesterplan und bei Kursplan verwendet, da nur dort einzelne Daten aufgeführt werden. Die Callback Funktion muss aber immer alle drei Parameter besitzen.
MarksList1&string(optional) Zurügegebener RTF String mit einer zeilenweisen Liste von Datenserien, die verwendet wurden (mit Datumsangaben auf die Woche bezogen)
MarksList2&string(optional) Zurügegebener RTF String mit einer zeilenweisen Liste von Datenserien, die verwendet wurden (mit Datumsangaben auf den Tag bezogen)
SubjectsTable&string(optional) Zurügegebener RTF String mit einer Tabelle der Fächer und Lehrpersonen, die verwendet wurden
SubjectsList&string(optional) Zurügegebener RTF String mit einer zeilenweisen Liste der Fächer und Lehrpersonen, die verwendet wurden

Rückgabewert  string

RTF String des Stundenplans

Beispiel

Result = GetTimeTableText(1+32+0x20000+0x40000, ID, GetSSB_Class_i_SSE_PlanningPeriodIDEntry( GetSSB_ClassGroup_i_SSB_ClassIDEntry(ID)), 1, 0, 0, 0, 0, 0, [1,2,3,4,5], "TableText");


Callback Funktion:

function TableText(CellText, LessonID, LessonDate)
{
  Lo_ClassSubject = GetSSB_ClassSubjectObject(GetSSB_Lesson_i_SSB_ClassSubjectIDEntry(LessonID));
  CellText = "\\fs16 " + "{\\b "+GetSSB_LessonType_s_PrefixEntry(Lo_ClassSubject.i_SSB_TypeID) + GetSSB_Subject_s_NameEntry(Lo_ClassSubject.i_SSB_SubjectID) + GetSSB_LessonType_s_SuffixEntry(Lo_ClassSubject.i_SSB_TypeID) +
  "}\\par{\\i " +
  GetSSB_Teacher_s_ShortEntry(Lo_ClassSubject.i_SSB_TeacherID) + "}\\~{\\i " +
  GetSSB_Room_s_NameEntry(GetSSB_Lesson_i_SSB_RoomIDEntry(LessonID)) + "}";
  // Hier den CellText setzen oder verändern.
  CellText = StrReplace(CellText,"\\b (","(");
  return (CellText);
};

Siehe auch

---