AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
29.11.21 - 13:39:28
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Best Practices
| |-+  Diskussionen zu Best Practices (Moderatoren: Axel, MartinG, animate, koehlerbv)
| | |-+  [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhanden?
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: [Idee] @Formula vs. Script: Welche LS-Functions sind ND-intern schon vorhanden?  (Gelesen 13316 mal)
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« 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
« Letzte Änderung: 26.04.05 - 20:48:10 von Axel » Gespeichert

Matthias

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

Glombi
Gast
« Antworten #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
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #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  Wink 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  Cheesy 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).
Gespeichert

Matthias

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

Marinero Atlántico
Gast
« Antworten #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.
 
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #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).
Gespeichert

Matthias

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

Marinero Atlántico
Gast
« Antworten #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 » Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #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 » Gespeichert

Matthias

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

Marinero Atlántico
Gast
« Antworten #7 am: 29.10.04 - 19:02:19 »

ok. Hast ja Recht. Die Liste ist wirklich ganz gut.
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #8 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  Wink

@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 » Gespeichert

Matthias

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

TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #9 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

Gespeichert

Matthias

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

koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #10 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
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #11 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  Grin Tongue

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

Matthias

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

Axel
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #12 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
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #13 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  Wink (ist allerdings etwas aufwendig, da ich dort mit Board-Tabellen arbeite, und das sieht im SourceCode sehr unübersichtlich aus)
Gespeichert

Matthias

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

Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #14 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
Gespeichert

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
Axel
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #15 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
   
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #16 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.
Gespeichert

Matthias

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

koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #17 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
« Letzte Änderung: 26.04.05 - 23:24:24 von koehlerbv » Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #18 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.
Gespeichert

Matthias

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

Axel
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #19 am: 29.04.05 - 20:42:24 »

Hi,

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


Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: