Domino 9 und frühere Versionen > Entwicklung
Bei Formeln gibts den Befehl, bei Script nicht???
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