Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: mariab am 06.03.08 - 15:34:46

Titel: Prüfen ob Feld leer ist in LS
Beitrag von: mariab am 06.03.08 - 15:34:46
Habe ein Feld vom Typ Leser. Nun möchte ich prüfen ob das Feld leer ist.
In der Formelsprache kann ich dies folgendermaßen machen:

@If(Leser != "";Anweisung1;sonst Anweisung2)

wenn ich nun in LS dies so probiere erhalte ich immer die Meldung dass das Leserfeld Werte enthält auch wenn es leer ist

Code
Sub Click(Source As Button)
	Dim session As New NotesSession
	Dim workspace As New NotesUIWorkspace
	Dim db As NotesDatabase
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Set uidoc = workspace.CurrentDocument
	Set doc = uidoc.Document
	Set db = session.CurrentDatabase
	
	If  Isempty(doc.D_Leser) Then
		Msgbox("Leserfeld ist leer")		
		
	Else
		Msgbox("Leserfeld enthält Werte")
		
	End If
	
End Sub
Titel: Re: Prüfen ob Feld leer ist in LS
Beitrag von: botschi am 06.03.08 - 15:36:31
So gehts:

If  doc.D_Leser(0) = "" Then
      Msgbox("Leserfeld ist leer")      
      
   Else
      Msgbox("Leserfeld enthält Werte")
      
   End If

Matthias
Titel: Re: Prüfen ob Feld leer ist in LS
Beitrag von: DerAndre am 06.03.08 - 15:39:04
Ok,den Code spar ich mir jetzt...  :)

Das sagt die Hilfe:

Return value
The IsEmpty function returns TRUE (-1) if expr has the value EMPTY. This occurs only if expr is a Variant and has not been assigned a value.
Titel: Re: Prüfen ob Feld leer ist in LS
Beitrag von: mariab am 06.03.08 - 15:40:11
Danke jetzt klappts.
Bedeutet dies, dass das Leserfeld ein Array ist?
Titel: Re: Prüfen ob Feld leer ist in LS
Beitrag von: koehlerbv am 06.03.08 - 15:51:48
Bitte streiche das Wort "Feld" in diesem Zusammenhang aus Deinem "Wissen": Ein Feld ist ein Designelement innerhalb einer Maske und rein Frontend-orientiert.

Du prüfst ein *Item*. Und ein Item ist in Notes mit der Ausnahme von richt text *immer* ein Array.

Weiters: Es ist sehr gewagt und eigentlich sogar sträflich, ein Item gegen einen Leer-*String* abzufragen. Einen String erhält man nur zurück, wenn
- das Item ein Array vom Typ Text enthält (und durch das Frontend-Design-Element "Feld" ist dies *nicht* gewährleistet!!)
- Das Item nicht existiert.
Wenn schon, dann also "If Cstr (doc.Leser (0)) = "" Then ...).

Um die "Klugscheisserei" (die hier aber immanent wichtig ist für stabilen Code) fortzusetzen: Es gibt im Backend kein "Feld" vom Typ "Leser". Hierbei handelt es sich um ein stinknormales Text-Item, welches die Property "READ-ACCESS" besitzt.

HTH (someone),
Bernhard
Titel: Re: Prüfen ob Feld leer ist in LS
Beitrag von: mariab am 06.03.08 - 16:04:06
Ok, wieder was dazugelernt. Nun aber noch eine weitere Frage:
Wie kann ich überprüfen ob das item  ungleich leer ist? In der Formelsprache mach ich das ja mit != und in meinem Fall?

If Cstr (doc.Leser (0)) != "" Then ...

geht ja nicht
Titel: Re: Prüfen ob Feld leer ist in LS
Beitrag von: botschi am 06.03.08 - 16:08:38
So:
If Cstr (doc.Leser (0)) <> "" Then ...

 ;D

Matthias
Titel: Re: Prüfen ob Feld leer ist in LS
Beitrag von: koehlerbv am 06.03.08 - 16:11:07
Wie wäre es mit der DesignerHelp - dort findest Du solche Basics (a propos BASIC: LotusScript ist ein BASIC-Dialekt, und "ungleich" wird dort mit "<>" notiert").

Bernhard
Titel: Re: Prüfen ob Feld leer ist in LS
Beitrag von: guesswho am 06.03.08 - 18:04:03
wie Concatenation in BASIC-Dialekten mit & erfolgt. In einigen Herdt-Unterlagen wird das durchgängig(!) mit + gemacht. Geht ja in NotesScript auch.... Bis zu dem Moment wo String auf Integer trifft oder unerwartete Variablen sich begegnen...

Mannomann! So ein Schwachs....  :o

Nur so am Rande  ;D

Jo