Domino 9 und frühere Versionen > Entwicklung

Bei Formeln gibts den Befehl, bei Script nicht???

(1/4) > >>

Mr.John_Doe:
Hallo,

ich arbeite immer noch an dem Problem (ein paar Threads früher).
Langsam hab ich eine Ahnung, wie ich dass hier lösen kann. Aber ich hab ein Problem:
Ich möchte, dass jemand 2 Daten eingibt von... bis...
Dann wollte ich in einem LotusScript mit @Explode(Date-range) die Daten in eine Liste machen und die dann durch eine Schleife jagen...
Leider geht der Befehl anscheinend nur in dieser Formelsprache, also nicht im LotusScript. Wie kann ich dass dort machen.
Auch bräuchte ich dann den Befehl IsMember für weitere Operationen.
Kann mir bitte jemand sagen, wie ich dass hier hinkriege.

Noch etwas. Ich möchte dann eine Eingabeform haben, wo der User in Textfelder seine Eingaben machen kann.
Ich hab es mit einer "Seite" versucht, aber da kann ich irgendwie kein Eingabefeld erstellen.
Und bei einer Maske wird doch gleich eine "Datenbank" mit erstellt, oder? Kann mir da bitte einer Helfen.

Ich bin wirklich neu in Lotus...

Und noch was, weiß jemand, wo man gute Tutorials in Deutsch herbekommt. Leider sind die Bücher hier, naja, nicht sonderlich gut.

eknori:
@Explode in LS:

Function Explode(inputString As String, delimiter As String) As Variant
   
   Dim workingString As String
   workingString = inputString
   
   Dim array() As String
   Redim array(0)
   
   Dim pos As Integer
   Dim nextPos As Integer
   pos = Instr(workingString, delimiter)
   While pos <> 0
      array(Ubound(array)) = Left(workingString, pos - 1)
      workingString = Right(workingString, Len(workingString) - Len(delimiter) - pos + 1)
      pos = Instr(workingString, delimiter)
      Redim Preserve array(Ubound(array) + 1)
   Wend
   array(Ubound(array)) = workingString
   
   Explode = array
   
End Function

@isMember

entweder du machst ein @implode in LS

Function Implode(inputArray As Variant, delimiter As String) As String
   
   If Datatype(inputArray) = 8 Then
      Implode = inputArray
      Exit Function
   End If
   
   Forall strInput In inputArray
      Implode = Implode + strInput + delimiter
   End Forall
   
   Implode = Left(Implode, Len(Implode) - Len(delimiter))
   
End Function

und suchst dann den String mit

positionOfChar& = InStr(1, big$, little$)

wenn positionOfChar& > 0 dann ist @Member = true


Alternatic kannst du auch das Array mit

Function inArray (Element As String, Elements As Variant, CaseSensitive As Integer) As Integer
   Dim tmpString As Integer
   inArray = False
   For tmpString = 0 To Ubound (Elements)
      If CaseSensitive Then
         If Ucase(Element) = Ucase(Elements (tmpString)) Then inArray = True
      Else
         If Element = Elements (tmpString) Then inArray = True
      End If
   Next
End Function

durchsuchen.

Wenn der Suchstring ( Member ) enthalten ist, dann liefer die Funktion TRUE zurück.

eknori

Mr.John_Doe:
Danke,
ich probier das mal...
Leider verstehe ich nur die Hälfte  ???

Hoffentlich klappt das...

ata:
... man kann den @Explode in LS auch mit Evaluate verwenden...

vVariant = Evaluate( |@Explode( "|+sString+|" ; "|+sTrennzeichen+|" )|)

... für einfachere Auftrennungen durchaus verwendbar...

ata

Mr.John_Doe:
Ich glaub, langsam steig ich hinter den Code -irgendwie...

Leider brauch ich die Explode-Funktion, um ein Array aud dem Anfangs und dem Enddatum zu erstellen.
D.h. jemand gibt z.b. den 01.01.2003 und den 31.01.2003 ein, dann brauch ich ein Array: 01.01.2003|02.01.2003|03.01.2003-| usw...

Ich hab noch ne Frage:
Bis jetzt hab über search alle Dokumente in ein Array geschoben, wo die angegebene ID übereinstimmt. Das dauert aber ziemlich lange. Gibt es da vielleicht noch eine bessere Variante?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln