Danke für deine Mühe.
Leider ist es das nicht. Ich habe ja zum Zeitpunkt der Eingabe der Daten keine Maske, sondern ein HTML Formular. Ich mache es mal ein bisschen konkreter:
Mein Pseudotag:
text:={<strong>}+"Fehlerhafte Eingabe in Feld:" + {</strong><ul >};
eintraege:="ffmbadditionsrollen"... und 99 weitere Einträge
@for(n:=1; n <= @elements(eintraege); n:=n+1;
Fehler:=1;
@for(m:=1;m <= @length(@getfield(eintraege[n]));m:=m+1;
zeichen:=@text(@rightback(@leftback(@getfield(eintraege[n]);@length(@getfield(eintraege[n]))-m);m-1));
@for(k:=49;k <= 57;k:=k+1;
Fehler := @if(zeichen=@char(k);1;0);
k:=@if(zeichen=@char(k);58;k);
m :=@if(k=57&@char(k)!=zeichen;@length(@getfield(eintraege[n]))+1;m)
);
zeichen := ""
);
teilstring:="";
teilstring:= @if(Fehler=0;@text(@rightback(eintraege[n];4));"");
anfangsbuchstabe:=@Uppercase(@left(teilstring;1));
teilstring:=@if(teilstring="";"";{<li class="Fehler">} + anfangsbuchstabe + @rightback(teilstring;1) +{</li>});
teilstring:= @replacesubstring(teilstring;"_":"umschlaege":"pzu";" ":"Umschläge":"PZU");
teilstring := @replacesubstring(teilstring;"1 12":"a z":"1 31":"21 5":"8 5":"1 5v":"4 2":"9v";"1-12":"A-Z":"1-31":"21,5":"8,5":"1,5 V":"4,2":" 9 V");
text := text + teilstring
);
@if(@length(text)>38;@setfield("Temp";"Fehler");""); <-- das funktioniert nicht
@if(@length(text)>38;text+{</ul>};"");
Jetzt muss ich die Masse an Pseudotag noch in die serverseitige Pflichtfeldprüfung überführen. Hat jmd nen Tipp wie ich das mache? Ich bin mir nicht sicher was ich alles verwenden darf (@for?; variablen definieren?). Bin wie mein Nick schon sagt, ein Neuling :).
Also ich würde gerne den Weg über den Agenten gehen :) ...
Dim ses As New Notessession
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim item As NotesItem
Set db = ses.CurrentDatabase
Set doc = ses.DocumentContext
Damit bekomme ich das Dokument?! Wenn ich es richtig verstanden habe. Kann ich jetzt einfach
Set item =doc.ReplaceItemValue( "Fehler", "0")
angeben? Und dann in der Pflichtfeldprüfung fragen, ob das Feld Fehler = 0 ist. Oder wird die Pflichtfeldprüfung vorher ausgeführt? Muss ich das Dokument noch speichern mit Call doc.save ? Welche Attribute müsste ich da setzen? Oder kann ich das Weiterleiten des Dokumentes anders verhindern, so dass das HTML Formular nochmal geladen wird und der Benutzer seine Eingaben korrigieren kann ?
Ich bin wie gesagt ein Neuling und mein Lehrgang ist erst im Oktober ... von daher ;)
im Prinzip will ich, dass das HTML-Formualar im Browser neugeladen wird mit der FORMID, die das Formular hat. Damit der Benutzer seine Eingaben korrigieren kann.
Ich habe jetzt einfach mal
Set item =doc.ReplaceItemValue( "Telefon", "0")
Call doc.save (True, True)
ausprobiert und dann in die Formular-TransferDatenbank geguckt. Das Feld bleibt aber leer :(...
Was mache ich falsch ?
--- Nachtrag
Okay: Call doc.save brauche ich nicht, steht so in der Hilfe. Aber rufe ich den Agenten richtig auf:
Ich habe ihn im Eingabe Formular unter WebQuery-Ereignis (als Formel) mit
@Command([ToolsRunMacro]; "WebPruefung");
aufgerufen. Es passiert nichts. :(