Das Notes Forum

Best Practices => Diskussionen zu Best Practices => Thema gestartet von: TMC am 28.10.04 - 23:54:56



Titel: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhanden?
Beitrag von: TMC am 28.10.04 - 23:54:56
Ziel ist eine Gegenüberstellung, welche LotusScript - Functions als Ersatz für Formelsprache im Client vorhanden sind.
Es sollen hier keine eigens geschriebene LS-Funktionen vorgestellt werden, dafür gibt es andere Projekte hier im Forum.

Bitte teilt fehlende Einträge mit: einfach hier posten, dann trage ich es nach. Gerne auch neu in R7 hinzugekommene LS-Functions, die fehlen hier noch völlig.



FormelspracheLotus Script
@ContainsFür Strings: InStr
Für Arrays: ArrayGetIndex(nur eingeschränkt, es wird nur mit kompletten Array-Elementen verglichen)
   
@ExplodeAb R6: Split
 
@ImplodeAb R6: Implode (oder alias zu Implode: Join)
 
@IsMemberFür Items: NotesItem.Contains
Für Textlisten:
Forall inhalt In doc.DeinFeld
  If inhalt = "Der Text den Du suchst" Then
    Msgbox "Treffer !"
   End If         
End Forall
 
@Left( stringToSearch ; numberOfChars )Left[$] ( expr , n )
 
@Left( stringToSearch ; subString )StrLeft( STRING S1, STRING S2 [, SHORT flag [, LONG occurrences ]] ) 
 
@LeftBack( stringToSearch ; startString )StrLeftBack( STRING S1, STRING S2 [,][ SHORT flag] [,] [ LONG occurrences ] )
 
@Middle( string ; startString ; numberchars )Mid[$] ( expr , start [ , length ] )
 
@ProperCaseStrConv
 
@LowerCaseLCase ( expr )
 
@UpperCaseUCase ( expr )
 
@ReplaceSubstringAb R6: Replace
 
@Right( stringToSearch ; numberOfChars )Right[$] ( expr , n )
 
@Right( stringToSearch ; subString )StrRight( STRING S1, STRING S2 [,][ SHORT flags] [,] [ LONG occurrences ] ) As STRING
 
@RightBack( stringToSearch ; subString )StrRightBack( STRING S1, STRING S2 [,][ SHORT flag] [,] [ LONG occurrences ] ) As STRING
 
@UniqueAb R6: ArrayUnique
 
@WordAb R6: StrToken
 
@TrimTrim (expr)
 
Zusätzlich gibt es in Sript noch folgende TRIM-Funktionen:
 
LTrim ( expr ): Entfernt führende Leerzeichen
 
RTrim ( expr ): Entfernt abschließende Leerzeichen
 
FullTrim ( expr ): Entfernt sowohl führende und abschließende Leerzeichen, als auch doppelte Leerzeichen innerhalb des Strings


Titel: Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
Beitrag von: Glombi am 28.10.04 - 23:58:03
Die Idee ist gut. In der Designer Hilfe gibt es übrigens immer einen Hinweis, wenn ein Befehl auch in Script bzw. Formelsprache existiert - und zwar unter "Language cross-reference".

Andreas


Titel: Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
Beitrag von: TMC am 29.10.04 - 00:06:55
In der Designer Hilfe gibt es übrigens immer einen Hinweis, wenn ein Befehl auch in Script bzw. Formelsprache existiert - und zwar unter "Language cross-reference".

Das ist wahr, Andreas  ;) Allerdings leider noch nicht in R5. Daher habe ich mir auch angewohnt bei R5-Entwicklungen auch mal einen Blick in die ND6-Help zu werfen - weil es eben dort die erwähnten Verweise gibt.

Wen Euch noch LS-Functions einfallen, die man hier in die Liste aufnehmen könnte, bitte immer her damit  :D Lange Workaround-Functions sollten wir hier imho allerdings nicht aufnehmen, sondern wirklich einfache Möglichkeiten, @Functions-Pendants in LS einfach zu verwenden (um eben z.B. Evaluate-Aufrufe vermeiden zu können).


Titel: Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
Beitrag von: Marinero Atlántico am 29.10.04 - 17:59:00
http://www.openntf.org/projects/codebin/codebin.nsf/CodeByDate!OpenView&Start=1&Count=999
Wenn was gerade nicht sowieso da ist, finde ich da oft was ich brauche.
 


Titel: Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
Beitrag von: TMC am 29.10.04 - 18:05:01
Danke Axel.

Allerdings soll das hier *keine* Sammlung von eigens programmierten Functions werden, sondern mehr eine Auflistung, welche LS-Functions als Alternative zu @Formeln in Lotus Notes schon dabei sind (bzw. mit einem 3Zeiler hinzubekommen sind, siehe z.B. @IsMember).


Titel: Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
Beitrag von: Marinero Atlántico am 29.10.04 - 18:52:21
Ja. gut.
Aber wenn ich sagen wir morgens wohingehe und bis abends oder spätestens Freitags funktionierenden Code haben würde, wäre ich ohne Skript-Funktionsbibliotheken schon längst verrückt geworden.
Der größte Fehler, den ich gemacht habe, dass ich mir nicht von Anfang an alle Funktionsbibliotheken, denen ich bei Kundenorganisationen, Arbeitgebern, etc. begegegnet bin in eine übersichtliche Datenbank gepackt habe.
Wenn der Onkel von IBM Global Services anrückt, hat der immer Tonnen an Knowledgedatenbanken mit fertigen Code dabei.
Skripten ist bei denen immer schnell fertig (zumindest denen ich begegnet bin).
Dann schreiben die noch viel Kommentare (find ich ja gut).

Ich hab jetzt
- ein (zumindest theoretisch gelöstes aber sehr drängendes) Problem mit Domino Workflow 2.1.1
- ein existierendes Problem mit LEI
- die Zweitdurchführung eines Fusionsprozesses von größeren und nicht ganz unkomplexen Datenbeständen auf Notes_on_OS/2 (der die Erstausführung gemacht hat ist weg und war nie Kollege)
- ein Bericht über Java Spring auf unseren firmeninternen confluence-wiki
- einen Kundensonderwunsch, den ich zu 70% abgelehnt und mir Montag nochmal angucken werde.
- eine deutsch-indische yahoo Lerngruppe zu Websphere Admin Zertifizierung ans laufen zu bringen

Wenn ich dann noch über die Frage "wie mache ich einen replaceSubstring mit LotusScript" nachdenken müsste, würde ich aus dem Fenster springen.

Gut sortierte Skriptlibraries sind eine gute und wichtige Sache.

Gruß Axel

Männliche Programmierhure


Titel: Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
Beitrag von: TMC am 29.10.04 - 18:57:24
Gut sortierte Skriptlibraries sind eine gute und wichtige Sache.

Da bin ich vollkommen Deiner Meinung.

Allerdings gibt es da bereits 2 AtNotes Projekte (Status schwebt wohl zwischen "on hold" und "cancelled"):

Standard bei der Scriptprogrammierung (http://www.atnotes.de/index.php?topic=3173.0)

@Formula-Befehle in Lotus Script abbilden (http://www.atnotes.de/index.php?topic=12267.0)


Daher wollte ich hier den Schwerpunkt setzen "Was ist denn eigentlich schon vorhanden im Client selbst?". Denn ein solcher Überblick wäre imho sehr hilfreich.

Matthias


Titel: Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
Beitrag von: Marinero Atlántico am 29.10.04 - 19:02:19
ok. Hast ja Recht. Die Liste ist wirklich ganz gut.


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhand
Beitrag von: TMC am 29.10.04 - 19:10:56
@Axel:
Danke.
Ist aber prima, dass Du das hier eingebracht hast. Denn ich habe das wohl etwas schwammig formuliert oben, was mein Ziel ist hier.
Aber jetzt sollte das etwas klarer geworden sein  ;)

@All:
Wir sollten hier auch noch irgendwo darauf hinweisen, dass es Probleme geben kann bei eigenen Functions mit der Namensgebung.
Beispiel: Eine eigene Implode-Function (also Function-Name: "Implode"). Läuft wunderbar in R5.
Wehe aber, man öffnet die ScriptLib in ND6 und möchte speichern (also komplillieren), dann kommen Fehlermeldungen, weil es den Namen intern schon gibt.

Matthias

P.S. habe noch den Titel des Threads angepasst damit es klarer abgegrenzt ist


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhand
Beitrag von: TMC am 16.03.05 - 20:03:48
@Contains in LotusScript (wenn auch kein 100%-Ersatz):
http://www.atnotes.de/index.php?topic=21859.0

@Word --> Ab R6: StrToken

@ProperCase --> StrConv



Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhand
Beitrag von: koehlerbv am 16.03.05 - 20:21:37
@Contains in LotusScript (wenn auch kein 100%-Ersatz):
http://www.atnotes.de/index.php?topic=21859.0

Du hast schon darauf hingewiesen, ich will es noch schärfer fassen: Aus meiner Sicht sind das zwei paar Schuhe.

Instr ("Test Test", "es") = 2

Gegeben sei ein Array aTest (0 to 2) As String:
aTest (0) = "Test Test"
aTest (1) = "Das ist ein Test"
aTest (2) = "Weshalb teste ich ?"

ArrayGetIndex (aTest, "es") ergibt NULL. Also ein völlig anderes Verhalten als @Contains.

Bernhard


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhand
Beitrag von: TMC am 16.03.05 - 21:27:06
So, nun hab ich mir mal die Arbeit gemacht, das bisherige oben in eine Text-Tabelle zu schreiben. Was für ein Spagetti-Code, leider wird CSS hier als Formatierungsmöglichkeit nicht unterstützt im Beitrag  ;D :P

Postet doch weitere Functions hier die noch fehlen in der Aufstellung, gerne auch für R7...


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhanden?
Beitrag von: Axel am 26.04.05 - 08:18:04
Hi,

hier hab ich noch ein paar:

Formelsprache:                                           Script:

@Trim( Zeichenfolge )                                  Trim[$] ( stringExpr )
                                                                    zusätzlich gibt es noch:
                                                                    FullTrim( v )
                                                                       v = Any array, string, or variant containing a string.
                                                                    Entfernt führende, abschließende und  doppelte Leerzeichen
                                                                    innerhalb des Strings
                                                                    LTrim[$] ( stringExpr )
                                                                    entfernt führende Leerzeichen
                                                                    RTrim[$] ( stringExpr )[/
                                                                    entfernt abschließende Leerzeichen

@LowerCase( Zeichenfolge )                       LCase[$] ( expr )
@UpperCase( Zeichenfolge )                       UCase[$] ( expr )


Axel

PS:

@TMC
Wenn gewünscht trage ich sie auch gerne oben nach.



Axel


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhand
Beitrag von: TMC am 26.04.05 - 19:41:35
Danke, Axel, für den Beitrag.

@TMC
Wenn gewünscht trage ich sie auch gerne oben nach.
Klar, gerne  ;) (ist allerdings etwas aufwendig, da ich dort mit Board-Tabellen arbeite, und das sieht im SourceCode sehr unübersichtlich aus)


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhand
Beitrag von: Semeaphoros am 26.04.05 - 20:15:28
Matthias, mach doch in der Best-Practices Datenbank einen Eintrag mit einer Tabelle drin, dann können wir die Einträge dort zusammensammeln


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhanden?
Beitrag von: Axel am 26.04.05 - 20:31:59
Hi,

ich werde die Einträge oben eintragen und in der BP-Datenbank die nächsten Tage mal die Tabelle einfügen.

Irgendwann sollte man das Ganze mal in die BP übernehmen, oder?

Axel
   


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhand
Beitrag von: TMC am 26.04.05 - 21:25:06
Prima, Axel.

Jo, langsam könnte man das IMHO übernehmen. Schick wären alledings noch ein paar @Formulas von R7, aber da hab ich gar keinen Überblick.


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhand
Beitrag von: koehlerbv am 26.04.05 - 23:20:36
Wird dies nicht eine (fast) unendliche Story ? Ich habe mal eben "von oben" angefangen:

@Abs            Abs

@Abstract      NotesItem.Text property. Diese Property der Klasse NotesItem gibt im Gegensatz
                  zu @Abstract allerdings lediglich die Textbestandteile wieder und erlaubt keinerlei
                  weitere Verarbeitung. @Abstract erlaubt zudem die Verarbeitung mehrerer Felder.
                  NotesItem.Abstract method. Diese Methode bietet nur einen geringen Auszug aus
                  den Möglichkeiten von @Abstract (lediglich drei Parameter sind vorgesehen)

@Accessed      NotesDocument.LastAccessed property. Identisch zu @Accessed

@Acos            Acos. Identisch zu @Acos.

@AddToFolder         NotesDocument.PutInFolder method (Backend)
            NotesUIWorkspace.Folder (FrontEnd)

usw. usf.

Interessant wird das eigentlich nur bei bestimmten Befehlen wie @dbLookup oder @Contains usw.

Verzetteln wir uns da nicht ? Zumindest geht mir hier noch die Methodik ab - und eigentlich lässt sich alles in der DesignerHelp (auch R5) nachlesen (eigentlich). Ob für den totalen NewBee die Gegenüberstellung @dbLookup / NotesView.GetAllDocumentsByKey hilfreich ist (gerade im Zusammenhang mit der Gegenüberstellung zu @functions), wage ich aus methodisch-didaktischer Sicht ernsthaft zu bezweifeln.

Wobei ein solcher Artikel - entsprechend aufgebaut - schon interessant wäre, denke ich.

Bernhard


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhand
Beitrag von: TMC am 26.04.05 - 23:41:19
@Bernhard:
Mein Ziel war/ist hier sicherlich keine vollständige Liste.
Auslöser hierfür war unter anderem, dass z.B. viele immer wieder Script-Workarounds (oder Evaluate) für @ReplaceSubstring schrieben, und diese Workarounds dann auch so noch in reinen ND6-Apps verwendeten. Oder @Propercase, @Implode etc.

Genau dies soll diese Liste abdecken.

Wie Du schon schreibst, ist das nicht bei allen Befehlen interessant, vieles wie @Abs sollte man da wirklich draußen lassen. Also mehr eine 'Häufig gefragte Script-Entsprechungen zu @Formula' - Liste.

Ich denke, jetzt ist die Liste schon ziemlich weit fortgeschritten und so schon mal sehr hilfreich.


Titel: Re: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhanden?
Beitrag von: Axel am 29.04.05 - 20:42:24
Hi,

die Tabelle habe ich in die Datenbank BP Redaktion eingefügt.


Axel