Autor Thema: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhanden?  (Gelesen 14272 mal)

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
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
« Letzte Änderung: 26.04.05 - 20:48:10 von Axel »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Glombi

  • Gast
Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
« Antwort #1 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

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
« Antwort #2 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).
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Marinero Atlántico

  • Gast
Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
« Antwort #3 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.
 

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
« Antwort #4 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).
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Marinero Atlántico

  • Gast
Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
« Antwort #5 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
« Letzte Änderung: 29.10.04 - 18:59:52 von Marinero Atlántico »

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
« Antwort #6 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

@Formula-Befehle in Lotus Script abbilden


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
« Letzte Änderung: 29.10.04 - 19:00:25 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Marinero Atlántico

  • Gast
Re: [Themenvorschlag] LScript-Pendants zu Formelsprache
« Antwort #7 am: 29.10.04 - 19:02:19 »
ok. Hast ja Recht. Die Liste ist wirklich ganz gut.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
@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
« Letzte Änderung: 29.10.04 - 19:17:23 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
@Contains in LotusScript (wenn auch kein 100%-Ersatz):
http://www.atnotes.de/index.php?topic=21859.0

@Word --> Ab R6: StrToken

@ProperCase --> StrConv

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
@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

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
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...
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
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)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Matthias, mach doch in der Best-Practices Datenbank einen Eintrag mit einer Tabelle drin, dann können wir die Einträge dort zusammensammeln
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
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
   
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
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.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
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
« Letzte Änderung: 26.04.05 - 23:24:24 von koehlerbv »

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
@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.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Hi,

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


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz