Autor Thema: Formularprobleme  (Gelesen 14732 mal)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Formularprobleme
« Antwort #20 am: 10.04.02 - 14:48:01 »
Soo, dann gebe ich jetzt auch noch meinen Senf dazu.
Ich gehe mal davon aus, daß du den Button zum Senden_und_Schliessen_und_pop_ein_Fenster_auf in deiner MASKE hast. ?!?
Diese Button ist aber nur solange existent, wie das Dokument in UIWorkspace sichtbar ist. Danach werden alle Handles auf diesen Button "zerstört".
Notes arbeitet alle Befehle in dem Button ab BEVOR das Dokument geschlossen wird. Daher wird auch deine Seite oder auch @Prompt vor dem Schließen des Dokuments angezeigt.
Also mit einem Button in der Maske wird das nie funktionieren.
Auch mit Script und den Form Events kommst du nicht weiter, da es NACH Schließen des Dokuments keine Möglichkeit mehr gibt, Code auszuführen. Das erklärt auch, warum es keinen POSTCLOSE Event in einer Maske gibt.

Daher ist euer Vorhaben auf diesem Wege nicht von Erfolg gekrönt, sorry  ;D

Leider kann ich euch aber auch keine brauchbare Lösung anbieten.

Ulrich
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Silver

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • "free your mind"
Re: Formularprobleme
« Antwort #21 am: 10.04.02 - 15:13:39 »
Vielen Dank an alle Helfer!
Hab´s jetzt mit nem Dialogfenster gelöst.
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Silver

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • "free your mind"
Re: Formularprobleme
« Antwort #22 am: 17.04.02 - 13:26:59 »
:o :o :o :o
Sorry, habe doch noch ein Problem. Chef verland die Umsetzung der Felder mit Datum auch bei Eingabe ohne Punkt in tt.mm.jjjj!
Wie kann ich das realisieren? Hab das Feld als Datum/Uhrzeit als bearbeitbar deklariert. Nun brauche ich höchstwahrscheinlich noch die Eingabeumsetzungsformel. Also bei Eingabe von z. b. 01.01.02 soll umgesetzt werden in 01.01.2002 - bei Eingabe von 01.01.2002 - bleibt dies so und bei Eingabe von 010102 oder 01012002 soll in 01.01.2002 umgewandelt werden. Wie stelle ich das an?
Wäre toll, wenn Ihr mir nochmals weiterhelfen könntet!
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline manuel

  • Senior Mitglied
  • ****
  • Beiträge: 377
  • Geschlecht: Männlich
  • el pueblo unido
Re: Formularprobleme
« Antwort #23 am: 17.04.02 - 14:15:08 »
Für die Umsetzung von zB 01.01.02 in 01.01.2002 musst du dein Datumsfeld richtig konfigurieren, dann geht's automatisch beim Refreshen.

Eigenschaften: Feld -> Register Steuerung -> Anzeigeoptionen Datum/Spezial: "Jahr immer 4stellig anzeigen"

Das zweitere ist eher schwieriger, vielleicht hat jemand anderes eine Idee ...

Manuel
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
V 5.0.2c | Windows 2000

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Formularprobleme
« Antwort #24 am: 17.04.02 - 14:44:48 »
Hallo, ich schon wieder

habe da etwas, was ich in meinen Datenbanken verwende um die Eingabevalidierung flexibel zu gestalten. Hier kannst du über ein Konfigurationsdokument für jedes Feld eine Validierungsregel hinterlegen

Du hast folgende Möglichkeiten

NOBLANK - test to see if the field has a value
  ISNUMBER - test to see if the field has a numeric value(s)
  ISDATE - test to see if the field has date or time values
  ISLIKE - Tests field against pattern string (see the Like operator in the LotusScript documentation)
  LENGTHBETWEEN - Test the length of the field's value to be between a specified range.
  NOBLANKNUM - tests to see if the value in the field is not blank and that it is a number (combines NOBLANK and ISNUMBER)
  NUMRANGE - test to see if the value in the field is between a specified range

Du kannst also prüfen, ob ein Feld numerish ist (ISNUMBER) und of der Inhalt eine bestimmte Lönge hat / nicht überschreitet (LENGTHBETWEEN)

Ich stell eine Demo mal auf meinen Server; allerdings weiß ich nicht, ob ich das heute noch schaffe  ;D
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Formularprobleme
« Antwort #25 am: 17.04.02 - 15:29:46 »
Hallo Silver,

hab dir hier mal eine ganz simple Lösung erstellt


Sub Exiting(Source As Field)
     On Error Goto notNumeric      
     Dim workspace As New NotesUIWorkspace
     Dim uidoc As NotesUIDocument
     Dim account As String
     Set uidoc = workspace.CurrentDocument
     account = uidoc.FieldGetText( "Account" )
     If Len(account) = 0 Then
     Else
           tmp% = Cint(account)
     End If
     
     ' Feldlänge abfragen
     If Len(account) > 3 Then
           Msgbox "falsche feldlänge"
     End If
                    ' ende feldlänge prüfen
     Exit Sub
notNumeric:
     Msgbox "nicht numerisch"
     Resume Next
End Sub

Im Code überprüfe ich beide Sachen NUMERISCH und die FELDLÄNGE. Musst nur eins von beiden weglassen.

zur Erläuterung:

Prüfung auf nicht numerisch; beim verlassen lese ich den Wert des Feldes "Account" ein und speichere den Wert in einer Textvariable. Dann wandle ich den String mittels CInt in einen numerischen Wert um. Enthält der Wert einen Buchstaben, erzeugt der Code einen fehler und verzweigt in die Fehlerbehandlung.

Feldlänge; hier prüfe ich mit len() die Länge. liegt diese über einen bestimmten Wert, gebe ich eine Fehlermeldung aus.

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Silver

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • "free your mind"
Re: Formularprobleme
« Antwort #26 am: 17.04.02 - 16:49:47 »
Habe ich wirklich nur die Möglichkeit, den Feldwert auf Länge und numerische Zahl zu prüfen. Kann ich nicht angeben, dass nach den ersten zwei ziffern - die eingegeben wurden, ein Punkt gesetzt wird. Ebenso nach dem Monat (zwei Stellig)???
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Formularprobleme
« Antwort #27 am: 17.04.02 - 17:02:45 »
Hallo Silver,

doch du kannst natürlich auch solche Sachen prüfen.
Mit dem Validierungstool geht das sogar vorzüglich ( und einfach, wenn man die Designelemente einmal eingebunden hat ) Auch im Exiting Event kannst du das realisieren. Du kanns sogar dem User die Eingabe in einer beliebeim Format gestatten und dann in der "Eingabeübersetzung" dei gewünschtes Format generieren.

Also zunächst prüfst du vielleicht, ob der User 6 Zeichen eingegeben hat, die auch alle numerisch sind und dann formatierst du die Eingabe so, wie du willst ( z.B. 12.34.56)

Alles kein Problem.

Aber dann solltest du mal genau posten, WAS du in WELCHER Form in deinem Feld stehen haben willst.
Ohne diese Angaben philosophieren wir hier noch bis zum St. Nimmerleins Tag.

eknori
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Silver

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • "free your mind"
Re: Formularprobleme
« Antwort #28 am: 17.04.02 - 17:31:37 »
Da ich (noch) nicht so viel Plan von der ganzen Materie habe wäre ich Dir dankbar, wenn Du mir den jeweiligen Code aufzeigen könntest.

Wenn beispielsweise jemand 311202 eingibt, soll ausegeben werden: 31.12.2002
Wenn beispielsweise jemand 100599 eingibt, soll aber 10.05.1999 erscheinen. Muss ich hier ne Grenze setzten, wo 19.. und 20.. auftauchen muss? Wenn ja dann ab ..50 auf 20..!

Wir eingegeben 15042002 sollen eben nur noch die Punkte dazwischen gestellt weren (15.04.2002).

Mehr nicht! Ich bringe es aber einfach nicht hin.
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Formularprobleme
« Antwort #29 am: 17.04.02 - 18:02:44 »
Nun denn, damit kann man doch was anfangen:

Kopiere diese Formel in die Eingabeumsetzung des Feldes, das du prüfen willst

fldValue:=@Trim(@ReplaceSubstring(Test;".";""));
tmp99:=@if(@Right(fldValue;2)="99";"1999";@Right(fldValue;4));
First2:=@Left(fldValue;2);
Next2:=@Middle(fldValue;2;2);
Period:=".";
First2+Period+Next2+Period+tmp99

damit sollte dein Problem zu lösen sein.
erstetze "Test" in der ersten Zeile durch den Namen deines Feldes.

Du kannst dann eingeben 010199 und es erscheint 01.01.1999
oder

01.01.2002 und es bleibt bei der Eingabe

auch 01.0199 ist möglich

eknori

« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Silver

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • "free your mind"
Re: Formularprobleme
« Antwort #30 am: 18.04.02 - 09:00:09 »
;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D
VIELEN DANK! Hat mir sehr weitergeholfen.
;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Silver

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • "free your mind"
Re: Formularprobleme
« Antwort #31 am: 18.04.02 - 16:31:23 »
:-/ So... hoffe das ist jetzt wirklich das letzte Mal, dass ich Euch nerven muss.
Habe jetzt den Befehl von eknori mit mehreren Wenn - Dann - Sonst - Anweisungen im Einsatz zur Datumsformatierung. Funktioniert auch wunderbar. Brauche jetzt nur noch ne Formel, die mir - falls nichts eingegeben wird - auch ein leeres Feld hinterlässt. D. h. die zwei Punkte aus der Formel sollen nur erscheinen, wenn auch wirklich eine Eingabe vorgenommen wurde. Wie bringe ich das hin.... bitte nochmals um eine allerletzte Hilfe - SORRY
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline manuel

  • Senior Mitglied
  • ****
  • Beiträge: 377
  • Geschlecht: Männlich
  • el pueblo unido
Re: Formularprobleme
« Antwort #32 am: 18.04.02 - 16:35:07 »
Du könntest vor den anderen Anweisungen abbrechen, wenn nichts im Feld steht. Das geht mit Return.

@If (FELDNAME = ""; @Return(""); @Success);
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
V 5.0.2c | Windows 2000

Offline Silver

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • "free your mind"
Re: Formularprobleme
« Antwort #33 am: 19.04.02 - 08:10:46 »
hi manuel!

Bekomme aber immer noch die zwei Punkte. Hier die Formel, die ich in der Eingabeumsetzung stehen habe:fldValue:=@Trim(@ReplaceSubstring(Duplikat1von;".";""));

tmp:=@If(@Right(fldValue;2)="14";"2014";
           @If(@Right(fldValue;2)="13";"2013";
           @If(@Right(fldValue;2)="12";"2012";
           @If(@Right(fldValue;2)="11";"2011";
           @If(@Right(fldValue;2)="10";"2010";
           @If(@Right(fldValue;2)="09";"2009";
           @If(@Right(fldValue;2)="08";"2008";
           @If(@Right(fldValue;2)="07";"2007";
           @If(@Right(fldValue;2)="06";"2006";
           @If(@Right(fldValue;2)="05";"2005";
           @If(@Right(fldValue;2)="04";"2004";
           @If(@Right(fldValue;2)="03";"2003";
           @If(@Right(fldValue;2)="02";"2002";
           @If(@Right(fldValue;2)="01";"2001";
           @If(@Right(fldValue;2)="00";"2000";
           @If(@Right(fldValue;2)="99";"1999";
           @If(@Right(fldValue;2)="98";"1998";
           @If(@Right(fldValue;2)="97";"1997";
           @If(@Right(fldValue;2)="96";"1996";
           @If(@Right(fldValue;2)="95";"1995";
           @If(@Right(fldValue;2)="94";"1994";
           @If(@Right(fldValue;2)="93";"1993";
           @If(@Right(fldValue;2)="92";"1992";
           @If(@Right(fldValue;2)="91";"1991";
           @If(@Right(fldValue;2)="90";"1990";
           @If(@Right(fldValue;2)="89";"1989";
           @If(@Right(fldValue;2)="88";"1988";
           @If(@Right(fldValue;2)="87";"1987";
           @If(@Right(fldValue;2)="86";"1986";
           @If(@Right(fldValue;2)="85";"1985";
           @If(@Right(fldValue;2)="84";"1984";
           @If(@Right(fldValue;2)="83";"1983";
           @If(@Right(fldValue;2)="82";"1982";
           @If(@Right(fldValue;2)="81";"1981";
           @If(@Right(fldValue;2)="80";"1980";
           @If(@Right(fldValue;2)="79";"1979";
           @If(@Right(fldValue;2)="78";"1978";
           @If(@Right(fldValue;2)="77";"1977";
           @If(@Right(fldValue;2)="76";"1976";
           @If(@Right(fldValue;2)="75";"1975";
           @If(@Right(fldValue;2)="74";"1974";
           @If(@Right(fldValue;2)="73";"1973";
           @If(@Right(fldValue;2)="72";"1972";
           @If(@Right(fldValue;2)="71";"1971";
           @If(@Right(fldValue;2)="70";"1970";
           @If(@Right(fldValue;2)="69";"1969";
           @Right(fldValue;4)))))))))))))))))))))))))))))))))))))))))))))));
First2:=@Left(fldValue;2);
Next2:=@Middle(fldValue;2;2);
Period:=".";
First2+Period+Next2+Period+tmp

Muss ich Deinen Vorschlag in Exciting setzten???
MfG
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline manuel

  • Senior Mitglied
  • ****
  • Beiträge: 377
  • Geschlecht: Männlich
  • el pueblo unido
Re: Formularprobleme
« Antwort #34 am: 19.04.02 - 08:16:34 »
Du setzt es einfach in die erste Zeile der Eingabeumsetzung, vor deinem Code:

@If (FELDNAME = ""; @Return(""); @Success);
fldValue:=@Trim(@ReplaceSubstring(Duplikat1von;".";""));
...


d.h. wenn das Feld leer ist, wird der restliche Code nicht mehr durchgeführt.
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
V 5.0.2c | Windows 2000

Offline Silver

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • "free your mind"
Re: Formularprobleme
« Antwort #35 am: 19.04.02 - 08:33:13 »
Na, auch schon wieder am werkeln Manuel?
Hat funktionert! Habe mich wirklich wieder blöd angestellt. Naja... war auch wieder ne lange Nacht.  ;)

Kennst Du ne Möglichkeit, meine ausgefüllten Formulare, die wie Du bereits weisst, mit einem "Absenden" Button an die zuständige Stelle geleitet werden in den jeweiligen Ordner "Gesendete Objekte" des Mitarbeiters zu verschieben? Im Moment wird nach Absenden das Formular zwar verschickt, die Kollegen haben aber keinerlei "Beweise", dass Sie dieses ausgefüllt und abgesendet haben.

Den Versand nehme ich über eine einfache Funktion "Mail senden" mit vorgegebenen Verw.-Zweck und "Kopie dieser Mail mitversenden" vor!
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Formularprobleme
« Antwort #36 am: 19.04.02 - 08:35:58 »
und damit du dich in deinem eigen Code nicht verirrst  ;D, hier noch eine kleine Verbesserung

fldValue:=test;
Year:=@Right(fldValue;2);
tmp:=@If(@TextToNumber(Year) >15;"19" + Year ;"20" + Year) ;
tmp

Alle Jahre ab 15 bekommen eine 19 vorangestellt; alle Jahre ab 00 eine 20.

Damit hast du erts einmal bis 2015 Ruhe, danach können wir uns ja was anderes überlegen  ;D ;D
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline manuel

  • Senior Mitglied
  • ****
  • Beiträge: 377
  • Geschlecht: Männlich
  • el pueblo unido
Re: Formularprobleme
« Antwort #37 am: 19.04.02 - 09:00:49 »
Das Verschieben in einen Ordner würde so funktionieren:

@AddToFolder(Zielordner ; Quellordner)

Zitat
Entfernt das aktuelle Dokument aus einem Ordner und fügt es einem anderen hinzu. Für jeden der Parameter kann auch eine leere Zeichenfolge angegeben werden, um die Aktion zu überspringen.



Ich habe mich mit Ordnern noch nicht so auseinandergesetzt. Vielleicht kennt sich jemand anderes besser aus.


lg, Manuel
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
V 5.0.2c | Windows 2000

Offline Silver

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • "free your mind"
Re: Formularprobleme
« Antwort #38 am: 19.04.02 - 09:06:49 »
Sorry Manuel!
Mir ist jetzt erst aufgefallen, dass ich nach Einfügen Deiner Formel in meinen scheiss :o :o Datumsfeldern auch bei Eingabe eines Datums ein leeres Feld angezeigt bekomme. Woran kann das liegen? Also auch bei Eingabe wird der Inhalt wieder gelöscht!

Offline manuel

  • Senior Mitglied
  • ****
  • Beiträge: 377
  • Geschlecht: Männlich
  • el pueblo unido
Re: Formularprobleme
« Antwort #39 am: 19.04.02 - 09:12:36 »
Hast du eh in dieser Formel ...

@If (FELDNAME = ""; @Return(""); @Success);  

... FELDNAME mit deinem richtigen Feldnamen ausgetauscht (ich glaube fldValue) ?
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
V 5.0.2c | Windows 2000

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz