Hallo armine,
es geht darum, Fächer abzuwählen, also zu entscheiden, dass beispielsweise das Fach Physik nicht unterrichtet wurde. Dann soll in zwei Notenübersichten und in zwei Zeugnissen (jwg. zwei Halbjahren), die entsprechenden Felder für Physik gesperrt werden (hidden) und den Wert --- bekommen. Bisher regele ich das in jedem Fach mittels :
if(this.rawValue == 0)
then
Zeugnisformular.Notenübersicht.Tabelle1.Zeile1.PhiloNote.rawValue = "---"
Zeugnisformular.Notenübersicht.Tabelle1.Zeile1.PhiloNote.access = "protected"
Zeugnisformular.NotenübersichtEndjahr.Tabelle1.Zeile1..PhiloNote.rawValue = "---"
Zeugnisformular.NotenübersichtEndjahr.Tabelle1.Zeile1..PhiloNote.access = "protected"
Zeugnisdoppelseite.Zeugnis.tbl_NOTEN.Zeile2.PhiloNote.rawValue = "---"
Zeugnisdoppelseite.Zeugnis.tbl_NOTEN.Zeile2.PhiloNote.access = "protected"
ZeugnisdoppelseiteEndjahr.ZeugnisEndjahr.tbl_NOTEN.Zeile2.PhiloNote.rawValue = "---"
ZeugnisdoppelseiteEndjahr.ZeugnisEndjahr.tbl_NOTEN.Zeile2.PhiloNote.access = "protected"
else
Zeugnisformular.Notenübersicht.Tabelle1.Zeile1.PhiloNote.rawValue = ""
Zeugnisformular.Notenübersicht.Tabelle1.Zeile1.PhiloNote.access = "open"
Zeugnisformular.NotenübersichtEndjahr.Tabelle1.Zeile1..PhiloNote.rawValue = ""
Zeugnisformular.NotenübersichtEndjahr.Tabelle1.Zeile1..PhiloNote.access = "open"
ZeugnisdoppelseiteEndjahr.ZeugnisEndjahr.tbl_NOTEN.Zeile2.PhiloNote.rawValue = ""
ZeugnisdoppelseiteEndjahr.ZeugnisEndjahr.tbl_NOTEN.Zeile2.PhiloNote.access = "open"
Endif
Hinweis: Hinter Zeile1 bzw. Zeugnisdoppelseite fehlt jeweils der *, um alle Instanzen (quasi jeden Schüler) anzusprechen - aber das kann ich hier nicht eingeben, das will diese Eingabemaske nicht, die macht dann immer Anführungspunkte vor die Sätze und weg sind die Sterne.
Entsprechende Befehele liegen für acht Fächer, die nur in manchen Jahrgängen unrterrichtet werden, hinter acht Kontrollkästchen. Die Befehele unterscheiden sich jeweils nur im letzten Teil der Referenzierung,statt PhiloNote heißt es dann eben CheNote usw. Daher dachte ich, die obigen Befehle in eine eigene Funktion auszulagern und diesen letzten Teil zu übergeben. Zweck ist, neben mehr Übersichtlichkeit, das von Schuljahr zu Schuljahr hin und wieder Veränderungen am Formular nötig sind, die, wenns blöd läuft, auch Änderungen in der Hierarchie bewirken, die dann in den obigen Befehl eingearbeitet werden müssen. Das wollte ich gern vereinfachen, in dem die Masse des Befehls in einer FUnktion liegt. Der notwendige Wechsel zu JavaScript ist kein Problem. Einführung einer solchen Funktion ist nicht zwingend notwenidg, das Formular funktioniert, aber es wäre Die übersichtlicher und eben leichter zu abzuändern...
Viele Grüße,
Klaus.
PS: Die Noten werden einfach in eine Tabelle eingetragen - die Notenübersicht - und von dort aus dem Zeugnis übergeben.
Eigene Funktion definieren, übergebenen Parameter verwenden
-
- Beiträge: 7
- Registriert: 28.01.2012, 09:41
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
Eigene Funktion definieren, übergebenen Parameter verwenden
@armine: Wo hattest du denn einen Patzer? Ist mir gar nicht aufgefallen? Schreibweise so ist ja völlig i.O.
) LG Mandy

-
- Beiträge: 9
- Registriert: 01.11.2010, 14:55
Eigene Funktion definieren, übergebenen Parameter verwenden
Um eine sehr alte Frage von mir, über die ich zufällig gestolpert bin, zu beantworten:
Man kann in Referenzen auch Parameter einbauen:
function test(FachNote){
xfa.resolveNode("Formular1.Übersicht.Tabelle1.Zeile2." + FachNote).rawValue = "---";
xfa.resolveNode("Formular1.Zeugnis.Tabelle2.Zeile2." + FachNote).rawValue = "---";
}
Im angehängten Beispiel wird abhängig von der Bezeichnung des Faches ein Feld aktiviert bzw. deaktiviert. Man kann also in beiden Feldern den gleichen Code verwenden und könnte noch mehr Fächer durch Paste&Copy und schlichtes umbenennen einbauen.
Viele Grüße, tolles Forum,
Klaus.
Man kann in Referenzen auch Parameter einbauen:
function test(FachNote){
xfa.resolveNode("Formular1.Übersicht.Tabelle1.Zeile2." + FachNote).rawValue = "---";
xfa.resolveNode("Formular1.Zeugnis.Tabelle2.Zeile2." + FachNote).rawValue = "---";
}
Im angehängten Beispiel wird abhängig von der Bezeichnung des Faches ein Feld aktiviert bzw. deaktiviert. Man kann also in beiden Feldern den gleichen Code verwenden und könnte noch mehr Fächer durch Paste&Copy und schlichtes umbenennen einbauen.
Viele Grüße, tolles Forum,
Klaus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.