在Domino的数据库中有数据文档和设计文档两种文档。设计文档包括单,视图,代理等,这些组成了

一个数据库设计。标准的Notes类库能够很容易的访问数据文档,但是却没有提供任何方法来访问设计

文档。下面的这个DatabaseDesign类可以让我们使用LotusScript来访问设计文档,返回的是NotesDocument

对象。


要使用这个类,我们把DBDesign这个script库拷贝到数据库中。

下面是这个类的代码:



操作Domino数据库的设计元素_edn操作Domino数据库的设计元素_sed_02DatabaseDesign类代码

操作Domino数据库的设计元素_ios_03%REM

操作Domino数据库的设计元素_ios_03****************************************************************************************************************

操作Domino数据库的设计元素_ios_03This library was originally created by Damien Katz of Iris Associates, Aug. 1999

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03This library may be freely distributed, modified and used only if this header is kept intact,

操作Domino数据库的设计元素_ios_03unchanged and is distributed with the contents of the library.

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03Please share any fixes or enhancements and send them to Damien_katz@iris.com so I can add

操作Domino数据库的设计元素_ios_03it the library.

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03If you find this library useful, send me a mail message and let me know what you're using it for.

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03Thanks.

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03****************************************************************************************************************

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03NOTE:

操作Domino数据库的设计元素_ios_03To instantiate a new DatabaseDesign object, do not attempt to instantiate it directly,

操作Domino数据库的设计元素_ios_03instead call the createDatabaseDesign method, it will return a new instantiated object.

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03%END REM

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03'Set this flag to true to always use the platform independent method

操作Domino数据库的设计元素_ios_03Const FLAG_NEVER_USE_NATIVE_API_CALLS =False

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03Const DESIGN_NOTE_NAME_ITEM = "$TITLE"

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_DOCUMENT = &H0001 ' document note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_DATA = NOTE_CLASS_DOCUMENT ' old name for document note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_INFO = &H0002 ' notefile info (help-about) note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_FORM = &H0004 ' form note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_VIEW = &H0008 ' view note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_ICON = &H0010 ' icon note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_DESIGN = &H0020 ' design note collection

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_ACL = &H0040 ' acl note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_HELP_INDEX = &H0080 ' Notes product help index note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_HELP = &H0100 ' designer's help note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_FILTER = &H0200 ' filter note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_FIELD = &H0400 ' field note

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_REPLFORMULA = &H0800 ' replication formula

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_PRIVATE = &H1000

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03Const NOTE_CLASS_ALLNONDATA = &H7FFE

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_ADD = "A"

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_ANTIFOLDER = "a" ' VIEW: Indicates that a view is an antifolder view

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_BACKGROUND_FILTER = "B" ' FILTER: Indicates FILTER_TYPE_BACKGROUND is asserted

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_INITBYDESIGNONLY="b" ' VIEW: Indicates view can be initially built only by designer and above

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_NO_COMPOSE = "C" ' FORM: Indicates a form that is used only for

操作Domino数据库的设计元素_ios_03 ' query by form (not on compose menu).

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_CALENDAR_VIEW = "c" ' VIEW: Indicates a form is a calendar style view.

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_NO_QUERY = "D" ' FORM: Indicates a form that should not be used in query by form

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_DEFAULT_DESIGN = "d" ' ALL: Indicates the default design note for it"s class (used for VIEW)

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_MAIL_FILTER = "E" ' FILTER: Indicates FILTER_TYPE_MAIL is asserted

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_PUBLICANTIFOLDER = "e" ' VIEW: Indicates that a view is a public antifolder view

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_FOLDER_VIEW = "F" ' VIEW: This is a V4 folder view.

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_V4AGENT = "f" ' FILTER: This is a V4 agent

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_VIEWMAP = "G" ' VIEW: This is ViewMap/GraphicView/Navigator

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_OTHER_DLG = "H" ' ALL: Indicates a form that is placed in Other操作Domino数据库的设计元素_edn_62 dialog

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_V4PASTE_AGENT = "I" ' FILTER: This is a V4 paste agent

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_IMAGE_RESOURCE = "i" ' FORM: Note is a shared image resource

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_JAVA_AGENT = "J" ' FILTER: If its Java

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_JAVA_AGENT_WITH_SOURCE = "j" ' FILTER: If it is a java agent with java source code.

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_LOTUSSCRIPT_AGENT = "L" ' FILTER: If its LOTUSSCRIPT

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_DELETED_DOCS = "l" ' VIEW: Indicates that a view is a deleted documents view

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_QUERY_MACRO_FILTER = "M" ' FILTER: Stored FT query AND macro

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_SITEMAP = "m" ' FILTER: This is a site(m)ap.

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_NEW = "N" ' FORM: Indicates that a subform is listed when making a new form.

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_HIDE_FROM_NOTES = "n" ' ALL: notes stamped with this flag

操作Domino数据库的设计元素_ios_03 'will be hidden from Notes clients

操作Domino数据库的设计元素_ios_03 'We need a separate value here

操作Domino数据库的设计元素_ios_03 'because it Is possible To be

操作Domino数据库的设计元素_ios_03 'hidden from V4 AND to be hidden

操作Domino数据库的设计元素_ios_03 'from Notes, and clearing one

操作Domino数据库的设计元素_ios_03 'should not clear the other

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_QUERY_V4_OBJECT = "O" ' FILTER: Indicates V4 search bar query object - used in addition to "Q"

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_PRIVATE_STOREDESK = "o" ' VIEW: If Private_1stUse, store the private view in desktop

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_PRESERVE = "P" ' ALL: related to data dictionary

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_PRIVATE_1STUSE = "p" ' VIEW: This is a private copy of a private on first use view.

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_QUERY_FILTER = "Q" ' FILTER: Indicates full text query ONLY, no filter macro

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_AGENT_SHOWINSEARCH = "q" ' FILTER: Search part of this agent should be shown in search bar

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_REPLACE_SPECIAL = "R" ' SPECIAL: this flag is the opposite of DESIGN_FLAG_PRESERVE, used

操作Domino数据库的设计元素_ios_03 'only for the "About" and "Using" notes + the icon bitmap in the icon note

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_PROPAGATE_NOCHANGE = "r" ' DESIGN: this flag is used to propagate the prohibition of design change

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_V4BACKGROUND_MACRO = "S" ' FILTER: This is a V4 background agent

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_SCRIPTLIB = "s" ' FILTER: A database global script library note

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_VIEW_CATEGORIZED = "T" ' VIEW: Indicates a view that is categorized on the categories field

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_DATABASESCRIPT = "t" ' FILTER: A database script note

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_SUBFORM = "U" ' FORM: Indicates that a form is a subform.

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_AGENT_RUNASWEBUSER = "u" ' FILTER: Indicates agent should run as effective user on web

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_PRIVATE_IN_DB = "V" ' ALL: This is a private element stored in the database

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_WEBPAGE = "W" ' FORM: Note is a WEBPAGE

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_HIDE_FROM_WEB = "w" ' ALL: notes stamped with this flag

操作Domino数据库的设计元素_ios_03 'will be hidden from WEB clients

操作Domino数据库的设计元素_ios_03' WARNING: A formula that build Design Collecion relies on the fact that Agent Data"s

操作Domino数据库的设计元素_ios_03 '$Flags is the only Desing Collection element whose $Flags="X"

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_V4AGENT_DATA = "X" ' FILTER: This is a V4 agent data note

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_SUBFORM_NORENDER = "x" ' SUBFORM: indicates whether

操作Domino数据库的设计元素_ios_03 'we should render a subform in

操作Domino数据库的设计元素_ios_03 'the parent form

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_NO_MENU = "Y" ' ALL: Indicates that folder/view/etc. should be hidden from menu.

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_SACTIONS = "y" ' Shared actions note

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_MULTILINGUAL_PRESERVE_HIDDEN = "Z" ' ALL: Used to indicate design element was hidden

操作Domino数据库的设计元素_ios_03 ' before the "Notes Global Designer" modified it.

操作Domino数据库的设计元素_ios_03 ' (used with the "!" flag)

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_FRAMESET = "#" ' FORM: Indicates that this is a frameset note

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_MULTILINGUAL_ELEMENT = "!"' ALL: Indicates this design element supports the

操作Domino数据库的设计元素_ios_03 ' "Notes Global Designer" multilingual addin

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_JAVA_RESOURCE = "@" ' FORM: Note is a shared Java resource

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_HIDE_FROM_V3 = "3" ' ALL: notes stamped with this flag

操作Domino数据库的设计元素_ios_03 ' will be hidden from V3 client

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_HIDE_FROM_V4 = "4" ' ALL: notes stamped with this flag

操作Domino数据库的设计元素_ios_03 ' will be hidden from V4 client

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_HIDE_FROM_V5 = "5" ' FILTER: "Q5"= hide from V4.5 search list

操作Domino数据库的设计元素_ios_03 ' ALL OTHER: notes stamped with this flag

操作Domino数据库的设计元素_ios_03 ' will be hidden from V5 client

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_HIDE_FROM_V6 = "6" ' ALL: notes stamped with this flag

操作Domino数据库的设计元素_ios_03 'will be hidden from V6 client

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_HIDE_FROM_V7 = "7" ' ALL: notes stamped with this flag

操作Domino数据库的设计元素_ios_03 'will be hidden from V7 client

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_HIDE_FROM_V8 = "8" ' ALL: notes stamped with this flag

操作Domino数据库的设计元素_ios_03 'will be hidden from V8 client

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_HIDE_FROM_V9 = "9" ' ALL: notes stamped with this flag

操作Domino数据库的设计元素_ios_03 'will be hidden from V9 client

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAG_MUTILINGUAL_HIDE = "0" ' ALL: notes stamped with this flag

操作Domino数据库的设计元素_ios_03 'will be hidden from the client

操作Domino数据库的设计元素_ios_03 'usage is for different language

操作Domino数据库的设计元素_ios_03 'versions of the design list to be

操作Domino数据库的设计元素_ios_03 'hidden completely

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03' These are the flags that help determine the type of a design element.

操作Domino数据库的设计元素_ios_03' These flags are used to sub-class the note classes, and cannot be

操作Domino数据库的设计元素_ios_03' changed once they are created (for example, there is no way to change

操作Domino数据库的设计元素_ios_03' a form into a subform).

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAGS_SUBCLASS = "UW#yi@GFXstm"

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03' These are the flags that can be used to distinguish between two

操作Domino数据库的设计元素_ios_03' design elements that have the same class, subclass (see DESIGN_FLAGS_SUBCLASS),

操作Domino数据库的设计元素_ios_03' and name.

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03Const DESIGN_FLAGS_DISTINGUISH = "nw3456789"

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03Const ERR_BASE_CLASS_INSTANTIATED = 10452

操作Domino数据库的设计元素_ios_03Const ERR_BASE_CLASS_INSTANTIATED_MESSAGE = "You cannot instantiate this class directly"

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_sed_02操作Domino数据库的设计元素_ednPublic Class DatabaseDesignClass DatabaseDesign

操作Domino数据库的设计元素_sed_154 'PUBLIC MEMBERS

操作Domino数据库的设计元素_sed_154 Public cacheDocuments As Integer

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 'PRIVATE MEMBERS

操作Domino数据库的设计元素_sed_154 Private db As NotesDatabase

操作Domino数据库的设计元素_sed_154 Private forms As Variant

操作Domino数据库的设计元素_sed_154 Private views As Variant

操作Domino数据库的设计元素_sed_154 Private filters As Variant

操作Domino数据库的设计元素_sed_154 Private fields As Variant

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Sub new()Sub new( database As NotesDatabase)

操作Domino数据库的设计元素_sed_154 If isAbstractClass Then

操作Domino数据库的设计元素_sed_154 'this prevents the base class from being instantiated directly

操作Domino数据库的设计元素_sed_154 Error ERR_BASE_CLASS_INSTANTIATED, ERR_BASE_CLASS_INSTANTIATED_MESSAGE

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 Set db = database

操作Domino数据库的设计元素_sed_154 cacheDocuments = True

操作Domino数据库的设计元素_sed_172 End Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function isAbstractClass()Function isAbstractClass As Integer

操作Domino数据库的设计元素_sed_154 'this must be overridden and return false

操作Domino数据库的设计元素_sed_154 'this prevents the base class from being instantiated directly

操作Domino数据库的设计元素_sed_154 isAbstractClass = True

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 'PUBLIC PROCEDURES

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get formDocuments As Variant

操作Domino数据库的设计元素_sed_154 FormDocuments = getDesignDocuments( NOTE_CLASS_FORM, "*[" & DESIGN_FLAGS_SUBCLASS & "]*", True)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get subformDocuments As Variant

操作Domino数据库的设计元素_sed_154 subformDocuments = getDesignDocuments( NOTE_CLASS_FORM, "*[" & DESIGN_FLAG_SUBFORM & "]*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get pageDocuments As Variant

操作Domino数据库的设计元素_sed_154 pageDocuments = getDesignDocuments( NOTE_CLASS_FORM, "*[" & DESIGN_FLAG_WEBPAGE & "]*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get imageDocuments As Variant

操作Domino数据库的设计元素_sed_154 imageDocuments = getDesignDocuments( NOTE_CLASS_FORM, "*[" & DESIGN_FLAG_IMAGE_RESOURCE & "]*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get javaResourceDocuments As Variant

操作Domino数据库的设计元素_sed_154 javaResourceDocuments = getDesignDocuments( NOTE_CLASS_FORM, "*[" & DESIGN_FLAG_JAVA_RESOURCE &"]*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get allDesignDocuments As Variant

操作Domino数据库的设计元素_sed_154 allDesignDocuments = getDesignDocuments( _

操作Domino数据库的设计元素_sed_154 NOTE_CLASS_FORM Or _

操作Domino数据库的设计元素_sed_154 NOTE_CLASS_VIEW Or _

操作Domino数据库的设计元素_sed_154 NOTE_CLASS_ICON Or _

操作Domino数据库的设计元素_sed_154 NOTE_CLASS_HELP Or _

操作Domino数据库的设计元素_sed_154 NOTE_CLASS_FILTER Or _

操作Domino数据库的设计元素_sed_154 NOTE_CLASS_FIELD Or _

操作Domino数据库的设计元素_sed_154 NOTE_CLASS_REPLFORMULA Or _

操作Domino数据库的设计元素_sed_154 NOTE_CLASS_INFO Or _

操作Domino数据库的设计元素_sed_154 NOTE_CLASS_HELP _

操作Domino数据库的设计元素_sed_154 ,"*[X]*", True )

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get viewDocuments As Variant

操作Domino数据库的设计元素_sed_154 viewDocuments = getDesignDocuments( NOTE_CLASS_VIEW, "*["&DESIGN_FLAGS_SUBCLASS & "]*", True )

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get folderDocuments As Variant

操作Domino数据库的设计元素_sed_154 folderDocuments = getDesignDocuments( NOTE_CLASS_VIEW, "*["& DESIGN_FLAG_FOLDER_VIEW & "]*", False )

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get navigatorDocuments As Variant

操作Domino数据库的设计元素_sed_154 navigatorDocuments = getDesignDocuments( NOTE_CLASS_VIEW, "*["& DESIGN_FLAG_VIEWMAP & "]*", False )

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get framesetDocuments As Variant

操作Domino数据库的设计元素_sed_154 FramesetDocuments = getDesignDocuments( NOTE_CLASS_FORM, "*[" & DESIGN_FLAG_FRAMESET & "]*", False )

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get scriptLibraryDocuments As Variant

操作Domino数据库的设计元素_sed_154 scriptLibraryDocuments = getDesignDocuments( NOTE_CLASS_FILTER, "*[" & DESIGN_FLAG_SCRIPTLIB & "]*", False )

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get agentDocuments As Variant

操作Domino数据库的设计元素_sed_154 agentDocuments = getDesignDocuments( NOTE_CLASS_FILTER, "*[" & DESIGN_FLAGS_SUBCLASS & "]*", True)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get databaseScriptDocuments As Variant

操作Domino数据库的设计元素_sed_154 databaseScriptDocuments = getDesignDocuments( NOTE_CLASS_FILTER, "*[" & DESIGN_FLAG_DATABASESCRIPT & "]*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get outlineDocuments As Variant

操作Domino数据库的设计元素_sed_154 outlineDocuments = getDesignDocuments( NOTE_CLASS_FILTER, "*[" & DESIGN_FLAG_SITEMAP & "]*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get sharedFieldDocuments As Variant

操作Domino数据库的设计元素_sed_154 sharedFieldDocuments = getDesignDocuments( NOTE_CLASS_FIELD, "*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get replicationSettingsDocuments As Variant

操作Domino数据库的设计元素_sed_154 replicationSettingsDocuments = getDesignDocuments(NOTE_CLASS_REPLFORMULA, "*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get sharedActionDocuments As Variant

操作Domino数据库的设计元素_sed_154 sharedActionDocuments = getDesignDocuments(NOTE_CLASS_FORM , "*[" & DESIGN_FLAG_SACTIONS & "]*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get iconDocuments As Variant

操作Domino数据库的设计元素_sed_154 iconDocuments = getDesignDocuments(NOTE_CLASS_ICON , "*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get helpAboutDocuments As Variant

操作Domino数据库的设计元素_sed_154 helpAboutDocuments = getDesignDocuments(NOTE_CLASS_INFO , "*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Property Get()Property Get helpUsingDocuments As Variant

操作Domino数据库的设计元素_sed_154 helpUsingDocuments = getDesignDocuments(NOTE_CLASS_HELP , "*", False)

操作Domino数据库的设计元素_sed_172 End Property

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 'PUBLIC METHODS

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getFormByName()Function getFormByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getFormByName = findElementByTitle( formname, Me.formDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getViewByName()Function getViewByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getViewByName = findElementByTitle( formname, Me.viewDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getFramesetByName()Function getFramesetByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getFramesetByName = findElementByTitle( formname, Me.framesetDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getFolderByName()Function getFolderByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getFolderByName = findElementByTitle( formname, Me.folderDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getScriptLibraryByName()Function getScriptLibraryByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getScriptLibraryByName = findElementByTitle( formname, Me.scriptLibraryDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getImageByName()Function getImageByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getImageByName = findElementByTitle( formname, Me.imageDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getNavigatorByName()Function getNavigatorByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getNavigatorByName = findElementByTitle( formname, Me.navigatorDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getJavaResourceByName()Function getJavaResourceByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getJavaResourceByName = findElementByTitle( formname, Me.javaResourceDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getOutlineByName()Function getOutlineByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getOutlineByName = findElementByTitle( formname, Me.outlineDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getAgentByName()Function getAgentByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getAgentByName = findElementByTitle( formname, Me.agentDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getPageByName()Function getPageByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getPageByName = findElementByTitle( formname, Me.pageDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getSubformByName()Function getSubformByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getSubformByName = findElementByTitle( formname, Me.subformDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function getSharedFieldByName()Function getSharedFieldByName( formname As String) As NotesDocument

操作Domino数据库的设计元素_sed_154 Set getSharedFieldByName = findElementByTitle( formname, Me.sharedFieldDocuments)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Public Function designDocumentAliases()Function designDocumentAliases( doc As NotesDocument) As Variant

操作Domino数据库的设计元素_sed_154 'some design element aliases are stored as a mulivalue item

操作Domino数据库的设计元素_sed_154 'others are stored as a pipe delimited single value item

操作Domino数据库的设计元素_sed_154 'if the item is a multi value, then don't worry about exploding it

操作Domino数据库的设计元素_sed_154 'otherwise, explode the single item

操作Domino数据库的设计元素_sed_154 Dim aliases As Variant

操作Domino数据库的设计元素_sed_154 aliases = doc.getItemValue( DESIGN_NOTE_NAME_ITEM)

操作Domino数据库的设计元素_sed_154 If Ubound( aliases) = 0 Then

操作Domino数据库的设计元素_sed_154 aliases = strExplode( aliases(0), "|", False)

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 designDocumentAliases = aliases

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 'PRIVATE METHODS

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function getDocuments()Function getDocuments( classtype As Integer) As Variant

操作Domino数据库的设计元素_sed_154 'this must be overridden

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function getDesignDocuments()Function getDesignDocuments( classtype As Integer, flagslike As String, invertlike As Integer ) As Variant

操作Domino数据库的设计元素_sed_154 Dim unfilteredResults As Variant

操作Domino数据库的设计元素_sed_154 If cacheDocuments Then

操作Domino数据库的设计元素_sed_154 Select Case classtype

操作Domino数据库的设计元素_sed_154 Case NOTE_CLASS_FORM:

操作Domino数据库的设计元素_sed_154 If Isempty( forms) Then

操作Domino数据库的设计元素_sed_154 forms = getDocuments( classtype )

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 unfilteredResults = forms

操作Domino数据库的设计元素_sed_154 Case NOTE_CLASS_VIEW:

操作Domino数据库的设计元素_sed_154 If Isempty( views) Then

操作Domino数据库的设计元素_sed_154 views = getDocuments( classtype )

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 unfilteredResults = views

操作Domino数据库的设计元素_sed_154 Case NOTE_CLASS_FILTER:

操作Domino数据库的设计元素_sed_154 If Isempty( filters) Then

操作Domino数据库的设计元素_sed_154 filters = getDocuments( classtype )

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 unfilteredResults = filters

操作Domino数据库的设计元素_sed_154 Case NOTE_CLASS_FIELD:

操作Domino数据库的设计元素_sed_154 If Isempty( fields) Then

操作Domino数据库的设计元素_sed_154 fields = getDocuments( classtype )

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 unfilteredResults = fields

操作Domino数据库的设计元素_sed_154 Case Else:

操作Domino数据库的设计元素_sed_154 unfilteredResults = getDocuments( classtype )

操作Domino数据库的设计元素_sed_154 End Select

操作Domino数据库的设计元素_sed_154 Else

操作Domino数据库的设计元素_sed_154 unfilteredResults = getDocuments( classtype )

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 If Not Isempty(unfilteredResults) Then

操作Domino数据库的设计元素_sed_154 Dim count As Integer

操作Domino数据库的设计元素_sed_154 Redim results(Ubound(unfilteredResults)) As Variant

操作Domino数据库的设计元素_sed_154 Forall note In unfilteredResults

操作Domino数据库的设计元素_sed_154 If Not note Is Nothing Then

操作Domino数据库的设计元素_sed_154 If note.getItemValue( "$Flags")(0) Like flagslike Xor invertlike Then

操作Domino数据库的设计元素_sed_154 Set results(count) = note

操作Domino数据库的设计元素_sed_154 count = count + 1

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 End Forall

操作Domino数据库的设计元素_sed_154 If Ubound(results) > count - 1And count > 0 Then

操作Domino数据库的设计元素_sed_154 Redim Preserve results( count - 1) As Variant

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 If count > 0 Then

操作Domino数据库的设计元素_sed_154 getDesignDocuments = results

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function findElementByTitle()Function findElementByTitle(Byval title As String, elements As Variant) As NotesDocument

操作Domino数据库的设计元素_sed_154 If Not Isempty( elements) Then

操作Domino数据库的设计元素_sed_154 title= Trim(Lcase( replaceSubstring( title , "_", "")))

操作Domino数据库的设计元素_sed_154 Forall elementdoc In elements

操作Domino数据库的设计元素_sed_154 Dim doc As notesdocument

操作Domino数据库的设计元素_sed_154 Set doc = elementdoc

操作Domino数据库的设计元素_sed_154 If doesMatchTitle( title, doc) Then

操作Domino数据库的设计元素_sed_154 Set findElementByTitle = elementdoc

操作Domino数据库的设计元素_sed_154 Exit Function

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 End Forall

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function doesMatchTitle()Function doesMatchTitle( Byval titletoMatch As String, doc As notesdocument) As Integer

操作Domino数据库的设计元素_sed_154 'titletomatch must be all lowercase

操作Domino数据库的设计元素_sed_154 Dim aliases As Variant

操作Domino数据库的设计元素_sed_154 aliases = designDocumentAliases( doc )

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 Forall analias In aliases

操作Domino数据库的设计元素_sed_154 If replaceSubstring(Lcase(Trim(analias)), "_", "") = titleToMatch Then

操作Domino数据库的设计元素_sed_154 doesMatchTitle = True

操作Domino数据库的设计元素_sed_154 Exit Function

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 End Forall

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function replaceSubstring()Function replaceSubstring( Byval astring As String, substring As String, newsubstring As String) As String

操作Domino数据库的设计元素_sed_154 Dim index As Integer

操作Domino数据库的设计元素_sed_154 index = Instr( astring, substring)

操作Domino数据库的设计元素_sed_154 Do While index > 0

操作Domino数据库的设计元素_sed_154 replaceSubstring = Left$( astring, index - 1) & newsubstring

操作Domino数据库的设计元素_sed_154 astring = Right$( astring, Len(astring) - index - Len( substring) + 1 )

操作Domino数据库的设计元素_sed_154 index = Instr( astring, substring)

操作Domino数据库的设计元素_sed_154 Loop

操作Domino数据库的设计元素_sed_154 replaceSubstring = replaceSubstring & astring

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function strExplode()Function strExplode( Byval strValue As String, strDelimiter As String, bBlanks As Variant) As Variant

操作Domino数据库的设计元素_sed_154'** This function takes a string and converts it to an array, based on a delimiter

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154'** Parameters:

操作Domino数据库的设计元素_sed_154'**strValue- the string to explode

操作Domino数据库的设计元素_sed_154'**strDelimiter- the delimiter

操作Domino数据库的设计元素_sed_154'**bBlanks- a boolean value, pass true to have blanks placed in array when two delimiters have nothing between them

操作Domino数据库的设计元素_sed_154'** pass false to ignore the blanks

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 Dim strTemp As String

操作Domino数据库的设计元素_sed_154 Dim strValues() As String

操作Domino数据库的设计元素_sed_154 Dim iPlace As Integer

操作Domino数据库的设计元素_sed_154 Dim idelimLen As Integer

操作Domino数据库的设计元素_sed_154 Dim iValueCount As Integer

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 idelimLen = Len( strDelimiter)

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 iPlace = Instr( strValue, strDelimiter)

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 Do While iPlace <> 0

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 If (iPlace <> 1 Or bBlanks) Then

操作Domino数据库的设计元素_sed_154 Redim Preserve strValues(iValueCount) As String

操作Domino数据库的设计元素_sed_154 strValues(iValueCount) = Left( strValue, iPlace - 1)

操作Domino数据库的设计元素_sed_154 iValueCount = iValueCount + 1

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 strValue = Right( strValue, Len( strValue) - iPlace - idelimLen + 1)

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 iPlace = Instr( strValue, strDelimiter)

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 Loop

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 If Len( strValue ) <> 0 Or bBlanks Then

操作Domino数据库的设计元素_sed_154 Redim Preserve strValues(iValueCount) As String

操作Domino数据库的设计元素_sed_154 strValues(iValueCount) = strValue

操作Domino数据库的设计元素_sed_154 Elseif iValueCount = 0 Then

操作Domino数据库的设计元素_sed_154 Redim Preserve strValues(iValueCount) As String

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 STRExplode = strValues

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_518End Class

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_sed_02操作Domino数据库的设计元素_ednClass API_DBDesignClass API_DBDesign As DatabaseDesign

操作Domino数据库的设计元素_sed_154 Private dbhandle As Long

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function checkerror()Function checkerror( returncode As Integer) As Integer

操作Domino数据库的设计元素_sed_154 'this returns zero unless returncode is non-zero

操作Domino数据库的设计元素_sed_154 'in which case it throws an error

操作Domino数据库的设计元素_sed_154 If returncode <> 0 Then

操作Domino数据库的设计元素_sed_154 Error returncode, Hex$( returncode)

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiNSFDbOpen()Function apiNSFDbOpen ( Byval dbname As String, dbhandle As Long ) As Integer

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiNSFDbGetModifiedNoteTable()Function apiNSFDbGetModifiedNoteTable( Byval dbhandle As Long, Byval classmask As Integer, Byval startdate As Double, endate As Double, returntablehandle As Long ) As Integer

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiIDEntries()Function apiIDEntries ( Byval tablehandle As Long ) As Long

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiIDScan()Function apiIDScan( Byval tablehandle As Long, Byval firstbool As Integer, returnid As Long) As Integer

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiOSMemFree()Function apiOSMemFree (Byval handle As Long) As Integer

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiNSFDbClose()Function apiNSFDbClose( Byval dbhandle As Long) As Integer

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Sub apiTimeConstruct()Sub apiTimeConstruct( Byval adate As Long, Byval atime As Long, datetime As Double)

操作Domino数据库的设计元素_sed_172 End Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Sub new()Sub new( db As NotesDatabase)

操作Domino数据库的设计元素_sed_154 Dim netpath As String

操作Domino数据库的设计元素_sed_154 If Len(db.server) > 0 Then

操作Domino数据库的设计元素_sed_154 netpath = db.server & "!!" & db.filepath

操作Domino数据库的设计元素_sed_154 Else

操作Domino数据库的设计元素_sed_154 netpath = db.filepath

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 Call checkerror(apiNSFDBOpen(netpath, dbhandle ))

操作Domino数据库的设计元素_sed_172 End Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Sub delete()Sub delete

操作Domino数据库的设计元素_sed_154 If dbhandle <> 0 Then

操作Domino数据库的设计元素_sed_154 Call apiNSFDbClose( dbhandle)

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_172 End Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function getDocuments()Function getDocuments( classtype As Integer) As Variant

操作Domino数据库的设计元素_sed_154 Dim begindate As Double

操作Domino数据库的设计元素_sed_154 Dim enddate As Double

操作Domino数据库的设计元素_sed_154 Dim idtablehandle As Long

操作Domino数据库的设计元素_sed_154 Dim noteid As Long

操作Domino数据库的设计元素_sed_154 Call apiTimeConstruct( &hFFFFFFFF, &hFFFFFFFF, begindate )

操作Domino数据库的设计元素_sed_154 On Error Goto errhandle

操作Domino数据库的设计元素_sed_154 Call checkerror(apiNSFDbGetModifiedNoteTable( dbhandle, classtype, begindate , enddate , idtablehandle ))

操作Domino数据库的设计元素_sed_154 If apiIDEntries( idtablehandle) <>0 Then

操作Domino数据库的设计元素_sed_154 Redim returnval (apiIDEntries( idtablehandle)-1) As NotesDocument

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 Dim count As Long

操作Domino数据库的设计元素_sed_154 If apiIDScan( idtablehandle, True, noteid ) Then

操作Domino数据库的设计元素_sed_154 Set returnval( count) = db.getDocumentByID(Hex$( noteId))

操作Domino数据库的设计元素_sed_154 Do While apiIDScan( idtablehandle, False, noteid )

操作Domino数据库的设计元素_sed_154 count = count + 1

操作Domino数据库的设计元素_sed_154 Set returnval( count) = db.getDocumentByID(Hex$( noteId))

操作Domino数据库的设计元素_sed_154 Loop

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 getDocuments = returnval

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154done:

操作Domino数据库的设计元素_sed_154 If idtablehandle <>0 Then

操作Domino数据库的设计元素_sed_154 Call apiOsMemFree( idtablehandle)

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 Exit Function

操作Domino数据库的设计元素_sed_154errhandle:

操作Domino数据库的设计元素_sed_154 Resume done

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_518End Class

操作Domino数据库的设计元素_ios_03

操作Domino数据库的设计元素_ios_03'Windows only calls.

操作Domino数据库的设计元素_sed_02操作Domino数据库的设计元素_ednDeclare Private Function WinNSFDbOpen()Function WinNSFDbOpen Lib "nnotes" Alias "NSFDbOpen" ( Byval dbname As Lmbcs String, dbhandle As Long ) As Integer

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function WinNSFDbGetModifiedNoteTable()Function WinNSFDbGetModifiedNoteTable Lib "nnotes" Alias "NSFDbGetModifiedNoteTable"( Byval dbhandle As Long, Byval classmask As Integer, _

操作Domino数据库的设计元素_sed_154Byval startdate As Double, endate As Double, returntablehandle As Long ) As Integer

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function WinIDEntries()Function WinIDEntries Lib "nnotes"Alias "IDEntries"( Byval tablehandle As Long ) As Long

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function WinIDScan()Function WinIDScan Lib "nnotes" Alias "IDScan"( Byval tablehandle As Long, Byval firstbool As Integer, returnid As Long) As Integer

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function WinOSMemFree()Function WinOSMemFree Lib "nnotes" Alias "OSMemFree" (Byval handle As Long) As Integer

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function WinNSFDbClose()Function WinNSFDbClose Lib "nnotes" Alias "NSFDbClose" ( Byval dbhandle As Long) As Integer

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Sub WinTimeConstruct()Sub WinTimeConstruct Lib "nnotes" Alias "TimeConstruct" ( Byval adate As Long, Byval atime As Long, datetime As Double)

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Class Win32DatabaseDesignClass Win32DatabaseDesign As API_DBDesign

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Sub new()Sub new( db As NotesDatabase)

操作Domino数据库的设计元素_sed_172 End Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiNSFDbOpen()Function apiNSFDbOpen ( Byval dbname As String, dbhandle As Long ) As Integer

操作Domino数据库的设计元素_sed_154 apiNSFDbOpen = winNSFDbOpen ( dbname, dbhandle )

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiNSFDbGetModifiedNoteTable()Function apiNSFDbGetModifiedNoteTable( Byval dbhandle As Long, Byval classmask As Integer, Byval startdate As Double, endate As Double, returntablehandle As Long ) As Integer

操作Domino数据库的设计元素_sed_154 apiNSFDbGetModifiedNoteTable = winNSFDbGetModifiedNoteTable(dbhandle, classmask,startdate , endate , returntablehandle )

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiIDEntries()Function apiIDEntries ( Byval tablehandle As Long ) As Long

操作Domino数据库的设计元素_sed_154 apiIDEntries = winIDEntries(tablehandle)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiIDScan()Function apiIDScan( Byval tablehandle As Long, Byval firstbool As Integer, returnid As Long) As Integer

操作Domino数据库的设计元素_sed_154 apiIDScan = winIDScan( tablehandle , firstbool, returnid)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiOSMemFree()Function apiOSMemFree (Byval handle As Long) As Integer

操作Domino数据库的设计元素_sed_154 apiOSMemFree = winOSMemFree (handle)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiNSFDbClose()Function apiNSFDbClose( Byval dbhandle As Long) As Integer

操作Domino数据库的设计元素_sed_154 apiNSFDbClose = winNSFDbClose(dbhandle)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Sub apiTimeConstruct()Sub apiTimeConstruct( Byval adate As Long, Byval atime As Long, datetime As Double)

操作Domino数据库的设计元素_sed_154 Call winTimeConstruct( adate ,atime, datetime)

操作Domino数据库的设计元素_sed_172 End Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function isAbstractClass()Function isAbstractClass As Integer

操作Domino数据库的设计元素_sed_154 isAbstractClass = False

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_172End Class

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154%REM

操作Domino数据库的设计元素_sed_154This is commented out because I had trouble getting it to work on the mac

操作Domino数据库的设计元素_sed_154The code is here in case someone wants to try and make it work

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154'Mac calls.

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function macNSFDbOpen()Function macNSFDbOpen Lib "noteslib" Alias "NSFDbOpen" ( Byval dbname As Lmbcs String, dbhandle As Long ) As Integer

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function macNSFDbGetModifiedNoteTable()Function macNSFDbGetModifiedNoteTable Lib "noteslib" Alias "NSFDbGetModifiedNoteTable"( Byval dbhandle As Long, Byval classmask As Integer, _

操作Domino数据库的设计元素_sed_154Byval startdate As Double, endate As Double, returntablehandle As Long ) As Integer

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function macIDEntries()Function macIDEntries Lib "noteslib"Alias "IDEntries"( Byval tablehandle As Long ) As Long

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function macIDScan()Function macIDScan Lib "noteslib" Alias "IDScan"( Byval tablehandle As Long, Byval firstbool As Integer, returnid As Long) As Integer

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function macOSMemFree()Function macOSMemFree Lib "noteslib" Alias "OSMemFree" (Byval handle As Long) As Integer

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Function macNSFDbClose()Function macNSFDbClose Lib "noteslib" Alias "NSFDbClose" ( Byval dbhandle As Long) As Integer

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Declare Private Sub macTimeConstruct()Sub macTimeConstruct Lib "noteslib" Alias "TimeConstruct" ( Byval adate As Long, Byval atime As Long, datetime As Double)

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Class MacDatabaseDesignClass MacDatabaseDesign As API_DBDesign

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Sub new()Sub new( db As NotesDatabase)

操作Domino数据库的设计元素_sed_172 End Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiNSFDbOpen()Function apiNSFDbOpen ( Byval dbname As String, dbhandle As Long ) As Integer

操作Domino数据库的设计元素_sed_154 apiNSFDbOpen = macNSFDbOpen ( dbname, dbhandle )

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiNSFDbGetModifiedNoteTable()Function apiNSFDbGetModifiedNoteTable( Byval dbhandle As Long, Byval classmask As Integer, Byval startdate As Double, endate As Double, returntablehandle As Long ) As Integer

操作Domino数据库的设计元素_sed_154 apiNSFDbGetModifiedNoteTable = macNSFDbGetModifiedNoteTable(dbhandle, classmask,startdate , endate , returntablehandle )

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiIDEntries()Function apiIDEntries ( Byval tablehandle As Long ) As Long

操作Domino数据库的设计元素_sed_154 apiIDEntries = macIDEntries(tablehandle)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiIDScan()Function apiIDScan( Byval tablehandle As Long, Byval firstbool As Integer, returnid As Long) As Integer

操作Domino数据库的设计元素_sed_154 apiIDScan = macIDScan( tablehandle , firstbool, returnid)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiOSMemFree()Function apiOSMemFree (Byval handle As Long) As Integer

操作Domino数据库的设计元素_sed_154 apiOSMemFree = macOSMemFree (handle)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function apiNSFDbClose()Function apiNSFDbClose( Byval dbhandle As Long) As Integer

操作Domino数据库的设计元素_sed_154 apiNSFDbClose = macNSFDbClose(dbhandle)

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Sub apiTimeConstruct()Sub apiTimeConstruct( Byval adate As Long, Byval atime As Long, datetime As Double)

操作Domino数据库的设计元素_sed_154 Call macTimeConstruct( adate ,atime, datetime)

操作Domino数据库的设计元素_sed_172 End Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function isAbstractClass()Function isAbstractClass As Integer

操作Domino数据库的设计元素_sed_154 isAbstractClass = False

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_172End Class

操作Domino数据库的设计元素_sed_154%END REM

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154Const DB_DESIGN_LOOKUP_VIEW = "($DBDesignLookup)"

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165Class PlatformIndependentDatabaseDesignClass PlatformIndependentDatabaseDesign As DatabaseDesign

操作Domino数据库的设计元素_sed_154 Private session As NotesSession

操作Domino数据库的设计元素_sed_154 Private currentDB As NotesDatabase

操作Domino数据库的设计元素_sed_154 Private designViewNote As NotesDocument

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Sub new()Sub new( db As NotesDatabase)

操作Domino数据库的设计元素_sed_154 Dim designViewTemplateNote As NotesDocument

操作Domino数据库的设计元素_sed_154 Dim tempView As NotesView

操作Domino数据库的设计元素_sed_154 Dim designCollectionNote As NotesDocument

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 'get a view any view will do

操作Domino数据库的设计元素_sed_154 Set tempView = db.views(0)

操作Domino数据库的设计元素_sed_154 Set designViewTemplateNote = db.getDocumentByUnid( tempView.universalID)

操作Domino数据库的设计元素_sed_154 Set designViewNote = designViewTemplateNote.copyToDatabase(db)

操作Domino数据库的设计元素_sed_154 Set designCollectionNote = db.getdocumentbyid( "FFFF0020")

操作Domino数据库的设计元素_sed_154 'strip off all the items

操作Domino数据库的设计元素_sed_154 Forall item In designViewNote.items

操作Domino数据库的设计元素_sed_154 item.remove

操作Domino数据库的设计元素_sed_154 End Forall

操作Domino数据库的设计元素_sed_154 designCollectionNote.copyAllItems designViewNote

操作Domino数据库的设计元素_sed_154 designViewNote.replaceItemValue DESIGN_NOTE_NAME_ITEM, "(TemporaryDesignViewNote" & designViewNote.noteID & ")"

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_172 End Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Sub delete()Sub delete

操作Domino数据库的设计元素_sed_154 If Not designViewNote.isNewNote Then

操作Domino数据库的设计元素_sed_154 designViewNote.remove True

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_172 End Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function isAbstractClass()Function isAbstractClass As Integer

操作Domino数据库的设计元素_sed_154 isAbstractClass = False

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_164操作Domino数据库的设计元素_edn_165 Private Function getDocuments()Function getDocuments( classtype As Integer) As Variant

操作Domino数据库的设计元素_sed_154 Dim view As NotesView

操作Domino数据库的设计元素_sed_154 Dim note As NotesDocument

操作Domino数据库的设计元素_sed_154 Dim count As Integer

操作Domino数据库的设计元素_sed_154 Dim results() As Variant

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 'reset the design view note so it refreshs

操作Domino数据库的设计元素_sed_154 designViewNote.removeItem "$Collection"

操作Domino数据库的设计元素_sed_154 designViewNote.replaceItemValue "$Collection", ""

操作Domino数据库的设计元素_sed_154 'set the classtype

操作Domino数据库的设计元素_sed_154 designViewNote.replaceItemValue "$FormulaClass", Cstr(classType)

操作Domino数据库的设计元素_sed_154 designViewNote.save True, True

操作Domino数据库的设计元素_sed_154 Set view = db.getView( designViewNote.getItemValue( DESIGN_NOTE_NAME_ITEM)(0))

操作Domino数据库的设计元素_sed_154 view.refresh

操作Domino数据库的设计元素_sed_154 Set note = view.getFirstDocument

操作Domino数据库的设计元素_sed_154 Do While Not note Is Nothing

操作Domino数据库的设计元素_sed_154 If note.noteID <> designViewNote.noteID Then 'Don't return the temp design view

操作Domino数据库的设计元素_sed_154 Redim Preserve results(count) As Variant

操作Domino数据库的设计元素_sed_154 Set results(count) = note

操作Domino数据库的设计元素_sed_154 count = count + 1

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 Set note = view.getNextDocument( note)

操作Domino数据库的设计元素_sed_154 Loop

操作Domino数据库的设计元素_sed_154 Delete view

操作Domino数据库的设计元素_sed_154 If count > 0 Then

操作Domino数据库的设计元素_sed_154 getDocuments = results

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_172 End Function

操作Domino数据库的设计元素_sed_518End Class

创建DatabaseDesign对象的方法

操作Domino数据库的设计元素_edn操作Domino数据库的设计元素_sed_02createDatabaseDesign方法

操作Domino数据库的设计元素_sed_02操作Domino数据库的设计元素_ednPublic Function createDatabaseDesign()Function createDatabaseDesign( db As NotesDatabase ) As DatabaseDesign

操作Domino数据库的设计元素_sed_154 'This function should be called to instantiate

操作Domino数据库的设计元素_sed_154 On Error Goto errhandle

操作Domino数据库的设计元素_sed_154 Dim session As New notessession

操作Domino数据库的设计元素_sed_154 If FLAG_NEVER_USE_NATIVE_API_CALLS Then

操作Domino数据库的设计元素_sed_154 Set createDatabaseDesign = New PlatformIndependentDatabaseDesign( db)

操作Domino数据库的设计元素_sed_154 Else

操作Domino数据库的设计元素_sed_154 Select Case session.platform

操作Domino数据库的设计元素_sed_154 Case "Windows/32":

操作Domino数据库的设计元素_sed_154 Set createDatabaseDesign = New Win32DatabaseDesign( db)

操作Domino数据库的设计元素_sed_154%REM

操作Domino数据库的设计元素_sed_154 This is commented out because getting it to work on the mac was problematic

操作Domino数据库的设计元素_sed_154 Case "Macintosh":

操作Domino数据库的设计元素_sed_154 Set createDatabaseDesign = New MacDatabaseDesign( db)

操作Domino数据库的设计元素_sed_154%END REM

操作Domino数据库的设计元素_sed_154 Case Else:

操作Domino数据库的设计元素_sed_154 On Error Goto 0

操作Domino数据库的设计元素_sed_154 Set createDatabaseDesign = New PlatformIndependentDatabaseDesign( db)

操作Domino数据库的设计元素_sed_154 End Select

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154done:

操作Domino数据库的设计元素_sed_154 Exit Function

操作Domino数据库的设计元素_sed_154errhandle:

操作Domino数据库的设计元素_sed_154 Set createDatabaseDesign = New PlatformIndependentDatabaseDesign( db)

操作Domino数据库的设计元素_sed_154 Resume done

操作Domino数据库的设计元素_sed_518End Function

我们可以通过类中提供的属性和方法来操作数据库中的设计元素,比如:

1.使用createDatabaseDesign方法来获取一个DatabaseDesign对象


操作Domino数据库的设计元素_ios_03Dim session as New NotesSession

操作Domino数据库的设计元素_ios_03Dim db as NotesDatabase

操作Domino数据库的设计元素_ios_03Dim dbDesign as DatabaseDesign

操作Domino数据库的设计元素_ios_03Set db = session.currentDatabase

操作Domino数据库的设计元素_ios_03Set dbDesign = createDatabaseDesign( db)

2.通过formDocuments属性来获取所有表单

操作Domino数据库的设计元素_ios_03Dim forms as variant

操作Domino数据库的设计元素_ios_03forms = dbDesign.formDocuments

操作Domino数据库的设计元素_ios_03

3.打印出表单的标题

操作Domino数据库的设计元素_ios_03If Not IsEmpty( forms) Then

操作Domino数据库的设计元素_ios_03Forall formdoc In forms

操作Domino数据库的设计元素_ios_03print formdoc.getItemValue( "$Title")(0)

操作Domino数据库的设计元素_ios_03end Forall

操作Domino数据库的设计元素_ios_03

4.通过方法getFormByName获取到指定的表单

操作Domino数据库的设计元素_ios_03Dim form as NotesDocument

操作Domino数据库的设计元素_ios_03set form = dbDesign.getFormByName( "MyForm")

操作Domino数据库的设计元素_ios_03If Not form Is Nothing Then

操作Domino数据库的设计元素_ios_03'do something with form here

操作Domino数据库的设计元素_ios_03End If

操作Domino数据库的设计元素_ios_03

5.使用 NotesDocument.copyToDatabase 方法可以拷贝设计元素到其他数据库中

操作Domino数据库的设计元素_ios_03dim otherdb as new NotesDatabase( "server", "file.nsf")

操作Domino数据库的设计元素_ios_03set form = dbDesign.getFormByName( "FormToCopy")

操作Domino数据库的设计元素_ios_03If Not form Is Nothing Then

操作Domino数据库的设计元素_ios_03dim formcopy as NotesDocument

操作Domino数据库的设计元素_ios_03set formcopy = form.copytodatabase(otherdb)

操作Domino数据库的设计元素_ios_03call formcopy.save(true, true)

操作Domino数据库的设计元素_ios_03End If

操作Domino数据库的设计元素_ios_03

下面一段代码实现使用服务器上指定邮箱模板来更新本地PersonalMailBox的个人邮箱设计:

操作Domino数据库的设计元素_sed_02操作Domino数据库的设计元素_ednSub Click()Sub Click(Source As Button)

操作Domino数据库的设计元素_sed_154 Dim ss As New NotesSession,ws As New NotesUIWorkspace

操作Domino数据库的设计元素_sed_154 Dim db As NotesDatabase,doc As NotesDocument

操作Domino数据库的设计元素_sed_154 Dim docs As Variant

操作Domino数据库的设计元素_sed_154 '得到personalmailbox的路径

操作Domino数据库的设计元素_sed_154 Dim path As String

操作Domino数据库的设计元素_sed_154 path = ss.getenvironmentstring("directory",True)

操作Domino数据库的设计元素_sed_154 path=path+"\PersonalMailBox\"

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 '得到当前用户的帐号ID,例如michaelpang

操作Domino数据库的设计元素_sed_154 namev=ss.UserName

操作Domino数据库的设计元素_sed_154 namev1=Left(namev,Len(namev)-12)

操作Domino数据库的设计元素_sed_154 namev2=Right(namev1,Len(namev1)-3)

操作Domino数据库的设计元素_sed_154 path=path+namev2+".nsf"

操作Domino数据库的设计元素_sed_154 Msgbox(path)

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 Set db = ss.CurrentDatabase

操作Domino数据库的设计元素_sed_154 Set doc = ws.CurrentDocument.Document

操作Domino数据库的设计元素_sed_154 If (Messagebox ("你确定要执行取代设计元素吗?",36,"请确认" ) <> 6 ) Then

操作Domino数据库的设计元素_sed_154 Exit Sub

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 '清空原始系统的设计原色

操作Domino数据库的设计元素_sed_154 Dim TargetDB As NotesDatabase,TargetDBObj As DatabaseDesign

操作Domino数据库的设计元素_sed_154 Set TargetDB = New NotesDatabase(Local,path)

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_154 'If Not TargetDB.IsOpen Then Messagebox "本地邮箱不能打开!!":UpdateBookmark = False :Goto TheEnd

操作Domino数据库的设计元素_sed_154 Set TargetDBObj = CreateDatabaseDesign(TargetDB)

操作Domino数据库的设计元素_sed_154 docs = TargetDBObj.Alldesigndocuments

操作Domino数据库的设计元素_sed_154 If Not Isempty( docs) Then

操作Domino数据库的设计元素_sed_154 Print "准备删除原始设计文件,共计 " + Cstr(Ubound(docs)+1) " 份文件!!"

操作Domino数据库的设计元素_sed_154 Forall x In docs

操作Domino数据库的设计元素_sed_154 x.Remove(True)

操作Domino数据库的设计元素_sed_154 End Forall

操作Domino数据库的设计元素_sed_154 Print "完成刪除原系统设计文件!!"

操作Domino数据库的设计元素_sed_154 Else

操作Domino数据库的设计元素_sed_154 Print "原系统已无设计文件!!!"

操作Domino数据库的设计元素_sed_154 End If

操作Domino数据库的设计元素_sed_154 '取得新系统设计文件

操作Domino数据库的设计元素_sed_154 Dim SourceDB As NotesDatabase,SourceDBObj As DatabaseDesign

操作Domino数据库的设计元素_sed_154 Set SourceDB = New NotesDatabase("testmail02/testserver","mail\michaelpang .nsf")

操作Domino数据库的设计元素_sed_154 'If Not SourceDB.IsOpen Then Print "Source DataBase can't open!!":UpdateBookmark = False :Goto TheEnd

操作Domino数据库的设计元素_sed_154 Set SourceDBObj = CreateDatabaseDesign(SourceDB)

操作Domino数据库的设计元素_sed_154 docs = SourceDBObj.Alldesigndocuments

操作Domino数据库的设计元素_sed_154 Print "准备更新系统设计文件,共技 " + Cstr(Ubound(docs)+1) " 份文件!!"

操作Domino数据库的设计元素_sed_154 '

操作Domino数据库的设计元素_sed_154 '复制设计到目的系统

操作Domino数据库的设计元素_sed_154 Forall y In docs

操作Domino数据库的设计元素_sed_154 Call y.CopyToDatabase(TargetDB)

操作Domino数据库的设计元素_sed_154 End Forall

操作Domino数据库的设计元素_sed_154 Messagebox "完成复制设计文件!!"

操作Domino数据库的设计元素_sed_154TheEnd:

操作Domino数据库的设计元素_sed_154 Exit Sub

操作Domino数据库的设计元素_sed_154

操作Domino数据库的设计元素_sed_518End Sub

操作Domino数据库的设计元素_ios_03

注意:1.使用这段代码的时候,需要将服务器上的模板的软删除功能关闭(”数据库---属性---高级---允许软删除“前的复选框勾掉),否则

多人同时运行这段代码的时候会出现“Notes error:someone else modified this document at the same time”的错误提示。

2.上面的方法把原来的设计删除了,又拷贝了新的设计,这样设计的文档ID就变了。