Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet 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
-
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):
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
-
... 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
-
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
-
... bei der NotesSession mach ich mir noch das Leben schwer und verwende
Dim session As New NotesSession
ata 8)
-
WAs hat es mit dem Open Declare auf sich?
SG
Daniel
-
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.
-
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