Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: skywook am 24.02.04 - 10:45:09

Titel: Schreibweise Script - Aufbau
Beitrag von: skywook am 24.02.04 - 10:45:09
Hallo,
habe dieses Script geschrieben (auch mit Hilfe von euch). Es öffnet eine Maske und zeigt in einer Messagebox den Inhalt des Feldes Vorgabe an.

Bin noch ein Neuling, aber würdet Ihr dieses Script vom Aufbau her anderst schreiben bzw aufbauen?
Gibt es irgendwelche Standards, damit auch andere die Scripte ohne grossen Aufwand lesen können?

Sub Click(Source As Navigator)
     Dim session As New NotesSession
     Dim ws As New NotesUIWorkspace
     Dim uidoc As notesuidocument
     Dim dbThis As NotesDatabase
     Dim doc As NotesDocument
     
     Set dbThis = session.CurrentDatabase
     Set doc = dbThis.CreateDocument
     doc.Form = "Maske1"
     Call ws.EditDocument( True , doc )
     
     Set ws = New notesuiworkspace
     Set uidoc = ws.currentDocument
     
     a2 = uidoc.FieldGetText( "Vorgabe" )
     Messagebox a2
End Sub
Titel: Re:Schreibweise Script - Aufbau
Beitrag von: TMC am 24.02.04 - 11:03:09
Skywook, das Thema Notation hatten wir schon anderweitig öfter mal diskuitiert.
U.a. wird öfter die "Hungarian Notation" verwendet, hier eine Aufstellung von koehlerbv (Bernhard):

Zitat
Ohne Anspruch auf Vollständigkeit und "That's it!" hier ein schneller Auszug:
i              Integer
l              Long
sng          Single
dft            Double
crr            Currency
sz            String
v              Variant
a              Array
lst            List


b   Boolean      In Wirklichkeit Integer - nur genutzt für "True" und "False"
t   Type      Dim tPersonRecord as PersonRecord
C   Class
m_   Member variable   (of a class)
g_   Global variable prefix


ws   NotesUIWorkspace
uidoc   NotesUIDocument
session   NotesSession
dbd    NotesDbDirectory
db   NotesDatabase
log   NotesLog
dt   NotesDateTime
nl   NotesNewsLetter
dc   NotesDocumentCollection
doc   NotesDocument
view   NotesView
viewcol   NotesViewColumn
agent   NotesAgent
acl   NotesACL
acle   NotesACLEntry
itm   NotesItem
name   NotesName
rti   NotesRichTextItem
eo   NotesEmbeddedObject
dt   NotesDateTime

Zu Deinem jetzigen Script:
Bitte setze unbedingt "Option Declare" ein. Und deklariere Deine Strings etc.

D.h. Deine letzten 2 Zeilen würden sauberer so aussehen:

Dim szAusgabe as String
szAusgabe = uidoc.FieldGetText( "Vorgabe" )
Messagebox szAusgabe

Statt "sz" als String nehmen viele auch "str" her, ist wohl auch Geschmackssache.


Matthias
Titel: Re:Schreibweise Script - Aufbau
Beitrag von: ata am 24.02.04 - 16:03:42
... ich nehme für Strings nur ein "s" - also

Dim sValue As String

Bei Dokumenten und Datenbanken mach ich noch den Unterschied, ob es das aktuelle Objekt ist, daß ich als Backend habe oder nicht

Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim docThis As NotesDocument
Dim dbThis As NotesDatabase

Set uidoc = ws.CurrentDocument
Set docThis = uidoc.Document
Set dbThis = docThis.Parentdatabase

...

ata
Titel: Re:Schreibweise Script - Aufbau
Beitrag von: TMC am 24.02.04 - 20:17:55
Ata, die Unterscheidung macht imho auch Sinn, gerade wenn man mit verschiedenen DBs oder Dokumenten zu tun hat, also z.B. von A nach B kopiert, da versuche ich auch das sinnvoll abzubilden:

Dim docThis As NotesDocument
Dim dbThis As NotesDatabase
Dim docNew As NotesDocument
Dim dbNew As NotesDatabase
Dim dbMail As NotesDatabase
Dim docMail As NotesDocument
etc.

Wenn ich im einen Script nur mit einem Backend-doc oder nur einer DB zu tun habe, dann lasse ich es meistens.

Wie schon erwähnt: Das wichtigste ist m.E. Option Declare, lässt sich im 6er Designer ja eh per Default einstellen.

"s" nehmen (leider) manche auch als "NotesSession" her, daher nehme ich persönlich sz oder str

Matthias
Titel: Re:Schreibweise Script - Aufbau
Beitrag von: ata am 25.02.04 - 18:24:01
... bei der NotesSession mach ich mir noch das Leben schwer und verwende

Dim session As New NotesSession

ata  8)
Titel: Re:Schreibweise Script - Aufbau
Beitrag von: Daniel am 26.02.04 - 09:16:34
WAs hat es mit dem Open Declare auf sich?

SG

Daniel
Titel: Re:Schreibweise Script - Aufbau
Beitrag von: klaussal am 26.02.04 - 09:47:30
open muss wohl OPTION heissen,

das heisst, das jede variable declariert sein muss. wenn mann/frau diese option weglässt, legt LoNo automatisch nicht deklarierte variablen an als variant.
Titel: Re:Schreibweise Script - Aufbau
Beitrag von: Axel am 26.02.04 - 09:48:13
Hi,

das heißt Option Declare und nicht Open Declare.

Das bewirkt, dass man die Variablen deklarieren muß. Man kann nicht einfach eine Variable mit einem Wert belegen und dann nutzen.

Also immer zuerst mit Dim deklarieren und dann nutzen.

Beisp.:
...
Dim intVariable As Integer

intVariable = 1
...

Axel