Autor Thema: Überprüfung, ob String leer  (Gelesen 3703 mal)

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Überprüfung, ob String leer
« am: 03.09.02 - 15:25:14 »
Hallo!

Ich weiß, das hier ist bestimmt nur ein kleines Problem, aber ich komme einfach nicht weiter.

Was ist an folgender Function falsch?

Function testen As Integer
     If  Kurzbeschreibung = "" Then
                     testen = 1
     Else
           testen=0
     End If
End Function


Das Feld, was der überprüft, ist ein bearbeitbares Textfeld.
Wenn ich dies ausführe, dann gibt er mir immer eine 1 aus, egal ob das Feld leer ist oder ob was drin steht...

Habe es auch schon per Hotspot versucht, ohne die Function.
Aber da macht er das selbe.

Wo steckt mein Denkfehler??

Hilfe! :'(
« 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.728
  • Geschlecht: Männlich
Re: Überprüfung, ob String leer
« Antwort #1 am: 03.09.02 - 15:52:53 »
muss es nicht heissen

function testen ( Kurzbeschreibung as String ) as integer

Kurzbeschreibung ist doch immer leer, da du doch gar nix übergiebst

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 bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Überprüfung, ob String leer
« Antwort #2 am: 04.09.02 - 08:08:43 »
Kurzbeschreibung ist aber ein Feld in meiner Maske.
Und das möchte ich eben überprüfen, ob der User es gefüllt hat, oder nicht.
Wenn nicht, dann muss es eine Meldung geben...

Kann ich denn ein Feld als Wert übergeben?
Und wenn, wie?
« 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.728
  • Geschlecht: Männlich
Re: Überprüfung, ob String leer
« Antwort #3 am: 04.09.02 - 08:21:09 »
Do musst je erst einmal an den Feldinhalt ran kommen.
So wie du das definiert hast, ist das eine Variable; und die ist in deinem Fall immer leer.

Guck dir mal in der designer Hilfe die NotesDocument und die NotesItem Klasse an.

Dim doc As NotesDocument
'...set value of doc...
Dim item As NotesItem
Set item = doc.GetFirstItem( "Kurzbeschreibung" )
If ( item Is Nothing ) Then
testen = "1"
Else
testen = "0"
End If

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 Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re: Überprüfung, ob String leer
« Antwort #4 am: 04.09.02 - 08:34:25 »
Willst Du prüfen, ob das Item vorhanden ist oder ob das Item einen Wert (der auch Leer sein kann) hat ?

Meff
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Überprüfung, ob String leer
« Antwort #5 am: 04.09.02 - 09:23:11 »
Oh Hilfe!
Hört sich das kompliziert an...

@Meff
ich habe eine Maske und will vorm Spiechern überprüfen, ob das Feld gefüllt ist, oder nicht.
Und wenn nicht, dann soll er sich melden und nicht speichern...

Habe da aber jetzt was anderes gefunden... @return...

Nochmals vielen Dank!
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline manuel

  • Senior Mitglied
  • ****
  • Beiträge: 377
  • Geschlecht: Männlich
  • el pueblo unido
Re: Überprüfung, ob String leer
« Antwort #6 am: 04.09.02 - 09:46:02 »
Hi Marion!

Du bist warscheinlich von der Formel gewohnt, dass du Felder einfach nur mit dem Namen ansprichst, also zB "Kurzbeschreibung". Beim Script funktioniert das aber anders. Hier brauchst du eine Funktion, um den beliebigen Feldwert auzulesen. In deinem Fall:

Function testen As Integer
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument

If  uidoc.FieldGetText("Kurzbeschreibung") = "" Then  
      testen = 1
Else  
 testen=0
End If
End Function


In den ersten drei Zeilen wird also zuerst ein Objekt erzeugt (uidoc), dies repräsentiert dein gerade geöffnetes (Frontend-)dokument. Mit der Funktion FieldGetText wird anschließend der Wert von Kurzbeschreibung abgefragt.

Alles klar?

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

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re: Überprüfung, ob String leer
« Antwort #7 am: 04.09.02 - 09:53:41 »
für Validierungen gibt es 2 Wege:

1. Über die Feld-"Validierung"
Formel ins Feld bei Validierung:
@if(Feld="";@failure("HALT, IST SICH LEER");@success)

Bricht beim Speicherversuch mit dieser Meldung ab aber (und das ist der Nachteil) bei jedem Rekalkulieren des Dokumentes. Wenn Du also die Maske auf "autom. berechnen" hast und 100 Felder mit 100 Validierungsformeln hast, dann...*rofl* Deine User werden gemeinsam in Dein Büro stürmen....*malt sich das Horrorszenario bildlich aus*

2. Weg: ins QuerySave Event der Maske diese "Formel":

 Dim workspace As New NotesUIWorkspace
 Dim uidoc As NotesUIDocument
 Dim Feld As String
 Dim Feld2 as String
 Set uidoc = workspace.CurrentDocument
 
Feld = uidoc.FieldGetText( "Name_Des_Feldes" )
if Feld = "" Then
msgbox "HAALT, FELD IST LEER"
continue = false
exit sub
end if

Feld2 = uidoc.FieldGetText( "Name_Des_Nächsten_Feldes" )
if Feld2 = "" Then
msgbox "HAALT, FELD2 IST LEER"
continue = false
exit sub
end if

etc...

das continue=false unterbindet den Speichervorgang und per msgbox bringt man dem User eine Fehlermeldung. Durch das Exit Sub wird, auch wenn weitere Fehler entdeckt würden, der User häppchenweise mit der Nase auf seine Fehler gestoßen.
Nervt gut und erzieht gut   :D
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Treczoks

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
  • Notes since 2.11
Re: Überprüfung, ob String leer
« Antwort #8 am: 04.09.02 - 09:57:27 »
Wenn es wirklich nur darum geht, ob ein Feld beim Abspeichern leer ist oder nicht, dann ist eine @Formula hier einfacher, besser, schneller:

In der  Eingabevalidierung des Feldes einfach folgende Formel eingeben:

@if( Kurzbeschreibung="";@failure("Sie haben keine Kurzbeschreibung angegeben");@Success)

Das wäre alles, und es setzt auch noch den Cursor in das Feld, um den Fehler direkt zu berichtigen.

Wenn da natürlich irgendwelche verqueren Zusatzbedingungen dranhängen (ich hatte mal einen Fall, da musste mit Script gearbeitet werden, um die Liste in einem Feld Item für Item abzuklappern, es ging einfach nicht mit @Formula), dann wird das ganze bitterböse kompliziert.
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Hunde haben Flöhe.
Aussätzige haben Lepra.
Administratoren haben User.

Offline Wipe

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 873
  • Geschlecht: Männlich
Re: Überprüfung, ob String leer
« Antwort #9 am: 04.09.02 - 09:57:48 »
Hallo bienmaja,

Schreibe Doch einfach bei der Eingabevaledierung des Feldes die Formel hinein:

@If(Feldname != ""; @Success; @Failure("Bitte geben Sie einen Wert ein"))

Gruss
Bubble  ;)
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Überprüfung, ob String leer
« Antwort #10 am: 04.09.02 - 10:19:06 »
@all

Danke für eure Vorschläg!  :D :-*

Mittlerweile habe ich es sogar hinbekommen, wie eben schon geschrieben, mit dem @return...
Das sieht dann bei mir folgendermaßen aus:

@If(Kurzbeschreibung =""; @Return(@Prompt([OK]; "Achtung!"; "Bitte eine Kurzbeschreibung eingeben!"));NULL);

Mittlerweile steht die Formel oben bei mir am Anfang der Aktion Speichern und es klappt!

Aber ich muss schon sagen, das mit dem Script muss ich mir wohl noch mal genauer anschauen... Genauso wie viele andere Sachen, die mit Domino und Notes zusammen hängen... Steh halt noch am Anfang!



@Rob_Green,@Treczoks,@bubble

Das mit der Eingabevalidierung hatte ich schon, nur dass das mehrere Felder sind, die ich zu überprüfen habe. Und wenn ich dann mal nicht in der Reihenfolge der Felder vorgegangen bin, dann hat er sofort gemeckert... war etwas nervig... Daher habe ich einen anderen Weg gesucht...


« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re: Überprüfung, ob String leer
« Antwort #11 am: 04.09.02 - 10:32:20 »
jetzt bin ich mal ein fieser User und drücke nicht auf - muss wohl einer sein - diesen Speicherbutton, sondern ESC und sage in der Nachfragebox, daß ich Speichern will. Was dann?
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Überprüfung, ob String leer
« Antwort #12 am: 04.09.02 - 10:54:40 »
@Rob_Green

Tja, dann wirst du auch freundlich drauf hingewiesen, dass du doch bitte die Felder ausfüllst... :-)

Aber Danke für den Hinweis. Da hätte ich jetzt erstmal nicht dran gedacht, dass auch noch in den Querysave aufzunehmen...

Gibt's sonst noch irgendwelche Tips?
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Überprüfung, ob String leer
« Antwort #13 am: 04.09.02 - 11:41:36 »
Hätte da noch eine Frage:

Habe eine Aktion, und die soll nicht angezeigt werden, wenn es ein neues Dokument ist, oder wenn man nicht die Rolle des DVAdmin hat.
Das mit dem neuen Dokument ist ansich kein Problem, nehme da @isnewdoc. Das klappt auch.

Nur wenn ich die DVAdmin-Rolle überprüfen will  mit   >> !@Unique("[DVAdmin]")<< , dann wird die Aktion nie angezeigt...
Was mache ich hier schon wieder falsch?
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Überprüfung, ob String leer
« Antwort #14 am: 04.09.02 - 11:42:56 »
ach ja, und die Rolle ist mein! :-)
Sprich, ich habe in der ACL diese Rolle zugeordnet...
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline manuel

  • Senior Mitglied
  • ****
  • Beiträge: 377
  • Geschlecht: Männlich
  • el pueblo unido
Re: Überprüfung, ob String leer
« Antwort #15 am: 04.09.02 - 11:51:13 »
Probiere es folgendermaßen. Die Aktion wird versteckt, wenn der User die Rolle DVAdmin NICHT besitzt (deswegen das Ausrufezeichen am Anfang, mit dem der Wert ins Gegenteil umgekehrt wird).

!@IsMember("[DVAdmin]"; @UserRoles)


@UserRoles gibt eine Liste der Rollen eines Users zurück. Mit @IsMember kann man prüfen, ob ein String ein Element der Liste ist.
V 5.0.2c | Windows 2000

Offline manuel

  • Senior Mitglied
  • ****
  • Beiträge: 377
  • Geschlecht: Männlich
  • el pueblo unido
Re: Überprüfung, ob String leer
« Antwort #16 am: 04.09.02 - 11:55:20 »
Wie ich gerade draufgekommen bin, kann man es auch mit der Funktion @IsNotMember machen. Hier braucht man dann natürlich das Ausrufezeichen am Anfang nicht mehr, weil sowieso abgefragt wird, ob der Wert nicht enthalten ist.

@IsNotMember("[DVAdmin]"; @UserRoles)
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
V 5.0.2c | Windows 2000

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Überprüfung, ob String leer
« Antwort #17 am: 04.09.02 - 13:05:26 »
Wunderbar! Das funktioniert jetzt auch!

Heißesten Danke! :-)  :-*
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz