<?xml version="1.0" encoding="windows-1250"?>
<rss version="2.0"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:admin="http://webns.net/mvcb/"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel>
<title>mmi consult - tipps und tricks blog</title>
<description>mmi consult gmbh - tipps und tricks blog</description>
<link>http://www.mmi-consult.de/FAQ/</link>
<language>de-de</language>
<lastBuildDate>Thu, 26 Apr 2012 20:45:35 +0200</lastBuildDate>
<item>
<title>RichText Felder eines im UI geöffneten Dokumentes im BackEnd modifizieren</title>
<pubDate>Thu, 26 Apr 2012 20:45:35 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/richtext-felder-eines-im-ui-geoeffneten-dokumentes-im-backend-modifizieren.htm</link>
<category>LotusScript</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/richtext-felder-eines-im-ui-geoeffneten-dokumentes-im-backend-modifizieren.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/richtext-felder-eines-im-ui-geoeffneten-dokumentes-im-backend-modifizieren.htm</guid>
<content:encoded><![CDATA[ Anders als bei sonstigen Feldern verhalten sich Änderungen von NotesRichTextItems durch BackEnd Klassen derart, dass diese nicht unmittelbar im FrontEnd UserInterface des Benutzer aktualisiert werden. Um den im BackEnd geänderten Inhalt des RichText Feldes anzuzeigen ist dieses Dokument zu schließen und sofort wieder zu öffnen (ein leichtes "Flackern" am UserInterface wird unvermeidbar sein). <br /> <br /> Der hierfür notwendige Code könnte z.B. in einer Maskenaktion untergebracht sein:  <br /> <br /><pre><br /> '(Globals):  <br /> <br />Option Public <br /> <br />%INCLUDE "lsprcval.lss" <br /> <br />'Refresh:  <br /> <br />Option Declare <br /> <br /> <br />Sub Click(Source As Button)<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim ws &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As New NotesUIWorkspace<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim s &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As New NotesSession<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim doc &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As NotesDocument<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim rtItem &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As NotesRichTextItem<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;On Error Goto ErrorBubble<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Set doc = ws.CurrentDocument.Document<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Set rtItem = doc.GetFirstItem ("Body")<br />  &nbsp; &nbsp; &nbsp; &nbsp;If Not rtItem Is Nothing Then<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call rtItem.AppendText ("Hallo Welt")<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call doc.Save (True, True)<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call RefreshRTF (s, ws)<br />  &nbsp; &nbsp; &nbsp; &nbsp;End If<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> SingleExit:<br />  &nbsp; &nbsp; &nbsp; &nbsp;Exit Sub<br /> '-----------------------------------------------------------------------------------------------------------------------------------------------------<br /> ErrorBubble:<br />  &nbsp; &nbsp; &nbsp; &nbsp;'Unexpected Error: Bubble up to caller or user<br />  &nbsp; &nbsp; &nbsp; &nbsp;Error Err, Error &amp; Chr(13) &amp; { --> in } &amp; Getthreadinfo (LSI_THREAD_PROC) &amp; &nbsp;{ : } &amp; Erl<br />  &nbsp; &nbsp; &nbsp; &nbsp;Resume SingleExit &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> End Sub <br /> <br />Sub RefreshRTF (s As NotesSession, ws As NotesUIWorkspace)<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim uidoc &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As NotesUIDocument<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim docReload &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As NotesDocument &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim strNoteid &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As String<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim blnRemoveSaveOptions &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As Boolean &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim blnInPreview &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Boolean<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim blnEditMode &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As Boolean<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Const FIELD_SAVEOPTIONS = "SaveOptions"<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;On Error Goto ErrorBubble<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;If (s Is Nothing) Or (ws Is Nothing) Then Exit Sub<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Set uidoc = ws.CurrentDocument<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;If uiDoc Is Nothing Then Exit Sub<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;' preserve current state data<br />  &nbsp; &nbsp; &nbsp; &nbsp;blnInPreview &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; uidoc.InPreviewPane<br />  &nbsp; &nbsp; &nbsp; &nbsp;blnEditMode &nbsp; &nbsp; &nbsp; &nbsp; = uidoc.EditMode &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;strNoteid &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = uidoc.Document.noteid &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;' get this document out of memory<br />  &nbsp; &nbsp; &nbsp; &nbsp;If Not blnInPreview Then<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnEditMode Then<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Not uidoc.Document.HasItem (FIELD_SAVEOPTIONS) Then blnRemoveSaveOptions = True<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call uidoc.Document.ReplaceitemValue (FIELD_SAVEOPTIONS, "0")<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call uidoc.Close<br />  &nbsp; &nbsp; &nbsp; &nbsp;End If<br />  &nbsp; &nbsp; &nbsp; &nbsp;Delete uidoc<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;' reload document to it's original state<br />  &nbsp; &nbsp; &nbsp; &nbsp;Set docReload = s.currentdatabase.getdocumentbyid(strNoteid) <br />  &nbsp; &nbsp; &nbsp; &nbsp;If blnRemoveSaveOptions Then <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call docReload.RemoveItem (FIELD_SAVEOPTIONS)<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call docReload.Save(True , False)<br />  &nbsp; &nbsp; &nbsp; &nbsp;End If<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;If blnInPreview Then<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' refresh in place<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Delete docReload<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call ws.ReloadWindow<br />  &nbsp; &nbsp; &nbsp; &nbsp;Else<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call ws.EditDocument(blnEditMode, docReload) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;End If<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> SingleExit:<br />  &nbsp; &nbsp; &nbsp; &nbsp;Exit Sub<br /> '-----------------------------------------------------------------------------------------------------------------------------------------------------<br /> ErrorBubble:<br />  &nbsp; &nbsp; &nbsp; &nbsp;'Unexpected Error: Bubble up to caller or user<br />  &nbsp; &nbsp; &nbsp; &nbsp;Error Err, Error &amp; Chr(13) &amp; { --> in } &amp; Getthreadinfo (LSI_THREAD_PROC) &amp; &nbsp;{ : } &amp; Erl<br />  &nbsp; &nbsp; &nbsp; &nbsp;Resume SingleExit &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> End Sub <br /></pre> <br />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/richtext-felder-eines-im-ui-geoeffneten-dokumentes-im-backend-modifizieren.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/richtext-felder-eines-im-ui-geoeffneten-dokumentes-im-backend-modifizieren.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Null Pointer Exception in Anwendungsfenster des Domino Designer für Eclipse</title>
<pubDate>Mon, 2 Apr 2012 22:23:49 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/null-pointer-exception-in-anwendungsfenster-des-domino-designer-für-eclipse.htm</link>
<category>Fehlerbehandlung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/null-pointer-exception-in-anwendungsfenster-des-domino-designer-für-eclipse.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/null-pointer-exception-in-anwendungsfenster-des-domino-designer-für-eclipse.htm</guid>
<content:encoded><![CDATA[ Heute ereilte mich wieder einmal eines der unerfreulichen Erlebnisse mit dem Domino Designer. Vorausgegangen war eine Replikation aus dem Designer eines lokalen Entwicklungsstandes mit dem Entwicklungsserver, den der Designer nach Abschluß der Replikation mit einem Crash quittierte. Ein Neustart war nicht möglich, NSD half auch nicht weiter. Erst nach einem Windows-Neustart konnte ich den Lotus Notes Client und später auch den Domino Designer wieder starten. <br /> <br /> Leider zeigte der Designer im Anwendungsfenster (typischerweise links außen positioniert) hartnäckig folgende Fehlermeldung. <br /> <img  alt="Image:Null Pointer Exception in Anwendungsfenster des Domino Designer für Eclipse" border="0" src="http://www.mmi-consult.de/FAQ/dx/null-pointer-exception-in-anwendungsfenster-des-domino-designer-für-eclipse.htm/content/M2?OpenElement" /><br /> <br /> Das Arbeiten mit Datenbanken (z.B. über den Paket Explorer) war zwar noch möglich, doch extrem unhandlich. Lösungen im Internet waren nicht zu finden, sodass ich wieder mit Eclipse Dateien "spielte", <br /> <br /> Erfolg brachte die Datei <br /> <pre> <br /> <NotesDataDir>workspace\.metadata\.plugins\com.ibm.designer.domino.ide.resources\wsInfo.xml <br /> </pre> <br /> <br /> Diese Datei hatte offensichtlich einige Zeilen "verloren". Der Ersatz dieser Datei aus einem früheren Backup (welches ich aus ähnlichen schlechten Erfahrungen mit ähnlichen Situationen regelmäßig mache) hat das Grundsatzproblem gelöst. Allerdings gingen hierdurch einzelne Lesezeichen im Anwendungsfenster verloren, was jedoch weder einen echten Datenverlust oder größeren Produktivitätsverlust zur Folge hatte. -- Glück gehabt! <br />   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/null-pointer-exception-in-anwendungsfenster-des-domino-designer-für-eclipse.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/null-pointer-exception-in-anwendungsfenster-des-domino-designer-für-eclipse.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Datenbankrollen stets aktuell zum Code halten</title>
<pubDate>Mon, 2 Apr 2012 13:06:42 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/datenbankrollen-stets-aktuell-zum-code-halten.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/datenbankrollen-stets-aktuell-zum-code-halten.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/datenbankrollen-stets-aktuell-zum-code-halten.htm</guid>
<content:encoded><![CDATA[ Datenbankentwickler können in Domino Datenbanken Rollen einsetzen, um bestimmte anwendungsspezifische Funktionen zu steuern. Leider kann es z.B. beim Kopieren von Schablonen oder Datenbanken geschehen, dass die ACL nicht mit kopiert wird und die Rollendefinitionen verloren gehen, Eine nachträgliche (erneute) Einrichtung der Rollen durch den Domino Administrator ist zwar möglich, setzt jedoch eine saubere Dokumentation der verwendeten Rollen voraus (unter Berücksichtigung der Groß-/Kleinschreibung der Rollennamen) damit die gewünschte Funktion gewährleistet ist. <br /> <br />Um diesem Problem aus dem Weg zu gehen, setze ich in Datenbanken mit Rollen stets das nachfolgende Datenbankskript ein (in etwas abgewandelter / detaillierter Form) ein, um durch Code des Anwendungsentwicklers (der wohl seine Rollennamen kennen sollte) die ACL in der Laufzeitumgebung zu analysieren und ggf. zu pflegen. Fehlen Rollendefinitionen (und sind gar überflüssige enthalten) und Ist der aktuelle Benutzer mit Manager Berechtigung ausgestattet, so pflegt dieses Skript direkt die ACL, ansonsten wird mindesten ein Hinweis ausgegeben. <br /> <br />Hat sich in der Praxis einfach bewährt !!! <br /> <br /><pre> <br />' <br />' This Database Script insures up-to-date database Roles as required/assumed by the developer <br />'  <br />' Note: Update constant in PostOpen to match your application <br />' <br />' Author: Manfred.Meise@mmi-consult.de (http://www.mmi-consult.de/faq) <br />' <br /> <br />Sub Postopen(Source As Notesuidatabase) <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; Const strRequiredRoles = "&#91;Configuration&#93;:&#91;EditAllDocs&#93;:&#91;TestRolle&#93;" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'Required Roles in application <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; Call VerifyRoles (Source.Database, Split(strRequiredRoles, ":")) <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />End Sub <br /> <br />Sub VerifyRoles (db As NotesDatabase, strRequireRoles As Variant) <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim vRolesCurrent &nbsp; &nbsp; &nbsp; &nbsp;As Variant <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim vRolesMissing &nbsp; &nbsp; &nbsp; &nbsp;As Variant <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim vRolesObsolete &nbsp; &nbsp; &nbsp; &nbsp;As Variant <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim strErrorMsg &nbsp; &nbsp; &nbsp; &nbsp; As String <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; Const MB_ICONEXCLAMATION = 48 <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; '--------------------------------------------- <br />&nbsp; &nbsp; &nbsp; &nbsp; ' Specify and Verify Roles in ACL <br />&nbsp; &nbsp; &nbsp; &nbsp; '--------------------------------------------- <br />&nbsp; &nbsp; &nbsp; &nbsp; If Ubound(strRequireRoles) >= 0 Then <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' Get list of missing or obsolete roles <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vRolesCurrent &nbsp; &nbsp; &nbsp; &nbsp;db.acl.Roles <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vRolesMissing &nbsp; &nbsp; &nbsp; &nbsp; = Fulltrim(Arrayreplace (strRequireRoles, vRolesCurrent, "")) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vRolesObsolete &nbsp; &nbsp; &nbsp; &nbsp;Fulltrim(Arrayreplace (vRolesCurrent, strRequireRoles, "")) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If (vRolesMissing(0) <> "") Or (vRolesObsolete(0) <> "") Then <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Prepare resulting message <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If vRolesMissing(0) <> "" Then  <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strErrorMsg = "Fehlende ACL-Rollen in Datenbank:" &amp; _ <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Chr(10) &amp; Join (vRolesMissing, Chr(10)) &amp; Chr(10) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If (vRolesObsolete(0) <> "") Then <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If strErrorMsg <> "" Then strErrorMsg = strErrorMsg &amp; Chr(10) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strErrorMsg = "Überflüssige ACL-Rollen in Datenbank:" &amp; _ <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Chr(10) &amp; Join (vRolesObsolete, Chr(10)) &nbsp;&amp; Chr(10) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Roles are missing in ACL of this database <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If db.CurrentAccessLevel = ACLLEVEL_MANAGER Then <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'We can add missing roles <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call setRoles (db, Arrayunique(strRequireRoles)) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Messagebox strErrorMsg &amp; "ACL wurden automatisch angepasst", MB_ICONEXCLAMATION,"" <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Else <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Notify administrator to add missing roles <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Messagebox strErrorMsg &amp; "Bitte den Systemadministrator benachrichtigen", MB_ICONEXCLAMATION,"" <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If <br />&nbsp; &nbsp; &nbsp; &nbsp; End If &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />End Sub <br /> <br /> <br />Sub SetRoles (db As NotesDatabase, roles As Variant) <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim acl &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As NotesACL <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim bNeedToSave &nbsp; &nbsp; &nbsp; &nbsp; As Boolean <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim vCurrentRoles &nbsp; &nbsp; &nbsp; &nbsp; As Variant <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim vTargetRoles &nbsp; &nbsp; &nbsp; &nbsp; As Variant <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; bNeedToSave &nbsp; &nbsp; &nbsp; &nbsp; = False <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; vTargetRoles &nbsp; &nbsp; &nbsp; &nbsp; = Roles <br />&nbsp; &nbsp; &nbsp; &nbsp; vCurrentRoles &nbsp; &nbsp; &nbsp; &nbsp; = db.ACL.Roles <br />&nbsp; &nbsp; &nbsp; &nbsp; If Not Isarray (vCurrentRoles) Then Redim vCurrentRoles(0) <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; Set acl = db.ACL <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Add missing roles <br />&nbsp; &nbsp; &nbsp; &nbsp; Forall r In vTargetRoles <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If Isnull (Arraygetindex(vCurrentRoles, r)) Then <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call acl.AddRole (r) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bNeedToSave = True <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; End Forall <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Remove obsolete Roles <br />&nbsp; &nbsp; &nbsp; &nbsp; Forall r In vCurrentRoles <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If Not r = "" Then &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If Isnull (Arraygetindex(vTargetRoles, r)) Then <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call acl.DeleteRole (r) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bNeedToSave = True <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If <br />&nbsp; &nbsp; &nbsp; &nbsp; End Forall <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; If bNeedToSave Then Call acl.Save <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />SingleExit: <br />&nbsp; &nbsp; &nbsp; &nbsp; Exit Sub <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />End Sub <br /></pre>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/datenbankrollen-stets-aktuell-zum-code-halten.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/datenbankrollen-stets-aktuell-zum-code-halten.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Entwicklercamp 2012: Security in IBM Lotus Notes Anwendungen</title>
<pubDate>Wed, 28 Mar 2012 16:24:41 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/entwicklercamp-2012-security-in-ibm-lotus-notes-anwendungen.htm</link>
<category>EntwicklerCamp</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/entwicklercamp-2012-security-in-ibm-lotus-notes-anwendungen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/entwicklercamp-2012-security-in-ibm-lotus-notes-anwendungen.htm</guid>
<content:encoded><![CDATA[ Das diesjährige <a href=http://www.entwicklercamp.de/ target=_new><span style="text-decoration:underline">Entwicklercamp</span></a> vom 26.03.2012 bis 28.03.2012 in Gelsenkirchen verzeichnete mit ca. 220 Teilnehmern erneut den großen Zuspruch der "Kenner und Könner der gelben Fraktion". Im Rahmen von Fachvorträgen wurden neue Technologien und Techniken &nbsp;vorgestellt, sowie in zahlreichen Diskussionen am Rande die eigenen Erfahrungen mit Gleichgesinnten ausgetauscht und neue Anregungen für die eigenen Entwicklungsarbeiten an Lotus Domino geboren. <br /> <br /> Einer unserer Beiträge zu dieser Veranstaltung stellt einen Überblick verschiedener <strong>Elemente von Domino Infrastrukturen und -Anwendungen zur Umsetzung von IT Sicherheit </strong>dar. <br /> <a href="http://www.mmi-consult.de/FAQ/dx/T4S1-EC12 Teaser.png/$file/T4S1-EC12 Teaser.png" rel="lytebox" title="" ><img  src="http://www.mmi-consult.de/FAQ/dx/T4S1-EC12 Teaser.png/$file/T4S1-EC12 Teaser.png" class="lytelink" &nbsp;alt="" /></a> <br /> Denjenigen, die nicht in Gelsenkirchen dabei sein konnten, stellen wir das verwendete <a href="http://www.mmi-consult.de/FAQ/dx/T4S1 - Security in IBM Lotus Notes Anwendungen.pdf/$file/T4S1 - Security in IBM Lotus Notes Anwendungen.pdf" title="T4S1 - Security in IBM Lotus Notes Anwendungen.pdf"T4S1 - Security in IBM Lotus Notes Anwendungen.pdf/>Präsentationsmaterial </a>Präsentationsmaterial sowie die verwendeten <a href="http://www.mmi-consult.de/FAQ/dx/T4S1 - Domino Security.zip/$file/T4S1 - Domino Security.zip" title="T4S1 - Domino Security.zip"T4S1 - Domino Security.zip/>Beispieldatenbanken </a>gern zur Verfügung.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/entwicklercamp-2012-security-in-ibm-lotus-notes-anwendungen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/entwicklercamp-2012-security-in-ibm-lotus-notes-anwendungen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Entwicklercamp 2012: IBM oneUI + myTheme = myUI</title>
<pubDate>Wed, 28 Mar 2012 16:09:52 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/entwicklercamp-2012-ibm-oneui-mytheme-myui.htm</link>
<category>EntwicklerCamp</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/entwicklercamp-2012-ibm-oneui-mytheme-myui.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/entwicklercamp-2012-ibm-oneui-mytheme-myui.htm</guid>
<content:encoded><![CDATA[ Das diesjährige <a href=http://www.entwicklercamp.de/ target=_new><span style="text-decoration:underline">Entwicklercamp</span></a> vom 26.03.2012 bis 28.03.2012 in Gelsenkirchen verzeichnete mit ca. 220 Teilnehmern erneut den großen Zuspruch der "Kenner und Könner der gelben Fraktion". Im Rahmen von Fachvorträgen wurden neue Technologien und Techniken &nbsp;vorgestellt, sowie in zahlreichen Diskussionen am Rande die eigenen Erfahrungen mit Gleichgesinnten ausgetauscht und neue Anregungen für die eigenen Entwicklungsarbeiten an Lotus Domino geboren. <br /> <br /> Einer unserer Beiträge zu dieser Veranstaltung stellt eine <strong>Einführung in XPages Styling mittels Motiven und IBM oneUI</strong> dar. <br /> <a href="http://www.mmi-consult.de/FAQ/dx/T1S4-EC12 Teaser.png/$file/T1S4-EC12 Teaser.png" rel="lytebox" title="" ><img  src="http://www.mmi-consult.de/FAQ/dx/T1S4-EC12 Teaser.png/$file/T1S4-EC12 Teaser.png" class="lytelink" &nbsp;alt="" /></a> <br /> Denjenigen, die nicht in Gelsenkirchen dabei sein konnten, stellen wir das verwendete <a href="http://www.mmi-consult.de/FAQ/dx/T1S4 - IBM oneUI + MyTheme = myUI.pdf/$file/T1S4 - IBM oneUI + MyTheme = myUI.pdf" title="T1S4 - IBM oneUI + MyTheme = myUI.pdf"T1S4 - IBM oneUI + MyTheme = myUI.pdf/>Präsentationsmaterial </a>sowie die verwendeten <a href="http://www.mmi-consult.de/FAQ/dx/T1S4 - Xpage Styling - dbs.zip/$file/T1S4 - Xpage Styling - dbs.zip" title="T1S4 - Xpage Styling - dbs.zip"/>Beispieldatenbanken</a> gern zur Verfügung.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/entwicklercamp-2012-ibm-oneui-mytheme-myui.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/entwicklercamp-2012-ibm-oneui-mytheme-myui.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Bug im Domino Directory Template 8.5.x</title>
<pubDate>Sat, 28 Jan 2012 12:46:14 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/bug-im-domino-directory-template-8.5.x.htm</link>
<category>Systemadministration</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/bug-im-domino-directory-template-8.5.x.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/bug-im-domino-directory-template-8.5.x.htm</guid>
<content:encoded><![CDATA[ <strong>Fehlverhalten:</strong> Beim Kopieren von Dokumenten im Domino Directory gelangt man in eine Endlosschleife. Nach Abbruch der "Einfügen" Operation sind jedoch alle kopierten Dokumente eingefügt worden. <br />  <br /><strong>Ursache:</strong><br /> Leider handelt es sich hier um einen kleinen (seit langem bekannten und einfach zu behebenden Fehler) in der Systemschablone "pubnames.ntf" der IBM. Ein Korrektur ist einfach und schnell mit Hilfe des Domino Designers gemacht (ACHTUNG: korrigierte Schablone auf alle Server replizieren und ggf. nach einem Serverupdate erneut implementieren - sofern man nicht sowieso eine eigene Schablone mit zusätzlichen Erweiterungen fährt). <br />  <br /><strong>Behebung:</strong><br /> Die erforderliche Korrektur habe ich in unserem Beitrag zur Aktualisierung der Feiertage beschrieben: <a href="http://www.mmi-consult.de/FAQ/dx/Feiertage-im-Domino-Directory-kopieren.htm" title="Feiertage-im-Domino-Directory-kopieren.htm"/>Feiertage im Domino Directory kopieren</a>.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/bug-im-domino-directory-template-8.5.x.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/bug-im-domino-directory-template-8.5.x.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Feiertage im Domino Directory kopieren</title>
<pubDate>Wed, 4 Jan 2012 18:58:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/Feiertage-im-Domino-Directory-kopieren.htm</link>
<category>Datenbankpflege</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/Feiertage-im-Domino-Directory-kopieren.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/Feiertage-im-Domino-Directory-kopieren.htm</guid>
<content:encoded><![CDATA[ Administratoren erstellen neue Dokumente im Domino Directory gern und oft durch kopieren und anschließendes modifizieren. Leider werden hierdurch Feiertagsdokumente ungültig, da sie in einem Feld "APPTUNID" die eigene DocumentUnique-ID speichern. Damit auch Feiertagsdokumente kopiert werden dürfen, oder zuvor durch Kopiervorgänge "zerstörte" Dokumente repariert werden können, ist der vorhandene Agent " RenamePastedAccounts" im Domino Directory wie folgt anzupassen / zu erweitern, damit diese von Benutzern in ihre Mailfiles importiert werden können.<br /> <pre> <strong><br /> Option</strong> <strong>Public</strong> <strong><br /> Option</strong> <strong>Declare</strong> <strong><br /> <br /> 'Begin DNT</strong> <strong><br /> Const</strong> ACCT_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <em>"AccountName"</em> <strong><br /> Const</strong> ACCT_TYPE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <em>"Account"</em> <strong><br /> Const</strong> HOLIDAY_TYPE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= <em>"Holiday"</em> <strong><br /> Const</strong> HOLIDAY_ID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= <em>"APPTUNID"</em> <strong><br /> Const</strong> TYPE_FIELD &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= <em>"Type"</em> <strong><br /> 'End DNT</strong> <strong><br /> <br /> Sub</strong> Initialize <br />  &nbsp; &nbsp; <strong>Dim</strong> ws <strong>As</strong> <strong>New</strong> NotesUIWorkspace <br />  &nbsp; &nbsp; <strong>Dim</strong> uidb <strong>As</strong> NotesUIDatabase <br />  &nbsp; &nbsp; <strong>Dim</strong> db <strong>As</strong> NotesDatabase <br />  &nbsp; &nbsp; <strong>Dim</strong> dc <strong>As</strong> NotesDocumentCollection <br />  &nbsp; &nbsp; <strong>Dim</strong> doc <strong>As</strong> NotesDocument <br />  &nbsp; &nbsp; <strong>Dim</strong> strName <strong>As</strong> <strong>String</strong> <br />  &nbsp; &nbsp; <strong>Dim</strong> str1, str2 <strong>As</strong> <strong>String</strong> <br />  &nbsp; &nbsp; <br />  &nbsp; &nbsp; str1 = <em>"Copy of "</em> <br />  &nbsp; &nbsp; <br />  &nbsp; &nbsp; <strong>Set</strong> uidb = ws.currentdatabase <br />  &nbsp; &nbsp; <strong>Set</strong> db = uidb.Database <br />  &nbsp; &nbsp; <strong>Set</strong> dc = db.UnprocessedDocuments <br />  &nbsp; &nbsp; <strong>Set</strong> doc = dc.getfirstdocument <br />  &nbsp; &nbsp; <strong>While</strong> <strong>Not</strong> doc <strong>Is</strong> <strong>Nothing</strong> <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Select</strong> <strong>Case</strong> doc.getitemvalue(TYPE_FIELD)(<em>0</em>) <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Case</strong> ACCT_TYPE <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strName = doc.getitemvalue(ACCT_NAME)(<em>0</em>) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Call</strong> doc.ReplaceItemValue(ACCT_NAME, str1 + strName) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Call</strong> doc.save(<strong>True</strong>, <strong>False</strong>) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Case</strong> HOLIDAY_TYPE <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Call</strong> doc.ReplaceItemValue (HOLIDAY_ID, doc.Universalid) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Call</strong> doc.save(<strong>True</strong>, <strong>False</strong>) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>End</strong> <strong>Select</strong> <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Set</strong> doc = dc.getnextdocument(doc) <br />  &nbsp; &nbsp; <strong>Wend</strong> <strong><br /> <br /> End</strong> <strong>Sub</strong> <strong><br /> </pre></strong> <br /> <br /> Um defekte Feiertagsdokumente zu reparieren, sind diese danach auszuschneiden/einzufügen.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/Feiertage-im-Domino-Directory-kopieren.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/Feiertage-im-Domino-Directory-kopieren.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Bearbeitung von RichTextItems bringt Laufzeitfehler</title>
<pubDate>Fri, 2 Dec 2011 08:19:49 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/bearbeitung-von-richtextitems-bringt-laufzeitfehler.htm</link>
<category>LotusScript</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/bearbeitung-von-richtextitems-bringt-laufzeitfehler.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/bearbeitung-von-richtextitems-bringt-laufzeitfehler.htm</guid>
<content:encoded><![CDATA[ Die programmatische Bearbeitung von RichText-Feldern ist Dank entsprechender LotusScript Klassen möglich, doch oftmals mühselig. So erstellten wir in diesen Tagen auf Kundenwunsch eine Schaltfläche in einer Maske, um in einem RichText Feld eine Tabelle (z.B. eine Agenda) zu erstellen. Diese funktionierte bei neuen Dokumenten wie gewünscht, jedoch nicht in Fällen, wo die Tabelle erst nach dem ersten Speichern des Dokumentes eingefügt werden sollte. <br /> <br /> In diesen Fällen erscheinen Fehlermeldungen wir "Object Variable not set" oder auch "Type mismatch in method AssignClassInstance: AINSTANCE found, Unknown expected"<br /> <img  alt="Image:Bearbeitung von RichTextItems bringt Laufzeitfehler" border="0" src="http://www.mmi-consult.de/FAQ/dx/bearbeitung-von-richtextitems-bringt-laufzeitfehler.htm/content/M2?OpenElement" /><br /> wenn man mit dem Body Feld der Kalendermaske mit folgendem Code: <br /> <br /> <pre> <br /> Sub Click(Source As Button) <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;Dim s &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As New NotesSession <br />  &nbsp; &nbsp;Dim ws &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As New NotesUIWorkspace <br />  &nbsp; &nbsp;Dim uiDoc &nbsp; &nbsp; &nbsp; As NotesUIDocument <br />  &nbsp; &nbsp;Dim doc &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As NotesDocument <br />  &nbsp; &nbsp;Dim body &nbsp; &nbsp; &nbsp; &nbsp;As NotesRichTextItem <br />  &nbsp; &nbsp;Dim rtnav &nbsp; &nbsp; &nbsp; &nbsp; As NotesRichTextNavigator <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;' - Get UI and BE document handles to current document <br />  &nbsp; &nbsp;Set uiDoc &nbsp; &nbsp; &nbsp; &nbsp;= ws.CurrentDocument <br />  &nbsp; &nbsp;Set doc &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= uiDoc.Document <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;' - Create or grab RT item <br />  &nbsp; &nbsp;If doc.IsNewNote Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;doc.Form = "RT Tests" <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set body = New NotesRichTextItem(doc,"Body") <br />  &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set body = doc.GetFirstItem("Body") <br />  &nbsp; &nbsp;End If <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;' - Create a 4 column table in RT item <br />  &nbsp; &nbsp;Dim styles(1 To 4) As NotesRichTextParagraphStyle <br />  &nbsp; &nbsp;rowCount% = 5 <br />  &nbsp; &nbsp;columnCount% = 4 <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;'Column 1 <br />  &nbsp; &nbsp;Set styles(1) = s.CreateRichTextParagraphStyle <br />  &nbsp; &nbsp;styles(1).LeftMargin = 0 <br />  &nbsp; &nbsp;styles(1).FirstLineLeftMargin = 0 <br />  &nbsp; &nbsp;styles(1).RightMargin = RULER_ONE_CENTIMETER* 2 <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;'Column 2 <br />  &nbsp; &nbsp;Set styles(2) = s.CreateRichTextParagraphStyle <br />  &nbsp; &nbsp;styles(2).LeftMargin = 0 <br />  &nbsp; &nbsp;styles(2).FirstLineLeftMargin = 0 <br />  &nbsp; &nbsp;styles(2).RightMargin = RULER_ONE_CENTIMETER* 17 <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;'Column 3 <br />  &nbsp; &nbsp;Set styles(3) = s.CreateRichTextParagraphStyle <br />  &nbsp; &nbsp;styles(3).LeftMargin = 0 <br />  &nbsp; &nbsp;styles(3).FirstLineLeftMargin = 0 <br />  &nbsp; &nbsp;styles(3).RightMargin = RULER_ONE_CENTIMETER* 3 <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;'Column 4 <br />  &nbsp; &nbsp;Set styles(4) = s.CreateRichTextParagraphStyle <br />  &nbsp; &nbsp;styles(4).LeftMargin = 0 <br />  &nbsp; &nbsp;styles(4).FirstLineLeftMargin = 0 <br />  &nbsp; &nbsp;styles(4).RightMargin = RULER_ONE_CENTIMETER* 2.5 <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;Call body.AppendTable(rowCount%, columnCount%,,,styles) <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;' - Populate table - the top row <br />  &nbsp; &nbsp;Set rtnav = body.CreateNavigator <br />  &nbsp; &nbsp;Call rtnav.FindFirstElement(RTELEM_TYPE_TABLECELL) <br />  &nbsp; &nbsp;Call body.BeginInsert(rtnav) <br />  &nbsp; &nbsp;Call body.AppendText("Nr.") <br />  &nbsp; &nbsp;Call body.EndInsert <br />  &nbsp; &nbsp;Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL) <br />  &nbsp; &nbsp;Call body.BeginInsert(rtnav) <br />  &nbsp; &nbsp;Call body.AppendText("Thema") <br />  &nbsp; &nbsp;Call body.EndInsert <br />  &nbsp; &nbsp;Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL) <br />  &nbsp; &nbsp;Call body.BeginInsert(rtnav) <br />  &nbsp; &nbsp;Call body.AppendText("Erlediger") <br />  &nbsp; &nbsp;Call body.EndInsert <br />  &nbsp; &nbsp;Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL) <br />  &nbsp; &nbsp;Call body.BeginInsert(rtnav) <br />  &nbsp; &nbsp;Call body.AppendText("Zeit") <br />  &nbsp; &nbsp;Call body.EndInsert <br />  &nbsp; &nbsp;Call body.Update <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;' - Reopen document in order to load RT item into UI <br />  &nbsp; &nbsp;doc.SaveOptions = "0" ' make it possible to close the document without a "do you want to save" prompt. <br />  &nbsp; &nbsp;Call uidoc.Close(True) <br />  &nbsp; &nbsp;Set uidoc = ws.EditDocument(True, doc, , , , True) <br />  &nbsp; &nbsp;Call uidoc.Document.RemoveItem("SaveOptions") <br />  &nbsp; &nbsp;<br /> End Sub <br /> </pre> <br /> arbeitet.<br /> <br /> Nach langer Analyse stellte ich fest, das die Ursache für den Laufzeitfehler (für mich nicht erklärbar) in der Definition der Feldhilfe <br /> <img  alt="Image:Bearbeitung von RichTextItems bringt Laufzeitfehler" border="0" src="http://www.mmi-consult.de/FAQ/dx/bearbeitung-von-richtextitems-bringt-laufzeitfehler.htm/content/M3?OpenElement" /><br /> zu finden ist. Entfernt man diese, so wird mit <br /> <br /> <pre> <br /> Set body = doc.GetFirstItem("Body") <br /> </pre> <br /> auch das entsprechende Item gefunden.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/bearbeitung-von-richtextitems-bringt-laufzeitfehler.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/bearbeitung-von-richtextitems-bringt-laufzeitfehler.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Gut zu wissen : Lotus Traveler mit reverse Proxy !</title>
<pubDate>Tue, 22 Nov 2011 09:30:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/lotus-traveler-per-reverse-proxy.htm</link>
<category>Traveler</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/lotus-traveler-per-reverse-proxy.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/lotus-traveler-per-reverse-proxy.htm</guid>
<content:encoded><![CDATA[ Mit Hilfe eines reverse Proxy kann der Zugriff per Lotus Traveler sicherer gestaltet werden. Hier eine paar Kleinigkeiten, welche man einfach umschiffen kann wenn man Sie denn weiss :-) <br /> <br /> Zur Situation: <br /> Als reverse Proxy kam apache2 &nbsp;zum Einsatz. Lotus Traveler war in Version 8.5.x installiert. <br /> Es wurde &nbsp;vhosts Port 80 auf Port 443 erstellt. Port 80 wurde auf 443 per reverse Proxy<em> Redirect</em> Directive umgeleitet, damit alle Zugriffe per SSL gesichert zum reverse Proxy erfolgen und eine einfache Eingabe per http://meine.url.de möglich sind. <br /> Im vhost 443 wurde per <pre><em>DirectoryIndex /servlet/traveler</em></pre> https://meine.url.de auf https://meine.url.de/servlet/travler gemappt. <br /> <br /> Dies lief auch mit einem IPhone 4 ohne Probleme. Dann kam jedoch das erste Windows Mobile Gerät. Dies wollte sich einfach nicht per reverse Proxy verbinden. Hierbei war es egal ob Windows Mobile 6.1 oder 6.5. Entsprechende Test ergaben, dass die <em>DirectoryIndex</em> Konfiguration im vhost von den Browsern auf Windows Mobile fehlerhaft/nicht ausgewertet wurde. Ein Android 2.3 konnte wiederum ohne Probleme damit umgehen. <br /> <br /> Damit auch Windows Mobile den reverse Proxy nutzen konnte, wurde die Konfiguration adaptiert: <br /> 1. Die vhost port 80 <em>Redirect</em> Directive wurde auf <span style="text-decoration:underline">https://meine.url.de/servlet/taveler</span> geändert<br /> <br /> Nun konnte auch Windows Mobile per reverse Proxy auf den internen Lotus Traveler Server zugreifen. <br /> <br />&nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/lotus-traveler-per-reverse-proxy.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/lotus-traveler-per-reverse-proxy.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Die Sprache des TDI Konfigurationseditor ändern</title>
<pubDate>Mon, 21 Nov 2011 10:00:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/die-sprache-des-TDI-konfigurations-editor-aendern.htm</link>
<category>TDI </category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/die-sprache-des-TDI-konfigurations-editor-aendern.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/die-sprache-des-TDI-konfigurations-editor-aendern.htm</guid>
<content:encoded><![CDATA[ Der Konfigurationseditor des Tivoli Directory Integrators bietet leider keine Möglichkeit im Benutzerinterface, die Sprache von z.B. Deutsch auf &nbsp;Englisch zu ändern. Allerdings kann dies Permanent in der Startdatei des Konfigurationseditors mit einem Parameter erreicht werden. <br /> <br /> Hierzu ist im TDI_Root_Dir die Datei ibmditk.bat in einem Editor zu Laden. Diese Datei dient dem Start des Konfigurationseditors. <br /> <br /> Am Ende ist befindet sich eine if else Kombination: <br /> <pre>if .%TDI_SHUTDOWN%==.true ( <br /> "%TDI_HOME_DIR%\ce\eclipsece\miadmin" -tdishutdown -noSplash %* -vm "%TDI_JAVAW_PROGRAM%" -vmargs -Dcom.ibm.di.loader.IDILoader.path="%TDI_HOME_DIR%" &nbsp; &nbsp; <br /> ) else ( <br /> start /B "Tivoli Directory Integrator" "%TDI_HOME_DIR%\ce\eclipsece\miadmin" %* -vm "%TDI_JAVAW_PROGRAM%" -vmargs -Dcom.ibm.di.loader.IDILoader.path="%TDI_HOME_DIR%" <br /> )</pre>  <br />Bei dieser muss einfach in der letzen Zeile, also dem else Case der Parameter &nbsp; <pre>-Duser.language=en</pre> für die englische Sprache angehangen werden. <br /> <pre>) else ( <br /> start /B "Tivoli Directory Integrator" "%TDI_HOME_DIR%\ce\eclipsece\miadmin" %* -vm "%TDI_JAVAW_PROGRAM%" -vmargs -Dcom.ibm.di.loader.IDILoader.path="%TDI_HOME_DIR%" <strong>&nbsp;<em>-Duser.language=en</em></strong><em> </em><br /> )</pre><br /> Analog sollte diese Methode für alle Sprache der multilingualen TDI Installtion funktionieren.  <br /> <br />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/die-sprache-des-TDI-konfigurations-editor-aendern.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/die-sprache-des-TDI-konfigurations-editor-aendern.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Dokumente aus Textdateien importieren</title>
<pubDate>Fri, 26 Aug 2011 15:33:06 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/dokumente-aus-textdateien-importieren.htm</link>
<category>Dateiimport</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/dokumente-aus-textdateien-importieren.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/dokumente-aus-textdateien-importieren.htm</guid>
<content:encoded><![CDATA[ Lotus Notes kann zur strukturierten Datenübernahme aus Textdateien jeweils einzelne Dokumente in eine Ansicht importieren. Diese (seit vielen Versionen) im Produkt enthaltene Methode ist jedoch leider aktuelle nur noch spärlich dokumentiert. Gut wenn man sich noch an "früher" erinnert und hierzu "COL-Dateien" erstellen kann. <br /> <br /><strong><span style="text-decoration:underline">Aufgabenstellung:</span></strong> <br /> <br />Aus einer Textdatei sollen Datensätze (im Beispiel mit 2 Spalten durch ";" separiert) importiert werden. Neben den beiden Spalten der Datensätze benötigen die Dokumente noch weitere Felder (so wie sie erstellt würden, wenn man Dokumente interaktiv mit Hilfe der entsprechenden Maske anlegt). Diese weiteren Felder kann man aus den Eigenschaften eines Beispieldokumentes ableiten. <br /> <br /><strong><span style="text-decoration:underline">Lösung:</span></strong> <br /> <br />Mit dem Texteditor ist eine "COL-Datei" als Spaltenbeschreibungsdatei zu erstellen. <br /> <br /><pre> <br />; Beschreibung der Spalten. Diese sind jeweils mit ";" voneinander getrennt <br />Folder: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TYPE TEXT &nbsp; &nbsp; &nbsp; &nbsp;UNTIL ";"; <br />Category: &nbsp; &nbsp; &nbsp; &nbsp;TYPE TEXT &nbsp; &nbsp; &nbsp; &nbsp;UNTIL ""; <br /> <br />; Jetzt noch das Importdatum vermerken oder irgendwelche anderen Formelsprache-Operationen <br />FORMULASTART <br />FIELD LastImportDate := @Now; <br />FIELD Active := "1"; <br />FORMULAEND <br /></pre> <br /> <br /><strong><span style="text-decoration:underline">Durchführung des Imports:</span></strong> <br /> <br />1. Öffnen der Ansicht und Wechsel in die Anischt, in der die zu importierenden Dokumente später angezeigt werden. <br />2. Datei - Importieren <br />3. Textdatei auswählen: als Dateityp muss "Tabular Text" ausgewählt sein/werden <br /><img  alt="Image:Dokumente aus Textdateien importieren" border="0" src="http://www.mmi-consult.de/FAQ/dx/dokumente-aus-textdateien-importieren.htm/content/M2?OpenElement" /> <br />4. Textdatei auswählen: als Dateityp muss "Tabular Text" ausgewählt sein/werden <br />5. Importieren-Button klicken <br /><img  alt="Image:Dokumente aus Textdateien importieren" border="0" src="http://www.mmi-consult.de/FAQ/dx/dokumente-aus-textdateien-importieren.htm/content/M3?OpenElement" /> <br />6. Fertig. Um die neu importierten Dokumente anzuzeigen ggf. <F9> zum Aktualisieren drücken. <br />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/dokumente-aus-textdateien-importieren.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/dokumente-aus-textdateien-importieren.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Alternative Validierung von Eingabefeldern in XPages mit dijit.form.ValidationTextBox</title>
<pubDate>Sat, 18 Jun 2011 17:41:05 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/alternative-validierung-von-eingabefeldern-in-xpages-mit-dijit.form.validationtextbox.htm</link>
<category>XPages</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/alternative-validierung-von-eingabefeldern-in-xpages-mit-dijit.form.validationtextbox.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/alternative-validierung-von-eingabefeldern-in-xpages-mit-dijit.form.validationtextbox.htm</guid>
<content:encoded><![CDATA[ XPages erlauben umfangreiche Server-Side Validierungen in Verbindung mit ErrorMessage Controls. Doch selbst diese gefallen nicht allen Nutzern, da sie einen separaten Darstellungsbereich der Fehlermeldung auf der Seite erfordern. Die Frage eines Kursteilnehmers eines meiner XPage Entwicklerkurse veranlasste mich, ein wenig im Netz zu suchen. Hierbei bin ich auf <a href="http://appligate.wordpress.com/2011/02/23/dijit-form-validationtextbox/" &nbsp;target="_blank"/>Use of dijit.form.ValidationTextBox</a>. aufmerksam geworden. <br /> <br /> Ein kleines Beispiel auf der Basis dieses dojo-Controls <a href="http://dojotoolkit.org/reference-guide/dijit/form/ValidationTextBox.html#dijit-form-validationtextbox" &nbsp;target="_new"/>dijit.form.ValidationTextBox</a> kann mit nachfolgender XPage realisiert werden. Hier werden jeweils Name und Vorname, Postleitzahl und Wohnort benötigt (die Postleitzahl muss ein gültiges Format aufweisen). Der vollständige Source-Code ist &nbsp;<a href="http://www.mmi-consult.de/FAQ/dx/dijitFormValidationTextBox.txt/$file/dijitFormValidationTextBox.txt" title="dijitFormValidationTextBox.txt"dijitFormValidationTextBox.txt/>hier</a> .<br /> <br /> Auch die Einbindung dijits und Erstellung von digit-Atrributen ist noch einfacher geworden: <strong><br /> <br /> Schritt 1: DoJo Forms einbinden</strong> <br /> <img  alt="Image:Alternative Validierung von Eingabefeldern in XPages mit dijit.form.ValidationTextBox" border="0" src="http://www.mmi-consult.de/FAQ/dx/alternative-validierung-von-eingabefeldern-in-xpages-mit-dijit.form.validationtextbox.htm/content/M2?OpenElement" /><strong><br /> <br /> Schritt 2: Gewünschtes dijit laden</strong><br /> Das gewünschte dijit muss als Ressource eingebunden werden: <br /> <img  alt="Image:Alternative Validierung von Eingabefeldern in XPages mit dijit.form.ValidationTextBox" border="0" src="http://www.mmi-consult.de/FAQ/dx/alternative-validierung-von-eingabefeldern-in-xpages-mit-dijit.form.validationtextbox.htm/content/M3?OpenElement" /><br /> ..unter Angabe des Namens <br /> <img  alt="Image:Alternative Validierung von Eingabefeldern in XPages mit dijit.form.ValidationTextBox" border="0" src="http://www.mmi-consult.de/FAQ/dx/alternative-validierung-von-eingabefeldern-in-xpages-mit-dijit.form.validationtextbox.htm/content/M4?OpenElement" /><strong><br /> <br /> <br /> Schritt 3: Gewünschte Attribute für die entsprechenden Felder festlegen</strong> <br /> Dojo-Typ: dijit.form.ValidationTextBox <br /> Dojo-Attribute: - alle gwünschten gemäß Referenzbeschreibung - <br /> <img  alt="Image:Alternative Validierung von Eingabefeldern in XPages mit dijit.form.ValidationTextBox" border="0" src="http://www.mmi-consult.de/FAQ/dx/alternative-validierung-von-eingabefeldern-in-xpages-mit-dijit.form.validationtextbox.htm/content/M5?OpenElement" /><br /> <br /> ... und so sieht die Seite dann im Browser aus: <br /> <img  alt="Image:Alternative Validierung von Eingabefeldern in XPages mit dijit.form.ValidationTextBox" border="0" src="http://www.mmi-consult.de/FAQ/dx/alternative-validierung-von-eingabefeldern-in-xpages-mit-dijit.form.validationtextbox.htm/content/M6?OpenElement" />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/alternative-validierung-von-eingabefeldern-in-xpages-mit-dijit.form.validationtextbox.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/alternative-validierung-von-eingabefeldern-in-xpages-mit-dijit.form.validationtextbox.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Validierungen bei Navigationen abschalten</title>
<pubDate>Sat, 18 Jun 2011 10:53:09 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/validierungen-bei-navigationen-abschalten.htm</link>
<category>XPages</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/validierungen-bei-navigationen-abschalten.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/validierungen-bei-navigationen-abschalten.htm</guid>
<content:encoded><![CDATA[ XPages erlauben umfangreiche Eingabevalidierungen (Pflichtfelder oder Dateneingabenprüfungen). Zur Navigation zwischen verschiedenen Seiten kann es jedoch gewünscht sein, dass man auf eine andere Seite wechseln kann, ohne eine Erfassungsmaske vollständig ausgefüllt zu haben und ohne einen "Cancel" bzw. "Abbrechen" zu klicken. <br /> <br /> Auch dieses ist einfach zu erreichen. Angenommen, Sie haben eine XPage mit Validierung z.B. eines Pflichtfeldes erstellt <br /> <a href="http://www.mmi-consult.de/FAQ/dx/XPages-RequiredField.png/$file/XPages-RequiredField.png" rel="lytebox" title="" ><img  src="http://www.mmi-consult.de/FAQ/dx/XPages-RequiredField.png/$file/XPages-RequiredField.png" class="lytelink" &nbsp;alt="" /></a> <br /> <br /> auf die Sie mit einem Register eines "Fenster mit Registern" in einer übergeordneten XPage (Register "New Request") verweisen. Andere Register dieser übergeordneten XPage (z.B. Register "All Requests") erlauben die Navigation z.B. auf eine andere XPage (z.B. zur Ansichtsdarstellung der bereits erfassten Daten), Dann ist die Validierung zur Navigation bei den Ereignisdefinitionen für dieses Register selektiv deaktivierbar: <br /> <a href="http://www.mmi-consult.de/FAQ/dx/XPages-DisableValidation.png/$file/XPages-DisableValidation.png" rel="lytebox" title="" ><img  src="http://www.mmi-consult.de/FAQ/dx/XPages-DisableValidation.png/$file/XPages-DisableValidation.png" class="lytelink" &nbsp;alt="" /></a> <br /> <br />   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/validierungen-bei-navigationen-abschalten.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/validierungen-bei-navigationen-abschalten.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Domino Designer Eclipse Plugins deinstallieren</title>
<pubDate>Thu, 19 May 2011 15:37:40 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/domino-designer-eclipse-plugins-deinstallieren.htm</link>
<category>Domino Designer</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/domino-designer-eclipse-plugins-deinstallieren.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/domino-designer-eclipse-plugins-deinstallieren.htm</guid>
<content:encoded><![CDATA[ Im Domino Designer für Eclipse (DDE) kann man dessen Funktionalität durch die Installation von Plugins erweitern. Doch wie wird man diese wieder los? Diese Frage stellte ich mir, nachdem einige Plugins nicht meinen Vorstellungen entsprachen bzw. andere Plugins unvollständig installiert wurden und weitere Konfiguration und Updates behinderten. Leider gab eine Suche im Netz oder gar der IBM Dokumentation keine Hilfe..... Doch wer lang genug sucht, findet dass auch: <br /> <br /><strong>1. Designer starten</strong> <br /> <br /><strong>2. Anwendungsverwaltung aufrufen mit "Datei - Anwendung - Anwendungsverwaltung ...."</strong> <br /> <br />man wähle links die nicht mehr gewünschten Plugins aus und definiere im rechten Teil des Dialoges die auszuführende Operation (z.B. "Deinstallieren")<br /> <img  alt="Image:Domino Designer Eclipse Plugins deinstallieren" border="0" src="http://www.mmi-consult.de/FAQ/dx/domino-designer-eclipse-plugins-deinstallieren.htm/content/M2?OpenElement" /> <br /> <br />nach dem vorgeschlagenen und akzeptierten Lotus Notes Neustart werden die ausgewählen Plugins deinstalliert. Ein Kontrollmöglichkeit ergibt sich wiederum (nach Abschluss) im Anwendungskonfigurationsdialog. <br /><br /> <img  alt="Image:Domino Designer Eclipse Plugins deinstallieren" border="0" src="http://www.mmi-consult.de/FAQ/dx/domino-designer-eclipse-plugins-deinstallieren.htm/content/M3?OpenElement" /> <br /> <br />...so einfach kann es sein.  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/domino-designer-eclipse-plugins-deinstallieren.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/domino-designer-eclipse-plugins-deinstallieren.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Reservierte Notes-URLs in Verbundanwendungen</title>
<pubDate>Fri, 25 Mar 2011 15:49:23 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/reservierte-notes-urls-in-verbundanwendungen.htm</link>
<category>Verbundanwendung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/reservierte-notes-urls-in-verbundanwendungen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/reservierte-notes-urls-in-verbundanwendungen.htm</guid>
<content:encoded><![CDATA[ In Verbundanwendungen (Composite Applications) werden Notes Objekte per Notes-URL referenziert. Hierbei gibt es einige vordefinierte Notes-URLs, welche den Zugriff auf bestimmte Notes Datenbanken einfacher machen: <br /> <pre> notes:///0000000000000000 - referenziert auf die aktuelle Datenbank <br /> notes:///0000000000000E00 - referenziert auf die Maildatenbank des aktuellen Benutzers <br /> notes:///0000000000000E01 - referenziert auf die Kontakte Anwendung des aktuellen Benutzers</pre> <br /> <br /> Zusätzlich ist es auch möglich, eine Notes-URL mit der Formelsprache zu rechnen. Anstatt unter dem Erweitert Tab der Komponente den "notesurl" Parameter mit hardcodierten Links zu versehen, kann alternativ z.B. folgendes verwendet werden: <br /> <pre>com.ibm.notes.ComputedNotesURL &nbsp; -> &nbsp;@GetProfileField("CAProfile"\; "ExtURL1") </pre>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/reservierte-notes-urls-in-verbundanwendungen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/reservierte-notes-urls-in-verbundanwendungen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Repeat Controls in XPages kennen lernen</title>
<pubDate>Thu, 10 Feb 2011 20:58:42 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm</link>
<category>XPages</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm</guid>
<content:encoded><![CDATA[ Repeat Controls (oder auch "Wiederholen" Steuerelemente) erlauben es, beliebige Strukturen aus eine Liste von Werten darzustellen. Um den Einsatz dieses Steuerelementes kennen zu lernen, verwende ich einige 4 einfache Beispiele mit unterschiedlichen Ergebnissen.<strong><span style="text-decoration:underline"><br /> <br /> Daten:</span></strong> Die darzustellenden Daten werden in den Bereichsvariablen "<em>tableData</em>" und "<em>tableCities</em>"abgelegt. Diese werden beim Laden der XPage mit Beispielwerten belegt. <br /> <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M2?OpenElement" /><span style="text-decoration:underline"><br /> <br /> <hr><strong><br /> Beispiel 1: </span></strong>Erstellung einer einfachen Liste  <ul> <li>Erstellen Sie eine neue XPage.  </li><li>Plazieren ein "<em>Fenster</em>" aus der Liste der Containersteuerelemente an eine beliebige Stelle.  </li><li>Ziehen Sie ein "<em>Wiederholen</em>" aus der Liste der Containersteuerelemente in dieses Fenster und vergeben folgende Eigenschaften</li></ul><img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M3?OpenElement" /> <ul> <li>Fügen Sie einen Zeilenumbruch hinter dem gerade eingefügten Steuerelement ein.  </li><li>Fügen Sie ein "<em>Berechnetes Feld</em>" aus der aus der Liste der Kernsteuerelemente hinter dem Zeilenumbruch ein und vergeben die Wertformel</li></ul><img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M4?OpenElement" /><br /> Nach dem Speichern der XPage kann diese angezeigt werden: <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M5?OpenElement" /><br /> ... das Ergebnis ist gar nicht so schlecht....<span style="text-decoration:underline"><br /> <hr><strong><br /> Beispiel 2:</span></strong> Darstellung der Werte eines mehrdimensionalen Arrays <br /> <br /> So können nicht nur einzelne Werte einer eindimensionalen Liste sondern auch die aus mehrdimensionalen Arrays dargestellt werden. Zu Darstellung der Beispieldaten der Großstädte erstellen Sie ein "<em>Wiederholen Steuerelement</em>" ein <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M6?OpenElement" /><br /> <br /> Nun fügen wir hierin eine Tabelle mit 1 Zeile und 3 Spalten ein. Die Zellen der Tabelle werden jeweils mit einem berechneten Feld gefüllt. <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M7?OpenElement" /><br /> Die Wertformeln den berechneten Felder werden bestimmt durch <br /> Für computedField1: tableCities&#91;rowCities&#93;&#91;"name"&#93;<br /> Für computedField2: tableCities&#91;rowCities&#93;&#91;"state"&#93; <br /> Für computedField3: tableCities&#91;rowCities&#93;&#91;"citizans"&#93;<br /> <br /> Nach dem Speichern der XPage kann diese angezeigt werden: <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M8?OpenElement" /><br /> ... das Ergebnis entspricht nicht so ganz meinen Vorstellungen: Ich erhalte insgesamt 5 Tabellen mit je 1 Zeile und 3 Spalten. So sind die Ergebnisse nicht sauber platziert. Ich hätte jedoch gern eine Tabelle mit 5 Zeilen und 3 Spalten. Dieses erfordert einen kleinen Eingriff.<span style="text-decoration:underline"><br /> <hr><strong><br /> Beispiel 3:</span></strong> Darstellung der Werte eines mehrdimensionalen Arrays in Form <strong>einer </strong>Tabelle <br /> <br /> Um die Tabelle nicht mehrfach entstehen zu lassen, ist es erforderlich, das "table" Tag nicht mehrfach, sondern nur einmal rendern zu lassen. Hierzu ist ein kleiner Eingriff im Quelltext notwendig: <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M9?OpenElement" /><br /> indem der Beginn der Tabelle <strong>vor </strong>das <em>"Wiederholen" </em>Steuerelement gesetzt wird: <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M10?OpenElement" /><br /> Entsprechend muss (um eine richtige Schachtelung der XML Elemente zu gewährleisten) die Ende-Tags ebenfalls vertauscht werden. <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M11?OpenElement" /><br /> in <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M12?OpenElement" /><br /> Nach dem Speichern der XPage kann diese angezeigt werden: <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M13?OpenElement" /><br /> ... das Ergebnis entspricht schon eher meinen Vorstellungen. Doch hätte ich noch gern eine Tabellen Überschrift.<span style="text-decoration:underline"><br /> <hr><strong><br /> Beispiel 4:</span></strong> Darstellung der Werte eines mehrdimensionalen Arrays in Form <strong>einer </strong>Tabelle mit Überschriften <br /> <br /> Um der aus Beispiel 3 noch zusätzlich Überschriften hinzuzufügen, im Quelltext ist zusätzlicher der Code hinter dem Tabellenbeginn manuell zu erweitern: <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M14?OpenElement" /><strong><br /> Hinweis:</strong> Der obige Screenshot verwendet andere Feldnamen, als die aus Beispiel 3. Diese sind im "for" Attribut ggf. anzupassen. <br /> <br /> Nach dem Speichern der XPage kann diese angezeigt werden: <br /> <img  alt="Image:Repeat Controls in XPages kennen lernen" border="0" src="http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm/content/M15?OpenElement" /><br /> ... das Ergebnis entspricht recht genau meinen Vorstellungen: Ich erhalte insgesamt 1 Tabellen mit je 5 Datenzeilen (sowie einer Überschriftszeile) und 3 Spalten. <br /> <hr> <strong><br /> Source Code des Beispiels</strong> <br /> <a href="http://www.mmi-consult.de/FAQ/dx/SnTT Repeat Control kennen lernen.txt/$file/SnTT Repeat Control kennen lernen.txt" title="SnTT Repeat Control kennen lernen.txt"SnTT Repeat Control kennen lernen.txt/>SnTT Repeat Control kennen lernen.txt</a>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/repeat-controls-in-xpages-kennen-lernen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/repeat-controls-in-xpages-kennen-lernen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Wie kann ich Dialoge und Code in einer anderen Datenbank nutzen?</title>
<pubDate>Mon, 20 Dec 2010 13:44:34 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-dialoge-und-code-in-einer-anderen-datenbank-nutzen.htm</link>
<category>Dokumentbearbeitung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-dialoge-und-code-in-einer-anderen-datenbank-nutzen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-dialoge-und-code-in-einer-anderen-datenbank-nutzen.htm</guid>
<content:encoded><![CDATA[ Dieses Codebeispiel zeigt die Bearbeitung von Dokumenten einer Datenbank mit bestehendem Code in der anderen Datenbank. <br /> <br /> Umfangreichere Anwendungen bestehen oftmals aus mehreren Datenbanken. Wie kann man nun während der &nbsp;Arbeit in einer Datenbank dort Dokumente auswählen, die durch einen Dialog und damit verbundenen Funktionen einer anderen Datenbank bearbeitet werden? <br /> <br /> Hierzu kann z.B. ein Agent eingesetzt werden, der auf selektierte Dokumente arbeitet und nachfolgenden Code ausführt: <br /> <br /> <pre> <strong><br /> Sub</strong> Initialize <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> uiws &nbsp; &nbsp; &nbsp; &nbsp; <strong>As</strong> <strong>New</strong> NotesUIWorkspace <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> s &nbsp; &nbsp; &nbsp; &nbsp; <strong>As</strong> <strong>New</strong> NotesSession <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> col &nbsp; &nbsp; &nbsp; &nbsp; <strong>As</strong> NotesDocumentCollection <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> docThis &nbsp; &nbsp; &nbsp; &nbsp;<strong>As</strong> NotesDocument &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> docThat &nbsp; &nbsp; &nbsp; &nbsp;<strong>As</strong> NotesDocument <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> dbThis &nbsp; &nbsp; &nbsp; &nbsp;<strong>As</strong> NotesDatabase <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> dbThat &nbsp; &nbsp; &nbsp; &nbsp;<strong>As</strong> NotesDatabase <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> vArray() <strong>As</strong> <strong>variant</strong> <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> i &nbsp; &nbsp; &nbsp; &nbsp; <strong>As</strong> <strong>integer</strong> <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Const</strong> strDatabaseToCall = <em>"develop/mm/r82spielwiese"</em> <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Set</strong> dbThis = s.Currentdatabase <br />  &nbsp; &nbsp; &nbsp; <strong>Set</strong> dbThat = s.Getdatabase(dbThis.Server, strDatabaseToCall) <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Set</strong> col = dbThis.Unprocesseddocuments <br />  &nbsp; &nbsp; &nbsp; <strong>ReDim</strong> vArray(col.Count) <strong>As</strong> <strong>Variant</strong> <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Set</strong> docThis = col.Getfirstdocument() <br />  &nbsp; &nbsp; &nbsp; i = <em>0</em> <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>While</strong> <strong>Not</strong> docThis <strong>Is</strong> <strong>Nothing</strong> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vArray(i) = docThis.Universalid <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Set</strong> docThis = col.Getnextdocument(docThis) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; i = i + <em>1</em> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Wend</strong> <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Set</strong> docThat = dbThat.Createdocument() <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; docThat.OtherDBServer &nbsp; &nbsp; &nbsp; &nbsp; = dbThis.server &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; docThat.OtherDBPath &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= dbThis.Filepath <br />  &nbsp; &nbsp; &nbsp; docThat.OtherDocs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = vArray <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>Call</strong> uiws.Dialogbox(<em>"Dialog"</em>, <strong>true</strong>, <strong>true</strong>,,,,, <em>"Dialogaufruf aus einer fremden DB"</em>, docThat, <strong>true</strong>) <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>MessageBox</strong> (<em>"Getroffene Auswahl in Fremddialog: "</em> &amp; <strong>cstr</strong>(docThat.Selection(<em>0</em>))) <br />  &nbsp; &nbsp; &nbsp; <strong><br /> End</strong> <strong>Sub</strong> <br /> </pre> <br /> <br /> In der anderen Datenbank muss eine Maske "Dialog" existieren, die z.B. lokale Scriptbibliotheken rufen kann und (für die Funktion des obigen Beispieles) auch Rückgabewerte anbieten kann. <br /> <strong><br /> <br /> Hintergrundinformation:</strong> <br /> Diese Beispiel funktioniert deshalb, weil die "DialogBox"-Funktion ein vordefiniertes Dokument benötigt und abhängig davon, in welcher Datenbank dieses Dokument besteht, diese Datenbank verwendet, um benötigte Gestaltungselemente zu laden. Da der aufgerufene Dialog modal ist, kann diese Werte setzen, welche vom aufrufenden Code (in der Ursprungsdatenbank) verarbeitet werden kann.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/wie-kann-ich-dialoge-und-code-in-einer-anderen-datenbank-nutzen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-dialoge-und-code-in-einer-anderen-datenbank-nutzen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Kann der Domino Designer Leerzeichen im Text anzeigen?</title>
<pubDate>Fri, 27 Aug 2010 10:34:09 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/kann-der-domino-designer-leerzeichen-im-text-anzeigen.htm</link>
<category>Domino Designer</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/kann-der-domino-designer-leerzeichen-im-text-anzeigen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/kann-der-domino-designer-leerzeichen-im-text-anzeigen.htm</guid>
<content:encoded><![CDATA[ Beim Erstellen von Texten für Code in Editoren (z.B. LotusScript) ist es manchmal sehr hilfreich, auch verborgene Zeichen (Leerzeichen, Tab, Zeilenende) zu erkennen. Nach Erstinstalltion des Domino Designer für Eclipse werden diese Zeichen (wie auch in früheren Versionen) NICHT angezeigt. Was kann man tun, um sie dennoch zu sehen? <br /> <br />Im Rahmen der zahlreichen Eclipse Vorgabeeinstellungen gibt es auch hierfür eine Konfigurationsmöglichkeit: <br /> <br /><img  alt="Image:Kann der Domino Designer Leerzeichen im Text anzeigen?" border="0" src="http://www.mmi-consult.de/FAQ/dx/kann-der-domino-designer-leerzeichen-im-text-anzeigen.htm/content/M2?OpenElement" />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/kann-der-domino-designer-leerzeichen-im-text-anzeigen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/kann-der-domino-designer-leerzeichen-im-text-anzeigen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Gestaltungselemente (wie früher) mit Einzelklick öffnen</title>
<pubDate>Fri, 27 Aug 2010 09:27:47 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/gestaltungselemente-mit-einzelklick-oeffnen.htm</link>
<category>Domino Designer</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/gestaltungselemente-mit-einzelklick-oeffnen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/gestaltungselemente-mit-einzelklick-oeffnen.htm</guid>
<content:encoded><![CDATA[ In Vorgängerversionen zu Lotus Domino Designer konnten Gestaltungselemente mit einem Einzelklick geöffnet werden - im Domino Designer für Eclipse ist hierfür jedoch ein Doppelklick erforderlich. Entwickler, die von früheren Versionen umsteigen, wollen manchmal das bisherige Verhalten zurück erhalten. <br /> <br />Hierzu bleibt festzuhalten, dass man auch dieses Verhalten des Domino Designers durch Vorgabeeinstellungen steuern kann: <br /> <br /><img  alt="Image:Gestaltungselemente (wie früher) mit Einzelklick öffnen" border="0" src="http://www.mmi-consult.de/FAQ/dx/gestaltungselemente-mit-einzelklick-oeffnen.htm/content/M2?OpenElement" /> <br /> <br />...wer's mag ist dann glücklicher?!  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/gestaltungselemente-mit-einzelklick-oeffnen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/gestaltungselemente-mit-einzelklick-oeffnen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Was macht denn das Feld &quot;$RespondedTo&quot; und woher stammt es?</title>
<pubDate>Wed, 12 May 2010 08:15:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/was-macht-denn-das-feld-respondedto-und-woher-stammt-es.htm</link>
<category>Mail</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/was-macht-denn-das-feld-respondedto-und-woher-stammt-es.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/was-macht-denn-das-feld-respondedto-und-woher-stammt-es.htm</guid>
<content:encoded><![CDATA[ Zur Unterstützung spezifischer Mailfunktionen steuern Datenbankeigenschaften die Generierung von Feldern im Mailkontext. Diese Datenbankeigenschaften können jedoch in gemeinsam genutzten Datenbanken zu unerwünschten Nebeneffekten führen. <br /> <br /> Um um in Mailfiles Spaltensymbole anzeigen zu können, welches Dokumente bereits beantwortet wurden, ist folgende Datenbankeigenschaft eingeführt worden <br /> <img  alt="Image:Was macht denn das Feld &quot;RespondedTo&quot; und woher stammt es?" border="0" src="http://www.mmi-consult.de/FAQ/dx/was-macht-denn-das-feld-respondedto-und-woher-stammt-es.htm/content/M2?OpenElement" /><br /> welche in Dokumente, die mit einer <strong>Antwortmaske </strong>beantwortet wurden das Feld "RespondedTo" setzt, wenn das Anwortdokument durch den Mailer des Lotus Notes Clients versendet wird (z.B. @Mailsend, MaiOptions-Feld o.ä.). Ähnliches geschieht, wenn Dokumente weitergeleitet werden (in diesem Fall enthält das Feld den Wert "2" statt "1").<br /> <br /> In gemeinsam genutzten Datenbanken sollte dieses Attribut nur mit Vorsicht verwendet werden, da diese Datenbankeigenschaft (in Verbindung mit Mailfunktionen auf Masken) zu Replizier- und Speicherkonflikten führt, wenn verschiedene Benutzer Antworten auf das gleiche Dokument erstellen.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/was-macht-denn-das-feld-respondedto-und-woher-stammt-es.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/was-macht-denn-das-feld-respondedto-und-woher-stammt-es.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Der Countdown läuft ...</title>
<pubDate>Wed, 31 Mar 2010 12:00:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/der-countdown-laeuft.htm</link>
<category>Installation</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/der-countdown-laeuft.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/der-countdown-laeuft.htm</guid>
<content:encoded><![CDATA[ Nicht nur Menschen werden täglich älter. Auch Software-Systeme kommen "in die Jahre" und werden ausgemustert. In der IBM Terminologie heißt das "Lifecycle". <br />Hier die Lifecycle Begriffer kurz erläutert:  <br /> <br /> <table> <tr valign=top> <td bgcolor=#b1b1d2> <div align=center><strong>IBM Lifecycle Begriff</strong></div> <td bgcolor=#b1b1d2> <div align=center><strong>Bedeutung für Kunden</strong></div> <tr valign=top> <td> <div align=center>GA</div> <td>"General Availability": Produkte werden von IBM ausgeliefert oder stehen im Download Bereich neu zur Verfügung.  <tr valign=top> <td> <div align=center>EOL</div> <td>"End of Life": das Produkt wird vom Markt genommen und wird nicht mehr länger verkauft. &nbsp;Kunden mit Wartungsverträgen erhalten weiterhin neue Versionen oder Hot Fixes soweit verfügbar.  <tr valign=top> <td> <div align=center>EOS</div> <td>"End of Service": Ende der technischen Unterstützung (Telefonsupport) sowie Code Fixes.</table> <br /> <br /><br /> <br /> <br /> Für alle, die wissen wollen, wie lange sie mit dem Update Ihrer System noch warten können, bevor sie in Schwierigkeiten (wegen mangelnder Unterstützung durch Hersteller und Partner) kommen, listet IBM alle Produkte mit ihrem <a href="http://www-01.ibm.com/software/lotus/support/lifecycle/" target=_blank><span style="text-decoration:underline">Lebenszyklus hier auf</span></a>. Sollten Sie z.B. noch nicht aktuelle Systeme (z.B. Notes / Domino 5 oder 6.5 - ja davon gibt es noch zahlreiche) im Betrieb haben, so helfen wir Ihnen, den Sprung in die aktuelle Web 2.0 Welt zu schaffen. <span style="text-decoration:underline"><br /> <br /> In diesem Zusammenhang sind die nächsten wichtigsten Termine extrahiert:</span> <br /> <br /> 30. April <strong>2010</strong>: EOS für Lotus Domino 6.5 <br /> 29. April <strong>2011</strong>: EOS für Lotus Domino 7.0   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/der-countdown-laeuft.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/der-countdown-laeuft.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Erweiterung bestehender Anwendungen um Java views</title>
<pubDate>Sat, 20 Mar 2010 13:16:40 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/erweiterung-bestehender-anwendungen-um-java-views.htm</link>
<category>Ansichten</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/erweiterung-bestehender-anwendungen-um-java-views.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/erweiterung-bestehender-anwendungen-um-java-views.htm</guid>
<content:encoded><![CDATA[ Für neue Entwickler oder jene, die ihre Systeme auf Domino 8 aktualisiert haben, haben wir in Kooperation mit IBM Training ein kurzes Trainingsvideo (in englisch) erstellt, dass die notwendigen Schritte detailliert erläutert. <br /> <br /> Diese und weitere Einzelheiten vermitteln wir Teilnehmern unserer Update Kurse <a href="http://www.mmi-consult.de/kurs/li_d8421mde.html" target=_blank><span style="text-decoration:underline">D8421MDE</span></a> <br /> <br /> <object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/1O3Hf23guGg&amp;hl=de_DE&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1O3Hf23guGg&amp;hl=de_DE&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object> <br /> <br /> Vielleicht sehen wir uns beim nächsten Kurs?   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/erweiterung-bestehender-anwendungen-um-java-views.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/erweiterung-bestehender-anwendungen-um-java-views.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Erweiterte Komponenteneigenschaften bearbeiten</title>
<pubDate>Fri, 12 Mar 2010 09:00:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm</link>
<category>Ansichten</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm</guid>
<content:encoded><![CDATA[ Weiterführende Komponenteneingenschaften werden hier konfiguriert: <br /> <br /> 1. Im Aktionen Menü gibt es ganz am Ende &#8222;Anwendung bearbeiten&#8220;, wenn es sich um eine Verbundanwendung handelt <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M2?OpenElement" /> <p><br /> <strong>Datenbanktitel anzeigen und Twistie ausschalten</strong><strong> </strong><br /> <br /> 2. Mit Klick der rechten Maustaste auf das Objekt "Notes Mail-Navigator" der Seitennavigation kann das Eigenschaftsfenster geöffnet werden<br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M3?OpenElement" /> <p>3. In den Anzeigeeinstellungen wird die Titelleiste aktiviert<br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M4?OpenElement" /> <p>4. Unter &#8222;Erweitert&#8220; mit &#8222;Hinzufügen&#8220; eine neue Zeile erzeugen und &nbsp;com.ibm.rcp.showSwitch -> false als Werte hinzufügen und &#8222;OK&#8220; klicken. <br /> Die aus dem Mailfile bekannt Umschaltmimik zwischen Mail, Kalender und Aufgaben wird damit deaktiviert. Durch das Einblende der Titelzeile würde diese sonst angezeigt<br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M5?OpenElement" /> <p>5. Nach &#8222;Datei-Speichern und Schließen&#8220; wird der CAE beendet und das neue &#8222;Java-View&#8220; Design im Notes Client angezeigt.<br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M6?OpenElement" /> <p>6. Der Datenbanktitel wird nun im &#8222;runden&#8220; Design angezeigt und ein Umschalttwistie ist auch nicht vorhanden. Die &#8222;Anzeigen&#8220; Schaltfläche hat aber leider noch keine Funktion.<br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M7?OpenElement" /> <p><strong><br /> Aktivieren der horizontalen/vertikalen Vorschau</strong> <br /> <br /> 1. Die nachfolgende Eigenschaft muss bei jeder Ansicht, welche als &#8222;Java-View&#8220; angezeigt werden soll, aktiviert werden. <br /> Ein Doppelklick auf &#8222;Alle Dokumente&#8220; öffnet diese im Designer. <br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M8?OpenElement" /> <p>2. Eigenschaftsdialog der Ansicht öffnen <br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M9?OpenElement" /> <p>3. Dieser sieht nach dem öffnen wie folgt aus <br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M10?OpenElement" /> <p>4. Auf dem &#8222;Info&#8220; Tab muss die Option &#8222;Umschalter für vertikale/horizontale Darstellung anzeigen&#8220; unter &#8222;Notes verwendet das Eclipse-basierte UI&#8220; aktiviert sein <br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M11?OpenElement" /> <p>5. Die Ansicht speichern <br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M12?OpenElement" /> <p>6. Für diese Ansicht kann nur die seitliche Vorschau ausgewählt werden <br /> <br /> <img  alt="Image:Erweiterte Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm/content/M13?OpenElement" /> <p><a href="http://www.mmi-consult.de/FAQ/dx/vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm" title="vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm"/>Zurück zum Verbundanwendungen - Index</a>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/erweiterte-komponenteneigenschaften-bearbeiten.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Komponenteneigenschaften bearbeiten</title>
<pubDate>Thu, 11 Mar 2010 09:00:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm</link>
<category>Ansichten</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm</guid>
<content:encoded><![CDATA[ Im Composite Application Editor (CAE) werden die Komponenteneigenschaften wie folgt bearbeitet:  <p>1. Mit Klick der rechten Maustaste auf das Objekt &#8222;Notes Mail-Navigator&#8220; der Seitennavigation kann das Eigenschaftsfenster geöffnet werden<br /> <br /> <img  alt="Image:Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm/content/M2?OpenElement" /> <p>2. Auf dem Tab &#8222;Komponenteneinstellungen&#8220; den Komponentennamen und die Notes-URL anpassen. Die Replik-ID der Datenbank befindet sich von S.45/5 in der Zwischenablage. Mit &#8222;OK&#8220; bestätigen<br /> <br /> <img  alt="Image:Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm/content/M3?OpenElement" /> <p><strong>Hinweis:</strong> Die oben verwendete Replik-ID der Datenbank muss dabei der aktuellen Datenbank entsprechen  <p>3. Per Drag and Drop von der Komponentenleiste eine "Notes Mail-Ansicht" auf das mittlere Fenster ziehen<br /> <br /> <img  alt="Image:Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm/content/M4?OpenElement" /> <p>4. &nbsp; &nbsp; &nbsp; &nbsp;Die Komponente erscheint dann in der Komponentenleiste auf dem Seitennavigator <br /> <img  alt="Image:Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm/content/M5?OpenElement" /> <p>5. Mit Klick der rechten Maustaste auf das Objekt &#8222;Notes Mail-Ansicht&#8220; der Seitennavigation kann das Eigenschaftsfenster geöffnet werden<br /> <br /> <img  alt="Image:Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm/content/M6?OpenElement" /> <p>6. Die Komponenteneigenschaften werden mit den Anzeigeeinstellungen gestartet<br /> <br /> <img  alt="Image:Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm/content/M7?OpenElement" /> <p>7. &nbsp; &nbsp; &nbsp; &nbsp;Auf dem Tab &#8222;Komponenteneinstellungen&#8220; den Komponentennamen und die Notes-URL anpassen. Die Replik-ID der Datenbank befindet sich von S.45/5. in der Zwischenablage. Mit &#8222;OK&#8220; bestätigen <br /> <img  alt="Image:Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm/content/M8?OpenElement" /> <p>8. Nun werden die &#8222;Java-View&#8220; Komponenten im Mittelteil des CAE angezeigt<br /> <br /> <img  alt="Image:Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm/content/M9?OpenElement" /> <p>9. Nach &#8222;Datei-Speichern und Schließen&#8220; wird der CAE beendet und das &#8222;Java-View&#8220; Design im Notes Client angezeigt.<br /> <br /> <img  alt="Image:Komponenteneigenschaften bearbeiten" border="0" src="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm/content/M10?OpenElement" /> <p> <br /><a href="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm" title="erweiterte-komponenteneigenschaften-bearbeiten.htm"/>Letzter Schritt: Erweiterte Komponenteneigenschaften bearbeiten</a>  <p><a href="http://www.mmi-consult.de/FAQ/dx/vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm" title="vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm"/>Zurück zum Verbundanwendungen - Index</a>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/komponenteneigenschaften-bearbeiten.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Den CAE verwenden</title>
<pubDate>Wed, 10 Mar 2010 09:00:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm</link>
<category>Ansichten</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm</guid>
<content:encoded><![CDATA[ Nach dem Ändern der Starteigenschaft der Anwendung kann nun mit dem CAE gearbeitet werden. <br /> <br /> 1. Die Anwendung im Notes Standard Client neu öffnen und die &#8222;Anwendung bearbeiten&#8220;<br /> <br /> <img  alt="Image:Den CAE verwenden" border="0" src="http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm/content/M2?OpenElement" /> <p>2. &nbsp; &nbsp; &nbsp; &nbsp;CAE nach dem Start, eventuell muss auf die &#8222;Kompentenbibliothek&#8220; gewechselt werden <br /> <img  alt="Image:Den CAE verwenden" border="0" src="http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm/content/M3?OpenElement" /> <p>3. Per Drag and Drop von der Komponentenleiste einen &#8222;Notes Mail-Navigator&#8220; in das mittlere Fenster ziehen<br /> <br /> <img  alt="Image:Den CAE verwenden" border="0" src="http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm/content/M4?OpenElement" /> <p>4. Im Designer unter &#8222;Eigenschaften&#8220; auf &#8222;Dokument-IDs&#8220; wechseln<br /> <br /> <img  alt="Image:Den CAE verwenden" border="0" src="http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm/content/M5?OpenElement" /> <p>5. Die Datenbank-Replik-ID selektieren und in die Zwischenablage kopieren<br /> <br /> <img  alt="Image:Den CAE verwenden" border="0" src="http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm/content/M6?OpenElement" /> <p> <br /><a href="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm" title="komponenteneigenschaften-bearbeiten.htm"/>Nächster Schritt: Komponenteneigenschaften bearbeiten</a> <p><a href="http://www.mmi-consult.de/FAQ/dx/vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm" title="vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm"/>Zurück zum Verbundanwendungen - Index</a>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/den-cae-verwenden.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Starteigenschaft der Datenbank ändern</title>
<pubDate>Tue, 9 Mar 2010 14:00:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/starteigenschaft-der-datenbank-aendern.htm</link>
<category>Ansichten</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/starteigenschaft-der-datenbank-aendern.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/starteigenschaft-der-datenbank-aendern.htm</guid>
<content:encoded><![CDATA[ Um mit dem Composite Application Editor (CAE) arbeiten zu können, muss nachdem eine Notes Datenbank als Verbundanwendung definiert wurde, die Starteigenschaft der Datenbank geändert werden. Danach kann dann die Datebank mit dem CAE weiterentwickelt werden: <br /> <br /> 1. Die Eigenschaften der Anwendung im Designer anzeigen<br /> <br /> <img  alt="Image:Starteigenschaft der Datenbank ändern" border="0" src="http://www.mmi-consult.de/FAQ/dx/starteigenschaft-der-datenbank-aendern.htm/content/M2?OpenElement" /> <p>2. &nbsp; &nbsp; &nbsp; &nbsp;Das Eigenschaftsfenster startet mit dem Tab &#8222;Allgemein&#8220; <br /> <img  alt="Image:Starteigenschaft der Datenbank ändern" border="0" src="http://www.mmi-consult.de/FAQ/dx/starteigenschaft-der-datenbank-aendern.htm/content/M3?OpenElement" /> <p>3. Nach dem Klick auf den &#8222;Starten&#8220; Tab folgende Eigenschaften auswählen<br /> <br /> <img  alt="Image:Starteigenschaft der Datenbank ändern" border="0" src="http://www.mmi-consult.de/FAQ/dx/starteigenschaft-der-datenbank-aendern.htm/content/M4?OpenElement" /> <p>4. Klick auf das &#8222;x&#8220; zum Speichern und Schließen des Eigenschaften Dialogs<br /> <br /> <img  alt="Image:Starteigenschaft der Datenbank ändern" border="0" src="http://www.mmi-consult.de/FAQ/dx/starteigenschaft-der-datenbank-aendern.htm/content/M5?OpenElement" /> <p> <br /><a href="http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm" title="den-cae-verwenden.htm"/>Nächster Schritt: Den CAE verwenden</a>  <p><a href="http://www.mmi-consult.de/FAQ/dx/vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm" title="vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm"/>Zurück zum Verbundanwendungen - Index</a>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/starteigenschaft-der-datenbank-aendern.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/starteigenschaft-der-datenbank-aendern.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Verbundanwendung aus einer existieren Anwendung erzeugen</title>
<pubDate>Tue, 9 Mar 2010 10:15:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm</link>
<category>Ansichten</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm</guid>
<content:encoded><![CDATA[ Um mit dem Composite Application Editor (CAE) arbeiten zu können, muss eine Notes Datenbank als Verbundanwendung definiert werden. Hierzu sind die nachfolgende Schritte notwendig:  <p>1. Im Designer zu "Verbundanwendungen - Anwendungen" navigieren. Ein Klick auf &#8222;Neu Verbundanwendung&#8220; <br /> <br /> <img  alt="Image:Verbundanwendung aus einer existieren Anwendung erzeugen" border="0" src="http://www.mmi-consult.de/FAQ/dx/verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm/content/M2?OpenElement" /> <p>2. Hier die Eigenschaften der neuen Verbundanwendung <br /> <br /> <img  alt="Image:Verbundanwendung aus einer existieren Anwendung erzeugen" border="0" src="http://www.mmi-consult.de/FAQ/dx/verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm/content/M3?OpenElement" /> <p>3. Nach Klick auf &#8222;OK&#8220; wird das generierte WSDL angezeigt  <p><img  alt="Image:Verbundanwendung aus einer existieren Anwendung erzeugen" border="0" src="http://www.mmi-consult.de/FAQ/dx/verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm/content/M4?OpenElement" /> <p>4. Nach schließen des WSDLs wird die Definition mit Namen angezeigt <br /> <img  alt="Image:Verbundanwendung aus einer existieren Anwendung erzeugen" border="0" src="http://www.mmi-consult.de/FAQ/dx/verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm/content/M5?OpenElement" /> <p><br /> <a href="http://www.mmi-consult.de/FAQ/dx/starteigenschaft-der-datenbank-aendern.htm" title="starteigenschaft-der-datenbank-aendern.htm"/>Nächster Schritt: Starteigenschaft der Datenbank ändern</a>  <p><a href="http://www.mmi-consult.de/FAQ/dx/vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm" title="vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm"/>Zurück zum Verbundanwendungen - Index</a>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Vorhandene Domino Anwendungen zu Verbundanwendungen umgestalten</title>
<pubDate>Tue, 9 Mar 2010 10:15:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm</link>
<category>Ansichten</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm</guid>
<content:encoded><![CDATA[ Vorhandene Domino Anwendungen verwenden leider nicht das moderne Ansichten-Design aus z.B. der Maildatenbank von 8.5. Die nachfolgende Vorgehensweise erlaubt es, vorhandene Domino Anwendungen zu Verbundanwendungen umzugestalten um das zusätzliche Feature der &nbsp;"JavaViews" zu verwenden.<br /> Das nachfolgende Beispiel basiert auf der Diskussionsschablone von IBM Lotus Notes ND 7. Eine Anwendung anhand dieser Schablone wird als Ausgangsbasis verwendet und mit folgenden Schritten angepasst:<br /> <br /> <a href="http://www.mmi-consult.de/FAQ/dx/verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm" title="verbundanwendung-aus-einer-existieren-anwendung-erzeugen.htm"/>Verbundanwendung aus einer existieren Anwendung erzeugen</a> <br /> <a href="http://www.mmi-consult.de/FAQ/dx/starteigenschaft-der-datenbank-aendern.htm" title="starteigenschaft-der-datenbank-aendern.htm"/>Starteigenschaft der Datenbank ändern</a><br /> <a href="http://www.mmi-consult.de/FAQ/dx/den-cae-verwenden.htm" title="den-cae-verwenden.htm"/>Den CAE verwenden</a> <br /> <a href="http://www.mmi-consult.de/FAQ/dx/komponenteneigenschaften-bearbeiten.htm" title="komponenteneigenschaften-bearbeiten.htm"/>Komponenteneigenschaften bearbeiten</a><br /> <a href="http://www.mmi-consult.de/FAQ/dx/erweiterte-komponenteneigenschaften-bearbeiten.htm" title="erweiterte-komponenteneigenschaften-bearbeiten.htm"/>Erweiterte Komponenteneigenschaften bearbeiten</a> <br /> <br /> <br /> <br />  &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/vorhandene-domino-anwendungen-zu-verbundanwendungen-umgestalten-javaviews.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Einführung in die Entwicklung von Composite Applications</title>
<pubDate>Mon, 8 Mar 2010 17:00:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/einführung-in-die-entwicklung-von-composite-applications.htm</link>
<category>EntwicklerCamp</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/einführung-in-die-entwicklung-von-composite-applications.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/einführung-in-die-entwicklung-von-composite-applications.htm</guid>
<content:encoded><![CDATA[ Beim diesjährigen<a href=http://www.entwicklercamp.de target=_blank> Entwicklercamp 2010</a> in Gelsenkirchen haben wir eine HandsOn Session zum obigen Thema durchgeführt. Die Beispieldateien hierfür stellen wir gern zur Verfügung. Die Anleitung für die <a href="http://www.mmi-consult.de/FAQ/dx/Einführung in Erstellung einer Composite Application - Handson.pdf/$file/Einführung in Erstellung einer Composite Application - Handson.pdf" title="Einführung in Erstellung einer Composite Application - Handson.pdf"Einführung in Erstellung einer Composite Application - Handson.pdf/>Durchführung einer eigenen Übung </a> und die <a href="http://www.mmi-consult.de/FAQ/dx/Einführung in Erstellung einer Composite Application.pdf/$file/Einführung in Erstellung einer Composite Application.pdf" title="Einführung in Erstellung einer Composite Application.pdf"Einführung in Erstellung einer Composite Application.pdf/>Themeneinführung </a> finden sich hier.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/einführung-in-die-entwicklung-von-composite-applications.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/einführung-in-die-entwicklung-von-composite-applications.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Objektorientierter Entwurf und Entwicklung von Domino Anwendungen</title>
<pubDate>Mon, 8 Mar 2010 16:00:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/objektorientierter-entwurf-und-entwicklung-von-domino-anwendungen.htm</link>
<category>EntwicklerCamp</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/objektorientierter-entwurf-und-entwicklung-von-domino-anwendungen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/objektorientierter-entwurf-und-entwicklung-von-domino-anwendungen.htm</guid>
<content:encoded><![CDATA[ Beim diesjährigen <a href=http://www.entwicklercamp.de/ target=_blank><span style="text-decoration:underline">Entwicklercamp 2010</span></a> in Gelsenkirchen haben wir unsere Erfahrungen und Vorgehensweisen bei der Entwicklung von Domino Anwendungen mit objektorientierten Ansätzen, Mitteln und Werkzeugen vorgestellt. <br /> <br /> Das Vortragsmaterial findet sich hier <a href="http://www.mmi-consult.de/FAQ/dx/Objektorienierte Entwicklung.pdf/$file/Objektorienierte Entwicklung.pdf" title="Objektorienierte Entwicklung.pdf"Objektorienierte Entwicklung.pdf/>Objektorientierte Entwicklung</a>  <br /> <br />Siehe hierzu auch: <a href="http://www.mmi-consult.de/FAQ/dx/werkzeuge-für-objektorientierte-entwicklung-von-domino-anwendungen.htm" title="werkzeuge-für-objektorientierte-entwicklung-von-domino-anwendungen.htm"/>Werkzeuge für objektorientierte Entwicklung von Domino Anwendungen</a> <br />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/objektorientierter-entwurf-und-entwicklung-von-domino-anwendungen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/objektorientierter-entwurf-und-entwicklung-von-domino-anwendungen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Werkzeuge für objektorientierte Entwicklung von Domino Anwendungen</title>
<pubDate>Tue, 2 Mar 2010 08:00:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/werkzeuge-für-objektorientierte-entwicklung-von-domino-anwendungen.htm</link>
<category>LotusScript</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/werkzeuge-für-objektorientierte-entwicklung-von-domino-anwendungen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/werkzeuge-für-objektorientierte-entwicklung-von-domino-anwendungen.htm</guid>
<content:encoded><![CDATA[ Im Rahmen unserer objektorientierter Implementierung von selbstdefinierten Klassen von Kundenanwendungen und eigenen Produkten setzen wir seit geraumer Zeit ein zusätzliches Werkzeug für die Analyse- und Implementierungsphase ein: "Enterprise Architect" von SparxSystems. <br /> <br /> Einer der Gründe warum wir mit diesem OOA/OOD Werkzeug arbeiten, ist die Möglichkeit eigene CodeTemplates zu erstellen, um neben den Standard-Sprachen (wie Java, C, VB und weitere) auch sonstige Programmiersprachen für MDG (model driven generation) einzusetzen. <br /> <br /> Das von uns im entworfene CodeTemplate unterstützt (wie könnte es anders sein...) LotusScript. Wir haben dieses nun als OpenSource Projekt unter <a href=http://eactls.sourceforge.net/ target=_blank><span style="text-decoration:underline">http://eactls.sourceforge.net</span></a> publiziert, um es anderen Entwicklern zugänglich zu machen. Aktuell hat es einen frühen Beta Status (noch einige bekannte Unzulänglichkeiten; noch keine Dokumentation verfügbar). Vielleicht finden sich ja Mitstreiter, die Interesse haben, das CodeTemplate zu vervollständigen. Anregungen und Fehlerberichte nehme ich gern entgegen.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/werkzeuge-für-objektorientierte-entwicklung-von-domino-anwendungen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/werkzeuge-für-objektorientierte-entwicklung-von-domino-anwendungen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>RSS Feeds in Anwendungen implementieren</title>
<pubDate>Sun, 31 Jan 2010 14:37:05 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/10.07.2009143705MMEGT9.htm</link>
<category>RSS</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/10.07.2009143705MMEGT9.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/10.07.2009143705MMEGT9.htm</guid>
<content:encoded><![CDATA[ Beliebige Domino Anwendungen können mit wenigen Mitteln um einen RSS Feed erweitert werden, um Inhalte dynamisch zu "pushen" statt konventionall EMails an einen nicht näher definierbaren Verteiler zu senden. <br /> <br /> Hierzu sind z.B. zwei zusätzliche Gestaltungselemente erforderlich: <br /> <br /> 1. Ansicht, welche Inhaltsdokumente selektiert und die Kernstruktur des Feed-XML aus den Dokumenteninhalten aufbereitet <br /> 2. Seite mit Einbettung der Feed-Ansicht, um sie in das erforderlich XML-"Rahmenwerk" einkleiden. Alternativ kann auch ein ""$$ViewTemplate" für die Ansicht eingesetzt werden  <p><strong><span style="text-decoration:underline">1. Aufbau der Ansicht:</span></strong>  <p> <table border width=100%> <tr valign=top> <td width=6% bgcolor=#b1b1d2><strong>Spalte</strong><strong> </strong> <td width=70% bgcolor=#b1b1d2><strong>Spaltenformel</strong><strong> </strong> <td width=22% bgcolor=#b1b1d2><strong>Bedeutung</strong><strong> </strong> <tr valign=top> <td>1  <td>"&lt;item&gt;"   <td>Anfangs-Tag eines Eintrags  <tr valign=top> <td>2  <td>"&lt;title&gt;"+ &lt;&lt;field name for title&gt; + "&lt;/title&gt;"   <td>Item Tag  <tr valign=top> <td>3  <td>"&lt;link&gt;"+&lt;field name for link &gt; +"&lt;/link&gt;"   <td>Link Tag  <tr valign=top> <td>4  <td>"&lt;description&gt;"+&gt;"+&lt;field name for description&gt; +"&lt;/description&gt;"   <td>Beschreibung  <tr valign=top> <td>5  <td>"&lt;pubDate&gt;"+@Text(&lt;field name for Publish Date&gt;)+"&lt;/pubDate&gt;"   <td>Publikationsdatum  <tr valign=top> <td>6  <td>"&lt;author&gt;"+&lt;field name for Author &gt;+"&lt;/author&gt;""   <td>Autor  <tr valign=top> <td>7  <td>"&lt;/item&gt;"   <td>Ende-Tag eines Eintrags</table> <br /> <br /><br /> <br /> <br /> <br />  <p><strong><span style="text-decoration:underline">2. Einbettung auf eine Seite:</span></strong>  <p>Folgender XML Code ist als Text vor der einbetteten Ansicht auf die Seite einzugeben:  <p><pre>  <p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br /> &lt;rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"&gt;<br /> &lt;channel&gt;<br /> &lt;title&gt;Mein erster RSS Feed&lt;/title&gt;<br /> &lt;link&gt; http://www.mmi-consult.de&lt;/link&gt;<br /> &lt;language&gt;de-de&lt;/language&gt;<br /> &lt;ttl&gt;40&lt;/ttl&gt;<br /> &lt;lastBuildDate&gt;Wed, 29 Apr 2009 07:57:33 GMT&lt;/lastBuildDate&gt;<br /> &lt;description&gt;Aktuelle Beiträge&lt;/description&gt;  <p></pre>  <p>Statt des festen Datums für "lastBuildDate" sollte ggf. ein berechneter Text z.B. mit mit einem @DBColumn in die entsprechende Ansicht verwendet werden, um die jeweils letzte Ändung bereits im Feed abzubilden.  <p>Danach ist die RSS-Feedansicht einzubetten und mit nachfolgendem XML Code abzuschließen.  <p><pre> &lt;/channel&gt;<br /> &lt;/rss&gt;</pre>  <p>Damit diese Ansicht als HTML (ohne weiteres Rendering) an den Browser übertragen wird, ist es zwingend erforderlich, auf der Seite folgendes Merkmal zu setzen: <br /> <img  alt="Image:RSS Feeds in Anwendungen implementieren" border="0" src="http://www.mmi-consult.de/FAQ/dx/10.07.2009143705MMEGT9.htm/content/M2?OpenElement" /><br /> <br /> <img  alt="Image:RSS Feeds in Anwendungen implementieren" border="0" src="http://www.mmi-consult.de/FAQ/dx/10.07.2009143705MMEGT9.htm/content/M3?OpenElement" /> <p><strong><span style="text-decoration:underline">URL für den Aufruf des RSS Feed (z.B. aus der Notes 8 Seitenleiste):</span></strong>  <p>http://<em>&lt;Servername&gt;</em>/<em>&lt;Datenbankpfad&gt;</em>/<em>&lt;Seitenname&gt;</em>?openPage   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/10.07.2009143705MMEGT9.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/10.07.2009143705MMEGT9.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Man kann Produktlokalisierungen auch übertreiben</title>
<pubDate>Mon, 25 Jan 2010 15:30:18 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/man-kann-produktlokalisierungen-auch-übertreiben.htm</link>
<category>Mailfile</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/man-kann-produktlokalisierungen-auch-übertreiben.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/man-kann-produktlokalisierungen-auch-übertreiben.htm</guid>
<content:encoded><![CDATA[ In der deutschen Lotus Notes 8.5 Mailschablone hat sich leider ein Fehler durch zu umfangreiche Übersetzungen eingeschlichen. <br /> <br /> So erscheint nach dem Update auf 8.5 bei Benutzern die zuvor eine HTML Signatur (somit in Form einer externen Datei) eingesetzt haben, eine Fehlermeldung: <br /> <br /> <img  alt="Image:Man kann Produktlokalisierungen auch übertreiben" border="0" src="http://www.mmi-consult.de/FAQ/dx/man-kann-produktlokalisierungen-auch-übertreiben.htm/content/M2?OpenElement" /><br /> <br /> Diese entsteht, da der Notes Client versucht, die vorliegende HTML Signatur in das Mailfile zu importieren, damit diese roamen kann. Leider sind die Namen der zu verwendenden Import-Filter in der deutschem Mail-Schablone mit übersetzt worden: <a href="http://www-01.ibm.com/support/docview.wss?uid=swg21380746" target=_blank>IBM Technote</a> <br /> <br /> In interaktiver Import einer HTML funktioniert einwandfrei. Die Korrektur muss somit durch einen Entwickler vorgenommen und vom Administrator bereitgestellt werden.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/man-kann-produktlokalisierungen-auch-übertreiben.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/man-kann-produktlokalisierungen-auch-übertreiben.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Einführung in den Eclipse basierten LotusScript Editor</title>
<pubDate>Tue, 22 Dec 2009 16:25:01 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/einführung-in-den-eclipse-basierten-lotusscript-editor.htm</link>
<category>Domino Designer</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/einführung-in-den-eclipse-basierten-lotusscript-editor.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/einführung-in-den-eclipse-basierten-lotusscript-editor.htm</guid>
<content:encoded><![CDATA[ Erfahrene Entwickler haben sich seit Monaten gefreut, den neuen Domino Designer 8.5.1 zu erhalten, der einen neuen internen Editor für LotusScript enthält. <br /> <br />Bei den ersten Gehversuchen sind die ersten Schritte auch nicht schwer, doch danach stellen sich schnell zusätzliche Fragen. Vielleicht hilft Fundstück im Web (IBM Learning Wiki) weiter. <br /> <br />--> <a href="http://www-10.lotus.com/ldd/learnwiki.nsf/dx/Module_Introducing_the_Eclipse-based_LotusScript_Editor_in_IBM_Lotus_Domino_Designer_8.5.1" target=_new>Introducing the Eclipse-based LotusScript Editor in IBM Lotus Domino Designer 8.5.1</a> <br /> <br />Viel Spaß beim durcharbeiten.  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/einführung-in-den-eclipse-basierten-lotusscript-editor.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/einführung-in-den-eclipse-basierten-lotusscript-editor.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Laufzeitverhalten von Hintergrundagenten optimieren, die Dokumente suchen</title>
<pubDate>Thu, 12 Nov 2009 17:03:50 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/laufzeitverhalten-von-hintergrundagenten-optimieren-die-dokumente-suchen.htm</link>
<category>Notes.ini</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/laufzeitverhalten-von-hintergrundagenten-optimieren-die-dokumente-suchen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/laufzeitverhalten-von-hintergrundagenten-optimieren-die-dokumente-suchen.htm</guid>
<content:encoded><![CDATA[ Entwickler müssen oftmals Hintergrundfunktionen implementieren, die nach bestimmten Dokumenten suchen. Wenn die Datenbank in der gesucht wird, keinen Volltextindex hat (oftmals eine Administrator-Entscheidung oder -Konfiguration), zur Suche jedoch Funktionen verwendet werden, die einen Volltextindex voraussetzen, ist der Domino Server "so nett" einen Index für die Suche zu erstellen, den er jedoch nach Abschluss der Suche wieder verwirft. Bei Zyklischen Agenten ist das ein absoluter "Performance-Killer". <br /> <br />Ein Notes.ini Eintrag kann die Erzeugung dieser temporären Volltext-Indizes unterdrücken: <br /><pre> <br />FT_FLY_INDEX_OFF=1 <br /></pre> <br /> <br /><strong>Aber Achtung liebe Administratoren</strong>. Anwendungen die einen Volltextindex für die Suche erfordern, werden mit Laufzeitfehlern beendet. In diesem Fall müssen Entwickler eine entsprechende Behandlung der Laufzeitfehler einbauen oder Administratoren diese Datenbank dann mit einem (permanenten) Volltextindex versehen.  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/laufzeitverhalten-von-hintergrundagenten-optimieren-die-dokumente-suchen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/laufzeitverhalten-von-hintergrundagenten-optimieren-die-dokumente-suchen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Zufälliger &quot;Neue Mail&quot; Infosound</title>
<pubDate>Mon, 7 Sep 2009 08:32:31 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/zufälliger-neue-mail-infosound.htm</link>
<category>Mailfile</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/zufälliger-neue-mail-infosound.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/zufälliger-neue-mail-infosound.htm</guid>
<content:encoded><![CDATA[ Beim Erhalt einer neuen Mail wird von IBM Lotus Notes immer wieder der gleiche Infosound verwendet. Die hier beschriebene Code-Erweitung &nbsp;ändert jedesmal, wenn die Maildatenbank neu geöffnet wird, per Zufall auf einen anderen Infosound. Hierzu wird ein Verzeichnis mit vorhandenen WAV Dateien verwendet, welches vorher natürlich konfiguriert werden muss, wozu der hier beschriebene Agent unter 3. dient. <br /> Wir legen bei uns die Mailtunes in ein händisch erzeugtes Unterverzeichnis des Lotus Notes Programmverzeichnisses. Das Verzeichnis kann jedoch auch beliebig auf der lokalen Platte liegen. <em><br /> <br /> Nun zum Code :</em> <strong><br /> <br /> 1. Im Datenbankscript der Maildatenbank/Schablone folgende Sub hinzufügen:</strong> <br /> <pre> <br /> Sub CMT <br />  &nbsp; &nbsp; &nbsp;REM "for setup the local mail tune" <br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;Set Session=New NotesSession <br />  &nbsp; &nbsp; &nbsp;Dim tAgent As NotesAgent <br />  &nbsp; &nbsp; &nbsp;Dim availTunes List As String <br />  &nbsp; &nbsp; &nbsp;Dim i, count As Integer <br />  &nbsp; &nbsp; &nbsp;Dim filename As String <br />  &nbsp; &nbsp; &nbsp;Dim ver As Integer <br />  &nbsp; &nbsp; &nbsp;Dim wavfiledir As String <br />  &nbsp; &nbsp; &nbsp;Dim tune As String <br />  &nbsp; &nbsp; &nbsp;Dim inivar &nbsp;As String <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;wavfiledir=session.Getenvironmentstring("MailTuneDir") <br />  &nbsp; &nbsp; &nbsp;If (wavfiledir="") Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If session.Getenvironmentstring("MailTuneStatus") = "True" Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Print "No User Specific Tunes Found, starting Config .." <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set tAgent= session.currentdatabase.getAgent("SetUpTunes") <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call tAgent.Run <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;wavfiledir=session.Getenvironmentstring("MailTuneDir") <br />  &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp;ver=Mid$(Session.notesversion,9,1) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'This will return a 4 or a 5 <br />  &nbsp; &nbsp; &nbsp;availTunes(0)="Please copy some WAV files into " &amp; wavfiledir &nbsp; 'This handles the "I don't have any .wav files" issue <br />  &nbsp; &nbsp; &nbsp;If (ver<5) Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;inivar="NewMailTune" &nbsp; ' For Release 4 Notes.ini Files <br />  &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;inivar="Incoming Mail Sound" &nbsp; ' For Release 5 and higher <br />  &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> ' get correct path format due to client incompatibilites &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp;If Right(wavfiledir,1) <> "\" Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;wavfiledir = wavfiledir &amp; "\" <br />  &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;fileName = Dir$(wavfiledir &amp; "*.wav", 0) <br />  &nbsp; &nbsp; &nbsp;If filename<>"" Then &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Do While fileName <> "" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'This builds an array of .wavs <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;availTunes(count+1) = fileName <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fileName = Dir$() <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;count=count+1 <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Loop &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Randomize &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'Initialize random # generator <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i=Cint(Rnd()*count) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tune=availTunes(i) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'pick a tune, any tune <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call Session.SetEnvironmentVar (inivar, wavfiledir &amp; &nbsp;tune,True) &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Print "Changed NewMailTune to: " &amp; tune &nbsp;'gimme some feedback <br />  &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Print "No Files in MailTune Directory found !" <br />  &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp;End <br /> ' just some error handling if the mailtune dir isnt there <br /> PathNotFound: <br />  &nbsp; &nbsp; &nbsp;Print "MailTune Dir &nbsp;which is configured in the Notes.ini not Found on this System ! Try to create a new one !" <br />  &nbsp; &nbsp; &nbsp;End <br />  &nbsp; &nbsp; &nbsp;<br /> End Sub <br /> </pre> <strong><br /> <br /> 2. Am Ende des Postopen events der Maildatenbank/Schablone einfach nur den Call CMT hinzufügen:</strong> <br /> <pre> <br /> Sub Postopen(Source As Notesuidatabase) <br />  &nbsp; &nbsp; &nbsp;'********************************************* <br />  &nbsp; &nbsp; &nbsp;'Begin Quota Checking Code <br />  &nbsp; &nbsp; &nbsp;'********************************************* <br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;Dim quotaCheck As New CheckQuota <br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;If quotaCheck.isEnabled Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Not(quotaCheck.IsQuotaMailFileOwner) Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call quotaCheck.SetCalMgrINI <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;'********************************************* <br />  &nbsp; &nbsp; &nbsp;'End Quota Checking Code <br />  &nbsp; &nbsp; &nbsp;'********************************************* <br />  &nbsp; &nbsp; &nbsp;Call FollowUpMigration(source) <br />  &nbsp; &nbsp; &nbsp;' Custom expiration feature code <br />  &nbsp; &nbsp; &nbsp;Dim s As New NotesSession <br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;If s.GetEnvironmentString("CustomExpirationEnabled") = "1" Then &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call &nbsp;DBOpenExtendedForCustomExp(source) <br />  &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp;Call SetupCalendarViewNotices <em><br />  &nbsp; &nbsp; &nbsp;'*********************************************</em> <em><br />  &nbsp; &nbsp; &nbsp;' &nbsp; &nbsp; &nbsp; &nbsp;for mailtune changes</em> <em><br />  &nbsp; &nbsp; &nbsp;'*********************************************</em> <em><br />  &nbsp; &nbsp; &nbsp;Call CMT</em> &nbsp; &nbsp; &nbsp; &nbsp; <br /> End Sub <br /> </pre> <strong><br /> <br /> 3. Zum Aktivieren/Deaktivieren kann z.B. dieser Agent dienen, wobei dieser als Alias den Namen "SetUpTunes" haben sollte, da dieser aus der Sub CMT referenziert wird:</strong> <br /> <pre> <br /> Sub Initialize <br />  &nbsp; &nbsp; &nbsp;Dim uiws As New notesuiworkspace <br />  &nbsp; &nbsp; &nbsp;Dim session As New notessession <br />  &nbsp; &nbsp; &nbsp;Dim FilePath As String <br />  &nbsp; &nbsp; &nbsp;Dim Info As Integer <br />  &nbsp; &nbsp; &nbsp;FilePath =session.GetEnvironmentString("MailTuneDir") <br />  &nbsp; &nbsp; &nbsp;If (FilePath ="") Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FilePath="C:\" <br />  &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;Info = uiws.Prompt (PROMPT_YESNO,"MailTunes", "Enable MailTunes ?") <br />  &nbsp; &nbsp; &nbsp;If Info = 1 Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;session.Setenvironmentvar "MailTuneStatus", "True" <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mailtunedir = uiws.OpenFileDialog( False, "Bitte das Verzeichniss mit den WAV Files auswählen !","WAV Daten|*.wav", FilePath) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Isarray(mailtunedir) Then &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If ( mailtunedir(0) <>"") Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FilePath=Strleftback(Cstr(mailtunedir(0)),"\") <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;session.Setenvironmentvar "MailTuneDir", FilePath <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Info = uiws.Prompt (PROMPT_YESNO,"MailTunes", "Disable MailTunes ?") <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Info =1 Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;session.Setenvironmentvar "MailTuneStatus", "False" <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp;<br /> End Sub <br /> </pre> <strong><br /> <br /> 4. Hier noch ein paar Wav files <a href="http://www.mmi-consult.de/FAQ/dx/mailtunes.rar/$file/mailtunes.rar" title="mailtunes.rar"mailtunes.rar/>mailtunes.rar</a>.</strong> <br /> Allerdings gibt es im Internet viele Web-Sites, welche sich nur mit solchen WAV files beschäftigen.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/zufälliger-neue-mail-infosound.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/zufälliger-neue-mail-infosound.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Was will mir Lotus Notes jetzt sagen?</title>
<pubDate>Wed, 26 Aug 2009 14:40:49 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/was-will-mir-lotus-notes-jetzt-sagen.htm</link>
<category>Fehlerbehandlung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/was-will-mir-lotus-notes-jetzt-sagen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/was-will-mir-lotus-notes-jetzt-sagen.htm</guid>
<content:encoded><![CDATA[ Beim Klick auf einen Button einer bestehenden Lotus Notes Anwendungen erscheint bei einem Benutzer die Fehlermeldung: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; <br /> <br /> <img  alt="Image:Was will mir Lotus Notes jetzt sagen?" border="0" src="http://www.mmi-consult.de/FAQ/dx/was-will-mir-lotus-notes-jetzt-sagen.htm/content/M2?OpenElement" /><br /> <br /> Leider weiss ich noch nicht, was man mir hierdurch mitteilen möchte...... Der Verweis auf die Knowledgebase bringt auch die abenteuerlichsten Hinweise. Werde wohl doch die Anwendung (wie bislang früher in vergleichbaren Fällen) debuggen müssen.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/was-will-mir-lotus-notes-jetzt-sagen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/was-will-mir-lotus-notes-jetzt-sagen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Xpage Steuerelemente in der Palette beeinflussen</title>
<pubDate>Mon, 17 Aug 2009 10:52:47 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/xpage-werkzeug-palette-beeinflussen.htm</link>
<category>XPages</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/xpage-werkzeug-palette-beeinflussen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/xpage-werkzeug-palette-beeinflussen.htm</guid>
<content:encoded><![CDATA[ Mit Notes 8 wurde ein einheitlicher Vorgabendialog (mit allen einstellbaren Optionen) implementiert. Gerade dann, wenn man erwartet dort ALLE Clienteinstellungen machen zu können, werden Entwickler enttäuscht! <br /> <br /> Befindet man sich im Domino Designer 8.5 und ruft den Vorgabendialog auf, werden dort zusätzliche Optionen (eben für den Domino Designer) angeboten. <br /> <br /> <img  alt="Image:Xpage Steuerelemente in der Palette beeinflussen" border="0" src="http://www.mmi-consult.de/FAQ/dx/xpage-werkzeug-palette-beeinflussen.htm/content/M2?OpenElement" /><br /> <br /> Hierzu zählen auch Vorgabeeinstellungen, welche die darzustellenden Steuerelemente in der Palette festlegen. Bitte einmal prüfen, ob alle aktiviert sind (bei mir war das nicht so....).   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/xpage-werkzeug-palette-beeinflussen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/xpage-werkzeug-palette-beeinflussen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Seiten ohne Form Tag generieren lassen</title>
<pubDate>Sat, 15 Aug 2009 12:39:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/seiten-ohne-form-tag-generieren-lassen.htm</link>
<category>XPages</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/seiten-ohne-form-tag-generieren-lassen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/seiten-ohne-form-tag-generieren-lassen.htm</guid>
<content:encoded><![CDATA[ In manchen Anwendungsfällen, werden HTML-Gestaltungen <strong>ohne</strong> ein Form-Tag benötigt. Man kann durchauf verzichten, wenn Inhate der Xpage lediglich zur Darstellung (nicht zu Eingabe von Daten verwendet werden. Dieses ist der Rendering-Engine über Eigenschaften der XPage mitzuteilen: <br /> <br /><img  alt="Image:Seiten ohne Form Tag generieren lassen" border="0" src="http://www.mmi-consult.de/FAQ/dx/seiten-ohne-form-tag-generieren-lassen.htm/content/M2?OpenElement" />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/seiten-ohne-form-tag-generieren-lassen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/seiten-ohne-form-tag-generieren-lassen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Liste der ODS (On Disk Structure) Versionen</title>
<pubDate>Thu, 23 Jul 2009 12:07:07 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/liste-der-ods-on-disk-structure-versionen.htm</link>
<category>ODS</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/liste-der-ods-on-disk-structure-versionen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/liste-der-ods-on-disk-structure-versionen.htm</guid>
<content:encoded><![CDATA[ Lotus Notes/Domino verwendet für verschiedene Produktversionen unterschiedliche ODS Nummern. <br /> Durch ändern/aktualisieren der ODS Version werden unterschiedliche Datenbankmerkmale aktiv/nutzbar. <br /> <br /> Hier eine aktuelle Liste ab Lotus Notes/Domino Release 2 :<br /> <br /> <pre> <br /> R2 &nbsp; &nbsp;: ODS 16 <br /> R3 &nbsp; &nbsp;: ODS 17 <br /> R4 &nbsp; &nbsp;: ODS 20 <br /> R5 &nbsp; &nbsp;: ODS 41 <br /> R6 &nbsp; &nbsp;: ODS 43 <br /> R7 &nbsp; &nbsp;: ODS 43 <br /> R8 &nbsp; &nbsp;: ODS 48 <br /> R8.5 &nbsp;: ODS 51 <br /> </pre>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/liste-der-ods-on-disk-structure-versionen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/liste-der-ods-on-disk-structure-versionen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Versionierung von Änderungen an Xpages</title>
<pubDate>Tue, 14 Jul 2009 08:51:04 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/versionierung-von-änderungen-an-xpages.htm</link>
<category>XPages</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/versionierung-von-änderungen-an-xpages.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/versionierung-von-änderungen-an-xpages.htm</guid>
<content:encoded><![CDATA[ Bislang hat man als Entwickler vor größeren Gestaltungsänderungen gern einmal eine Kopie des Gestaltungselementes angelegt, um wieder zu früheren Versionen (Fassungen) zurückkehren zu können. Leider funktioniert diese Vorgehensweise bei XPages nicht ganz problemlos <a href="http://www.mmi-consult.de/FAQ/dx/umbenennung-von-xpages-schlägt-fehlt.htm" title="umbenennung-von-xpages-schlägt-fehlt.htm"/>Umbenennung von XPages schlägt fehlt</a><br /> <br /> Durch die Verwendung von Eclipse Basiskomponenten ist dieses Vorgehen auch nicht mehr notwendig. Hier werden alle Änderungen (am Source-Code) von Eclipse mit protokolliert. Um zu einer früheren Fassung der XPage zu gelangen, wechselt man von der Gestaltungsansicht <br /> <img  alt="Image:Versionierung von Änderungen an Xpages" border="0" src="http://www.mmi-consult.de/FAQ/dx/versionierung-von-änderungen-an-xpages.htm/content/M2?OpenElement" /><br /> <br /> in die Quellansicht <br /> <br /> <img  alt="Image:Versionierung von Änderungen an Xpages" border="0" src="http://www.mmi-consult.de/FAQ/dx/versionierung-von-änderungen-an-xpages.htm/content/M3?OpenElement" /><br /> <br /> Dort steht im Kontext-Menü (rechte Maustaste) die Option zur Zurücksetzen auf die letzte Fassung oder eine beliebige Fassung zur Verfügung: <br /> <br /> <img  alt="Image:Versionierung von Änderungen an Xpages" border="0" src="http://www.mmi-consult.de/FAQ/dx/versionierung-von-änderungen-an-xpages.htm/content/M4?OpenElement" /><br /> <br /> Bei Auswahl "Lokales Protokoll" wird eine Auswahl früherer Fassungen angeboten: <br /> <img  alt="Image:Versionierung von Änderungen an Xpages" border="0" src="http://www.mmi-consult.de/FAQ/dx/versionierung-von-änderungen-an-xpages.htm/content/M5?OpenElement" />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/versionierung-von-änderungen-an-xpages.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/versionierung-von-änderungen-an-xpages.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Umbenennung von XPages schlägt fehlt</title>
<pubDate>Tue, 14 Jul 2009 08:24:24 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/umbenennung-von-xpages-schlägt-fehlt.htm</link>
<category>XPages</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/umbenennung-von-xpages-schlägt-fehlt.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/umbenennung-von-xpages-schlägt-fehlt.htm</guid>
<content:encoded><![CDATA[ Gern legt man sich als Entwickler vor größeren Umgestaltungen eine Kopie des Gestaltungselementes an, um ggf. wieder zum Ausgangselement zurück kommen zu können, wenn komplexere Änderungen fehlschlagen. <br /> <br /> Bei XPages ist hier besondere Vorsicht geboten, da (meines Erachtens) ein Produktfehler den Namen des .Gestaltungselementes nicht korrekt ändert. Nachfolgendes Beispiel zeigt ein Benutzerdefiniertes Steuerelement (custom control), das ursprünglich einmal "ccPageMenu" benannt war. Nach Erstellung einer Kopie im Domino Designer erhält dieses somit den Namen "Kopie_von_ccPageMenu". Auch nach der Löschung des ursprünglichen Gestaltungselementes und Umbenennung durch <F2> erhält dieses nicht mehr den ursprünglichen Zustand zurück. <br /> <br /> <img  alt="Image:Umbenennung von XPages schlägt fehlt" border="0" src="http://www.mmi-consult.de/FAQ/dx/umbenennung-von-xpages-schlägt-fehlt.htm/content/M2?OpenElement" /><br /> <br /> Diese (Fehl-)verhalten führt dazu, dass andere XPages oder Benutzerdefinierte Steuerelemente (custom controls) eine nicht mehr intakte Referenz aufweisen: <br /> <img  alt="Image:Umbenennung von XPages schlägt fehlt" border="0" src="http://www.mmi-consult.de/FAQ/dx/umbenennung-von-xpages-schlägt-fehlt.htm/content/M3?OpenElement" /><br /> <br /> Man bekommt einen zusätzlichen Hinweis, wenn man in der Steuerlemente-Leiste dieses Objekt identifiziert: <br /> <img  alt="Image:Umbenennung von XPages schlägt fehlt" border="0" src="http://www.mmi-consult.de/FAQ/dx/umbenennung-von-xpages-schlägt-fehlt.htm/content/M4?OpenElement" /><br /> Dieses erscheint nämlich immer noch unter dem ursprünglichen Namen. <br /> <strong><br /> Lösung?</strong> Mir ist zur Zeit keine Methode bekannt, diesem Gestaltungselement einen korrekten Namen zuzuweisen. Lediglich die Erstellung eines neuen Gestaltungselementes (mit dem gewünschten Namen) und umkopieren der Elemente auf der XPage führen zum Erfolg! <br /> <strong><br /> Zusätzlicher Hinweis:</strong><br /> Man kann sich das Erstellen der Kopie zu Beginn größerer Änderungen (veraltete Vorgehensweise aus früheren Tagen) sparen, wenn man die Versionierung von Eclipse verwendet, auf eine führere Fassung zurückzusetzen. Siehe auch unser Tipp <a href="http://www.mmi-consult.de/FAQ/dx/versionierung-von-änderungen-an-xpages.htm" title="versionierung-von-änderungen-an-xpages.htm"/>Versionierung von Änderungen an Xpages</a>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/umbenennung-von-xpages-schlägt-fehlt.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/umbenennung-von-xpages-schlägt-fehlt.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Maskenaktionen in Abhängigkeit von aktuellen Feldern darstellen</title>
<pubDate>Fri, 10 Jul 2009 16:47:32 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/maskenaktionen-in-abhängigkeit-von-aktuellen-feldern-darstellen.htm</link>
<category>Maskengestaltung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/maskenaktionen-in-abhängigkeit-von-aktuellen-feldern-darstellen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/maskenaktionen-in-abhängigkeit-von-aktuellen-feldern-darstellen.htm</guid>
<content:encoded><![CDATA[ Mache Maskenaktionen mögen erfordern, dass Benutzer auf entsprechende Felder positioniert sind, damit die hinterlegten Funktionen erlaubt oder sinnvoll sind (Laufzeitfehlermeldungen vermieden werden). <br /> <br /> Das nachfolgende Beispiel stellt eine Maskenaktion nur dar, wenn der Cursor im Feld "Body" platziert ist: <br /> <br /> Hierzu werden jeweils die <strong>Entering </strong>und <strong>Exiting </strong>Events des entsprechenden Feldes verwendet, um eine temporäre Zustandsvariable zur Steuerung der Sichtbarkeit des Maskenaktion zu steuern: <br /> <br /> <pre><br /> Sub Entering(Source As Field) <br /> <br />  &nbsp;Dim ws As New NotesUiWorkspace <br />  &nbsp;Dim doc As NotesDocument <br />  &nbsp;<br />  &nbsp;Set doc = ws.currentDocument.Document <br />  &nbsp;doc.inBody = "1" <br />  &nbsp;Call ws.CurrentDocument.Refresh <br />  &nbsp;<br /> End Sub <br /> </pre> <br /> <br /> <pre><br /> Sub Exiting(Source As Field) <br /> <br />  &nbsp;Dim ws As New NotesUiWorkspace <br />  &nbsp;Dim doc As NotesDocument <br />  &nbsp;<br />  &nbsp;Set doc = ws.currentDocument.Document <br />  &nbsp;doc.inBody = "0" <br />  &nbsp;Call ws.CurrentDocument.Refresh <br /> <br /> End Sub <br /> </pre> <br /> <br /> Die entsprechende Maskenaktion wird kontextabhängig angezeigt/verborgen: <br /> <img  alt="Image:Maskenaktionen in Abhängigkeit von aktuellen Feldern darstellen" border="0" src="http://www.mmi-consult.de/FAQ/dx/maskenaktionen-in-abhängigkeit-von-aktuellen-feldern-darstellen.htm/content/M2?OpenElement" /><br /> <br /> <br /> Um die Zustandsvariable NICHT als Dokumenteninhalt zu speichern, kann diese entweder in QuerySave Events gelöscht werden oder wird als Feld auf die Maske plaziert; <br /> <img  alt="Image:Maskenaktionen in Abhängigkeit von aktuellen Feldern darstellen" border="0" src="http://www.mmi-consult.de/FAQ/dx/maskenaktionen-in-abhängigkeit-von-aktuellen-feldern-darstellen.htm/content/M3?OpenElement" /><br /> <br /> mit einer Berechnungsformel auf sich selbst: <br /> <img  alt="Image:Maskenaktionen in Abhängigkeit von aktuellen Feldern darstellen" border="0" src="http://www.mmi-consult.de/FAQ/dx/maskenaktionen-in-abhängigkeit-von-aktuellen-feldern-darstellen.htm/content/M4?OpenElement" /><br /> <br />  &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/maskenaktionen-in-abhängigkeit-von-aktuellen-feldern-darstellen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/maskenaktionen-in-abhängigkeit-von-aktuellen-feldern-darstellen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Notes Versionsnummern und Buildnumbers</title>
<pubDate>Wed, 17 Jun 2009 08:34:05 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/notes-versionsnummern-und-buildnumbers.htm</link>
<category>&lt;Sonstiges&gt;</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/notes-versionsnummern-und-buildnumbers.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/notes-versionsnummern-und-buildnumbers.htm</guid>
<content:encoded><![CDATA[ Manchmal ist man darauf angewiesen, Funktionen nur bei auf Arbeitsplätze mit bestimmten Notes Versionen auszuführen (Administratoren: Update via Mail, Entwickler: Neue Funktionen ab bestimmter Versionen). Leider findet kaum eine Auflistung der aktuellen BuildNumbers. Seit Release 8 sind diese jedoch in der Designer Hilfe ("@Version") enthalten. <br /> <strong><br /> <br /> Hier ist die Übersichtsliste</strong>  <table border width=100%> <tr valign=top> <td width=16% bgcolor=#b1b1d2> <div align=center><strong>Build</strong></div> <td width=83% bgcolor=#b1b1d2> <div align=center><strong>Lotus Notes/Domino Release</strong></div> <tr valign=top> <td>114  <td>Release 3.x  <tr valign=top> <td>136  <td>Release 4.0.x  <tr valign=top> <td>138  <td>Release 4.1.x  <tr valign=top> <td>145  <td>Release 4.5.x  <tr valign=top> <td>147  <td>Release 4.6  <tr valign=top> <td>166  <td>Release 5.0.x  <tr valign=top> <td>190  <td>Release 6.0, Release 6.0.1  <tr valign=top> <td>191  <td>Release 6.0.2  <tr valign=top> <td>194  <td>Release 6.0.3  <tr valign=top> <td>195  <td>Release 6.0.4, Release 6.5.3  <tr valign=top> <td>196  <td>Release 6.5.4  <tr valign=top> <td>198  <td>Release 6.5.5  <tr valign=top> <td>199  <td>Release 6.5.6  <tr valign=top> <td>256  <td>Release 7.0  <tr valign=top> <td>261  <td>Release 7.0.1  <tr valign=top> <td>262  <td>Release 7.0.2  <tr valign=top> <td>266  <td>Release 7.0.3  <tr valign=top> <td>???  <td>Release 7.0.4  <tr valign=top> <td>307  <td>Release 8.0  <tr valign=top> <td>322  <td>Release 8.0.1  <tr valign=top> <td>323  <td>Release 8.0.2  <tr valign=top> <td>359  <td>Release 8.5</table> <br /> <br /><br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/notes-versionsnummern-und-buildnumbers.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/notes-versionsnummern-und-buildnumbers.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>IBM Support Toolbar für Browser erleichtert das Auffinden von Informationen auf IBM Websites</title>
<pubDate>Sat, 29 Nov 2008 16:04:40 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/ibm-support-toolbar-fuer-browser-erleichtert-das-auffinden-von-informationen-auf-ibm-websites.htm</link>
<category>Sonstiges</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/ibm-support-toolbar-fuer-browser-erleichtert-das-auffinden-von-informationen-auf-ibm-websites.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/ibm-support-toolbar-fuer-browser-erleichtert-das-auffinden-von-informationen-auf-ibm-websites.htm</guid>
<content:encoded><![CDATA[ Die IBM Website ist (auch bei regelmäßigem Besuch) manchmal ein wenig unübersichtlich ?! <br /> <br /> Erleichterung verschafft hier der <strong>IBM Support Toolbar</strong> für Browser: <strong><span style="text-decoration:underline"><br /> <br /> Einzelheiten und Download auf:</span></strong> &nbsp;<br /> http://www-01.ibm.com/software/support/toolbar/   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/ibm-support-toolbar-fuer-browser-erleichtert-das-auffinden-von-informationen-auf-ibm-websites.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/ibm-support-toolbar-fuer-browser-erleichtert-das-auffinden-von-informationen-auf-ibm-websites.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Lotusphere 2008 Präsentationen von http://www.ls08.net herunterladen</title>
<pubDate>Mon, 28 Jan 2008 20:16:49 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/lotusphere-2008-praesentationen-von-httpwww.ls08.net-herunterladen.htm</link>
<category>Lotusphere</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/lotusphere-2008-praesentationen-von-httpwww.ls08.net-herunterladen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/lotusphere-2008-praesentationen-von-httpwww.ls08.net-herunterladen.htm</guid>
<content:encoded><![CDATA[ Zum einfachen Download aller Lotusphere 2008 Präsentationen muss auf Windows, Linux oder MacOS wget (http://www.gnu.org/software/wget/index.html#downloading) installiert sein. <br /> Danach muss nur noch die angehangene Textdatei gespeichert werden &nbsp;und mit <strong><br /> <br /> wget --user=username --password=passwort &nbsp;-i ls2008.txt</strong> <br />  <br /> <br /> werden alle Dateien, welche in der ls08.net publiziert wurden, in das aktuelle Verzeichniss heruntergelanden. Natürlich benötigt man dazu einen Login vom Besuch der Lotusphere 2008 mit username und passwort!  <ul> <li>&nbsp;<a href="http://www.mmi-consult.de/FAQ/dx/ls2008.txt/$file/ls2008.txt" title="ls2008.txt"ls2008.txt/>ls2008.txt</a></li></ul>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/lotusphere-2008-praesentationen-von-httpwww.ls08.net-herunterladen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/lotusphere-2008-praesentationen-von-httpwww.ls08.net-herunterladen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Serverberechtigungen überprüfen</title>
<pubDate>Sun, 20 Jan 2008 15:27:28 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm</link>
<category>Undokumentierte &#64;Funktionen</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm</guid>
<content:encoded><![CDATA[ Manchmal ist es wünschenswert, vor der Durchführung kritischer Serverfunktionen, die Berechtigung zur Durchführung zu prüfen. Hierzu können nachfolgende (undokumentierte) @Funktionen eingesetzt werden. Da sie nicht dokumentiert sind, übernehmen wir keine Gewähr für deren Funktion! <br /> <br /> Alle Funktioen erwarten als Parameter einen hierarchischen Benutzernamen für den die Prüfung durchgeführt werden soll und liefern True/False als Ergebnis zurück. Die prüfung erfolgt jeweils gegen den Homeserver des Benutzers (wie in der Arbeitsumgebung eingetragen). <strong><br />  <br /> Serverzugriffsberechtigungen prüfen</strong> <br /> Prüfungen gegen das Serverdokument eines Servers (Reiter "Sicherheit")  <table border width=100%> <tr> <td width=53% bgcolor=#b1b1d2><strong>@Funktion</strong>  <td width=46% bgcolor=#b1b1d2><strong>Überprüfung gemäß Konfiguration in Feld</strong>  <tr> <td>@ServerAccess(&#91;FullAccess&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M2?OpenElement" /> <tr> <td>- noch nicht identifiziert -  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M3?OpenElement" /> <tr> <td>@ServerAccess(&#91;DatabaseAccess&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M4?OpenElement" /> <tr> <td>@ServerAccess(&#91;RemoteAccess&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M5?OpenElement" /> <tr> <td>@ServerAccess(&#91;ViewOnlyAccess&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M6?OpenElement" /> <tr> <td>- noch nicht identifiziert -  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M7?OpenElement" /> <tr> <td>@ServerAccess(&#91;RestrictedSystemAccess&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M8?OpenElement" /> <tr> <td>- noch nicht identifiziert -  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M9?OpenElement" /> <tr> <td> <td> <tr> <td>@ServerAccess(&#91;Access&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M10?OpenElement" /> <tr> <td>@ServerAccess(&#91;CreateDatabase&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M11?OpenElement" /> <tr> <td>@ServerAccess(&#91;CreateReplica&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M12?OpenElement" /> <tr> <td>@ServerAccess(&#91;CreateTemplate&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M13?OpenElement" /></table> <br /> <br /><br /> <br /> <br /> <br /> <img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M14?OpenElement" /><br /> <br /> <img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M15?OpenElement" /><strong><br /> <br /> Mailberechtigungen prüfen</strong> <br /> Prüfungen gegen das Konfigurationsdokument eines Servers (Reiter "Router/SMTP" - "Nachrichtenverfolgung")  <table border width=100%> <tr> <td width=53% bgcolor=#b1b1d2><strong>@Funktion</strong>  <td width=46% bgcolor=#b1b1d2><strong>Überprüfung gemäß Konfiguration in Feld</strong>  <tr> <td>@ServerAccess(&#91;TrackMessage&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M16?OpenElement" /> <tr> <td>@ServerAccess(&#91;TrackMessageSubject&#93;; @UserName)  <td><img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M17?OpenElement" /></table> <br /> <br /><br /> <br /> <br /> <br /> <img  alt="Image:Serverberechtigungen überprüfen" border="0" src="http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm/content/M18?OpenElement" />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/serverberechtigungen-ueberpruefen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/serverberechtigungen-ueberpruefen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>JDK 1.5 Code im Domino Designer compilieren</title>
<pubDate>Thu, 13 Dec 2007 17:03:01 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/jdk-1.5-code-im-domino-designer-compilieren.htm</link>
<category>Webentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/jdk-1.5-code-im-domino-designer-compilieren.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/jdk-1.5-code-im-domino-designer-compilieren.htm</guid>
<content:encoded><![CDATA[ IBM Lotus Domino 8 verwendet Client- als auch Serverseitig das JDK 1.5, <br />  <br /> Versucht man allerdings Java-Code mit 1.5er Methoden zu kompilieren, erfolgt eine Fehlermeldung, dass diese Methoden im "-source 1.3" nicht supported seien. <br /> Das ist auch richtig. <br /> <br /> Domino 8 compiliert nämlich intern mit den Parametern <strong>javac -source 1.3 -target 1.2</strong> um abwärtskompatibel zu vorherigen Versionen zu bleiben. <br /> <br /> Dieses Verhalten kann mit dem Notes.ini Parameter <br /> <strong><em><br /> JavaCompilerTarget=1.5</em></strong> <br /> <br /> umgangen werden. Dann wird mit intern den Parametern <strong>javac -source 1.5 -target 1.5</strong> kompiliert, wodurch der komplette Umfang des JDK 1.5 zur Verfügung steht.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/jdk-1.5-code-im-domino-designer-compilieren.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/jdk-1.5-code-im-domino-designer-compilieren.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>API Error Codes interpretieren</title>
<pubDate>Tue, 20 Nov 2007 18:45:39 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/api-error-codes-interpretieren.htm</link>
<category>Fehlerbehandlung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/api-error-codes-interpretieren.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/api-error-codes-interpretieren.htm</guid>
<content:encoded><![CDATA[ Gelegentlich kann es vorkommen, dass einzelne Client oder Serverkomponenten Fehler nur mit einem Fehlercode (z.B. "Error 1A5") ausgeben. Diese Fehlercodes werden von der Notes-API geliefert. Es gibt eine einfache Möglichkeit, diese in lesbare Textform zu übersetzen, wenn folgender Serverbefehl abgesetzt wird:  <p>>show message 1A5 &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/api-error-codes-interpretieren.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/api-error-codes-interpretieren.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Ansichtsindizes erst erzeugen, wenn erforderlich</title>
<pubDate>Sat, 20 Oct 2007 20:29:02 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/ansichtsindizes-erst-erzeugen-wenn-erforderlich.htm</link>
<category>Ansichten</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/ansichtsindizes-erst-erzeugen-wenn-erforderlich.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/ansichtsindizes-erst-erzeugen-wenn-erforderlich.htm</guid>
<content:encoded><![CDATA[ Wenn benutzersortierbare Splaten in Anwendungen verwendet werden, deren Index erst aufgebaut werden soll, wenn ein Benutzer die Sortierung benötigt, ist in der Notes.ini des Servers die Unterstützung der Funktion zu aktivieren mit: <br /> <br /> ENABLE_ON_DEMAND_COLLATIONS=1 <br /> <br /> um zu verhindern, dass die Indizes trützdem erstellt werden. &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/ansichtsindizes-erst-erzeugen-wenn-erforderlich.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/ansichtsindizes-erst-erzeugen-wenn-erforderlich.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Wie kann ich Felder vom Typ &quot;NotesRef&quot; erzeugen?</title>
<pubDate>Thu, 6 Sep 2007 16:34:23 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-felder-vom-typ-notesref-erzeugen.htm</link>
<category>Mail</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-felder-vom-typ-notesref-erzeugen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-felder-vom-typ-notesref-erzeugen.htm</guid>
<content:encoded><![CDATA[ Um eigene Mailmasken (oder andere) zu erstellen, kann es manchmal erforderlich sein, Referenzfelder zu erstellen, deren Inhalt eine Referenz auf ein Ausgangdokument ist. Diese Items sind vom Typ "NOTEREFS (4) ". <br /> <br /> Um diese (im richtigen Format) zu erzeugen kann folgender einfacher Trick angewendet werden: <br /> <tt><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt><tt>Dim </tt><tt>Session </tt><tt>As New </tt><tt>NotesSession<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tt><tt>Dim </tt><tt>docTemp </tt><tt>As </tt><tt>NotesDocument<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tt><tt>Dim </tt><tt>item </tt><tt>As </tt><tt>NotesItem<br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tt><tt>Set </tt><tt>doc &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt><tt>= </tt><tt>Session</tt><tt>.</tt><tt>CurrentDatabase<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tt><tt>Set </tt><tt>docTemp &nbsp; &nbsp; &nbsp; &nbsp; </tt><tt>New </tt><tt>NotesDocument </tt><tt>(</tt><tt>doc</tt><tt>.</tt><tt>ParentDatabase</tt><tt>)<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call </tt><tt>docTemp</tt><tt>.</tt><tt>MakeResponse </tt><tt>(</tt><tt>doc</tt><tt>)<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set </tt><tt>item </tt><tt>= </tt><tt>docTemp</tt><tt>.</tt><tt>GetFirstItem </tt><tt>(</tt><tt>"$Ref"</tt><tt>)<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call </tt><tt>item</tt><tt>.</tt><tt>CopyItemToDocument </tt><tt>(</tt><tt>doc</tt><tt>, </tt><tt>"$AnyFieldName"</tt><tt>)</tt> <br /> <br /> Simpel oder? &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/wie-kann-ich-felder-vom-typ-notesref-erzeugen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-felder-vom-typ-notesref-erzeugen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Änderungsdatum eines Dokumentes ermitteln</title>
<pubDate>Thu, 7 Jun 2007 20:22:59 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/aenderungsdatum-eines-dokumentes-ermitteln.htm</link>
<category>Dokumentbearbeitung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/aenderungsdatum-eines-dokumentes-ermitteln.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/aenderungsdatum-eines-dokumentes-ermitteln.htm</guid>
<content:encoded><![CDATA[ Wenn Dokumente (oder auch Gestaltungselemente) geändert werden, erhalten Sie einen Zeitstempel. Wenn dieses geänderte Dokument nun durch die Replikation in eine Replik übertragen wird, erhält es einen weiteren Zeitstempel. Die Infobox des Dokumentes könnte somit folgende Informationen ausweisen: &nbsp; <div align=center> <br /><br /> <img  alt="Image:Änderungsdatum eines Dokumentes ermitteln" border="0" src="http://www.mmi-consult.de/FAQ/dx/aenderungsdatum-eines-dokumentes-ermitteln.htm/content/M2?OpenElement" /></div> <br /><br /> <br /> Auch in LotusScript kann man diese beiden Informationen (wie auch analog die Erstellinformationen) abrufen. Das nachfolgende Beispielscript zeigt, wie man die beiden Informationen abrufen kann: <br /> <tt><br />  &nbsp; &nbsp; &nbsp; &nbsp;</tt><tt>Dim </tt><tt>s </tt><tt>As New </tt><tt>NotesSession<br />  &nbsp; &nbsp; &nbsp; </tt><tt>Dim </tt><tt>doc </tt><tt>As </tt><tt>NotesDocument<br />  &nbsp; &nbsp; &nbsp; </tt><tt>Dim </tt><tt>vResult </tt><tt>As Variant<br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; Set </tt><tt>doc </tt><tt></tt><tt>s</tt><tt>.</tt><tt>CurrentDatabase</tt><tt>.</tt><tt>UnprocessedDocuments</tt><tt>.</tt><tt>GetFirstDocument<br />  &nbsp; &nbsp; &nbsp; vResult </tt><tt>Evaluate (</tt><tt>|@Modified|</tt><tt>, </tt><tt>doc</tt><tt>)<br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; Messagebox Cstr(</tt><tt>doc</tt><tt>.</tt><tt>LastModified</tt><tt>),, </tt><tt>"Änderungsdatum - LotusScript"<br />  &nbsp; &nbsp; &nbsp; </tt><tt>Messagebox Cstr(</tt><tt>vResult</tt><tt>(</tt><tt>0</tt><tt>)),, </tt><tt>"Änderungsdatum - Formelsprache"<br />  &nbsp; &nbsp; &nbsp; </tt>&nbsp;<br /> Hierbei ermittel die Formelsprachvariante das echte Änderungs- (order Erstellungsdatum) während die LotusScript Eigenschaften des Dokumentes jeweils die Änderungs- oder Erstellungsinformationen in dieser Datei ermitteln.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/aenderungsdatum-eines-dokumentes-ermitteln.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/aenderungsdatum-eines-dokumentes-ermitteln.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Beliebige Applikationen adressbuchkompatibel machen</title>
<pubDate>Fri, 11 May 2007 13:55:45 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/beliebige-applikationen-adressbuchkompatibel-machen.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/beliebige-applikationen-adressbuchkompatibel-machen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/beliebige-applikationen-adressbuchkompatibel-machen.htm</guid>
<content:encoded><![CDATA[ IBM Lotus Notes bietet die Möglichkeit, jede beliebige Datenbank als Verzeichniss im Adressdialog z.B. im Mailfile mittels "names=" Eintrag in der notes.ini bzw. Directory Assistance, oder programmiertechnisch mit der Formel @Command(&#91;MailAddress&#93;), &nbsp;zu verwenden. &nbsp;<br /> <br /> Damit die zu verwendete Datenbank auch im Dialog @Command(&#91;MailAddress&#93;) &nbsp;Daten zur Verfügung stellen kann, müssen die Ansichten  <ul> <li>($PeopleGroupsFlat)  </li><li>($PeopleGroupsHier)</li></ul><br /> in die Applikation kopiert werden. <br /> Danch müssen einfach noch die SELECT und Spaltenformeln angepasst werden. <br /> <strong><br /> ACHTUNG:</strong> ausserhalb des dargestellten Bildschirms haben die Ansichten entsprechend anzupassenden Spalten !!   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/beliebige-applikationen-adressbuchkompatibel-machen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/beliebige-applikationen-adressbuchkompatibel-machen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Lotusphere 2007 Präsentationen aus der Sandbox automatisch herunterladen</title>
<pubDate>Wed, 11 Apr 2007 09:06:08 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/lotusphere-2007-praesentationen-aus-der-sandbox-automatisch-herunterladen.htm</link>
<category>Lotusphere</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/lotusphere-2007-praesentationen-aus-der-sandbox-automatisch-herunterladen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/lotusphere-2007-praesentationen-aus-der-sandbox-automatisch-herunterladen.htm</guid>
<content:encoded><![CDATA[ Zum einfachen Download aller Lotusphere 2007 Präsentationen muss auf Windows, Linux oder MacOS wget (http://www.gnu.org/software/wget/index.html#downloading) installiert sein. <br /> Danach muss nur noch die angehangene Textdatei gespeichert werden &nbsp;und mit <strong><br /> <br /> wget -i ls2007.txt</strong> &nbsp;<br /> <br /> werden alle Dateien, welche in der Sandbox zur Lotusphere 2007 publiziert wurden, in das aktuelle Verzeichniss heruntergelanden.  <ul> <li><a href="http://www.mmi-consult.de/FAQ/dx/ls2007.txt/$file/ls2007.txt" title="ls2007.txt"ls2007.txt/>ls2007.txt</a></li></ul>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/lotusphere-2007-praesentationen-aus-der-sandbox-automatisch-herunterladen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/lotusphere-2007-praesentationen-aus-der-sandbox-automatisch-herunterladen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Design Synopsis via DXL als HTML ausgeben</title>
<pubDate>Fri, 26 Jan 2007 16:50:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/design-synopsis-via-dxl-als-html-ausgeben.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/design-synopsis-via-dxl-als-html-ausgeben.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/design-synopsis-via-dxl-als-html-ausgeben.htm</guid>
<content:encoded><![CDATA[ Seit Domino Designer 6 werden zusätzliche DXL Werkzeuge angeboten, mit denen man z.B. XML exportieren, ansehen und auch transformieren kann. Hierzu werden u.a. entsprechende XSL mit installiert, um die Gestaltungselemente einer Datenbank als HTML auszugeben (wie ich finde, übersichtlicher als mit der Standard Gestaltungsübersicht). <br />  <br /> Diese Werkzeuge können über die Menüfolge "Werkzeuge" --> "DXL-Hilfprogramme" --> "Transformer" gestartet werden. <br /> <br /> Doch was, wenn dieser Menüpunkt (oder auch "Werkzeuge" --> "DXL-Hilfprogramme" --> "Betrachter") fehlt??? <br /> <br /> Die Werkzeuge werden nur angeboten, wenn die aktuelle Arbeitsumgebung des Clients auf dem Reiter "Internet-Browser" auf "<strong>Internet Explorer</strong>" oder "<strong>Notes mit Internet Explorer</strong>" gesetzt worden ist.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/design-synopsis-via-dxl-als-html-ausgeben.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/design-synopsis-via-dxl-als-html-ausgeben.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Wie kann ich eine leere NotesDocumentCollection erzeugen?</title>
<pubDate>Fri, 19 Jan 2007 15:02:23 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-eine-leere-notesdocumentcollection-erzeugen.htm</link>
<category>Sonstiges</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-eine-leere-notesdocumentcollection-erzeugen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-eine-leere-notesdocumentcollection-erzeugen.htm</guid>
<content:encoded><![CDATA[ NotesdocumentCollections bieten eine sehr gute Möglichkeit, Dokumente zu berabeiten. Wäre es nicht schön, eine leere Collection erzeugen zu können und dann mit <br /> <br /> Call col.<strong>AddDocument</strong> (doc) <br /> <br /> einzelne Dokumente hinzufügen zu können? Leider gibt es keine LS-Methode, eine leere Collection zu erzeugen. Es kursieren verschiedene Ansätze in der Lotus Entwicklergemeinde, eine leere Collection mittels einer db.Search Methode (und unzureichenden Sichkriterien zu erzeugen). <br /> <br /> Die nachfolgende Methode ist jedoch die schnellste und sicherste Methode: <tt><br /> <br /> Dim </tt><tt>s </tt><tt>As New </tt><tt>NotesSession</tt><tt><br /> Dim </tt><tt>col </tt><tt>As </tt><tt>NotesDocumentCollection<br />  &nbsp; &nbsp; </tt><tt><br /> Set </tt><tt>col </tt><tt></tt><tt>s</tt><tt>.</tt><tt>CurrentDatabase</tt><tt>.</tt><tt>GetProfileDocCollection </tt><tt>(Format(Now))</tt>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/wie-kann-ich-eine-leere-notesdocumentcollection-erzeugen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-eine-leere-notesdocumentcollection-erzeugen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Syntax einer Formel mit LotusScript prüfen</title>
<pubDate>Sat, 3 Dec 2005 20:04:52 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/syntax-einer-formel-mit-lotusscript-pruefen.htm</link>
<category>Formelsprache</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/syntax-einer-formel-mit-lotusscript-pruefen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/syntax-einer-formel-mit-lotusscript-pruefen.htm</guid>
<content:encoded><![CDATA[ Sub CheckFormulaSyntax(<strong>Byval</strong> sFormulaField <strong>As</strong> <strong>String</strong>) <em>&nbsp;<br /> ' ********************************************************************************* <br /> ' FUNCTION Header <br /> ' ********************************************************************************* &nbsp; &nbsp; &nbsp; &nbsp; <br /> ' &nbsp; &nbsp; &nbsp; &nbsp;Purpose: <br /> ' &nbsp; &nbsp; &nbsp; &nbsp;Check the value in a field for using as formula <br /> ' &nbsp; &nbsp; &nbsp; &nbsp; <br /> ' &nbsp; &nbsp; &nbsp; &nbsp;Parameter: <br /> ' &nbsp; &nbsp; &nbsp; &nbsp;sFormulaField - Fieldname where the formula was written <br /> ' &nbsp; &nbsp; &nbsp; &nbsp; <br /> ' &nbsp; &nbsp; &nbsp; &nbsp;Return Value: <br /> ' &nbsp; &nbsp; &nbsp; &nbsp;-none- <br /> ' &nbsp; &nbsp; &nbsp; &nbsp; <br /> ' &nbsp; &nbsp; &nbsp; &nbsp;Dependencies: <br /> ' &nbsp; &nbsp; &nbsp; &nbsp;-none- <br /> ' ********************************************************************************* &nbsp; &nbsp; &nbsp; &nbsp; </em><br />  &nbsp; &nbsp; &nbsp; <em><br /> ' ------------------------------------------------------------------------------------------------------------ &nbsp; &nbsp; &nbsp; &nbsp; <br /> ' Constants <br /> ' ------------------------------------------------------------------------------------------------------------ </em><br />  &nbsp; &nbsp; &nbsp; <em>REM MsgBox Icons </em><br />  &nbsp; &nbsp; &nbsp; <strong>Const</strong> MB_ICONSTOP = 16 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<em>' Critical message </em><br />  &nbsp; &nbsp; &nbsp; <strong>Const</strong> MB_ICONINFORMATION = 64 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<em>' Information message </em><br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <em>REM Constance with message texts for communication with user </em><br />  &nbsp; &nbsp; &nbsp; <strong>Const</strong> COMPILE_SUCCESS_TITLE = "Compiled Successfully" <br />  &nbsp; &nbsp; &nbsp; <strong>Const</strong> COMPILE_SUCCESS_BODY = "There are no syntax errors, the formula compiled successfully." <br />  &nbsp; &nbsp; &nbsp; <strong>Const</strong> COMPILE_FAILURE_TITLE = "Syntax Error" <br />  &nbsp; &nbsp; &nbsp; <strong>Const</strong> COMPILE_FAILURE_BODY = "There is at least one syntax error in the formula. &nbsp;It did not compile." <br />  &nbsp; &nbsp; &nbsp; <strong>Const</strong> COMPILE_FAILURE_SAVE_BODY = "There is at least one syntax error in the formula. &nbsp;This document could not be saved." <br />  &nbsp; &nbsp; &nbsp; <em><br /> ' END Constants </em><br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <em><br /> ' ------------------------------------------------------------------------------------------------------------ <br /> ' Declarations <br /> ' ------------------------------------------------------------------------------------------------------------ </em><br />  &nbsp; &nbsp; &nbsp; <em>REM Object vars </em><br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> ws <strong>As</strong> <strong>New</strong> NotesUIWorkspace <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> uidoc <strong>As</strong> NotesUIDocument <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> doc <strong>As</strong> NotesDocument <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <em>REM Message box vars </em><br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> sMB_Prompt <strong>As</strong> <strong>String</strong> <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> nMB_Info <strong>As</strong> <strong>Long</strong> <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> sMB_Title <strong>As</strong> <strong>String</strong> <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <em>REM additional vars </em><br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> sFormula <strong>As</strong> <strong>String</strong> <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> vEval <strong>As</strong> <strong>Variant</strong> <br />  &nbsp; &nbsp; &nbsp; <em><br /> ' END Declarations </em><br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <em><br /> ' ------------------------------------------------------------------------------------------------------------ <br /> ' Initialize <br /> ' ------------------------------------------------------------------------------------------------------------ </em><br />  &nbsp; &nbsp; &nbsp; <em>REM Objects </em><br />  &nbsp; &nbsp; &nbsp; <strong>Set</strong> uidoc = ws.CurrentDocument <br />  &nbsp; &nbsp; &nbsp; <strong>Set</strong> doc = uidoc.Document <br />  &nbsp; &nbsp; &nbsp; <em><br /> ' END Initialize </em><br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <em><br /> ' ********************************************************************************* <br /> ' MAIN PROGRAM <br /> ' ********************************************************************************* &nbsp; &nbsp; &nbsp; &nbsp; </em><br />  &nbsp; &nbsp; &nbsp; sFormula = | @CheckFormulaSyntax( | &amp; sFormulaField &amp; | ) | <br />  &nbsp; &nbsp; &nbsp; vEval = Evaluate(sFormula, doc) <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; <strong>If</strong> vEval(0) = "1" <strong>Then</strong> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Messagebox</strong> COMPILE_SUCCESS_BODY, &nbsp;MB_ICONINFORMATION, COMPILE_SUCCESS_TITLE <br />  &nbsp; &nbsp; &nbsp; <strong>Else</strong> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Msgbox COMPILE_FAILURE_BODY &amp; Chr(13) &amp; "Error type: " &amp; vEval(0) &amp; Chr(13) &amp; "Error message: " &amp; vEval(5)_ <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , &nbsp;MB_ICONSTOP, COMPILE_FAILURE_TITLE <br />  &nbsp; &nbsp; &nbsp; <strong>End</strong> <strong>If</strong> <strong><br /> End</strong> Sub <br /> <br /> <strong><br /> Hinweis:</strong> <br /> <br /> Ein eigenständiges Tool zum Testen ("Formula Validator") findet sich auch in unserem Downloadbereich.....   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/syntax-einer-formel-mit-lotusscript-pruefen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/syntax-einer-formel-mit-lotusscript-pruefen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>&#64;Formeln schnell testen</title>
<pubDate>Thu, 24 Nov 2005 07:59:09 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/formeln-schnell-testen.htm</link>
<category>Formelsprache</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/formeln-schnell-testen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/formeln-schnell-testen.htm</guid>
<content:encoded><![CDATA[ Sie wollen eine erstellte Formel schnell testen? Dann benötigen Sie 4 Tastaturanschläge ...  <ul> <li>kopieren Sie die Formel in die Zwischenablage (CTRL-C),  </li><li>rufen Sie ein neues Memo auf (CTRL-M),  </li><li>fügen den Inhalt der Zwischenablage in die "Betreff"-Zeile ein (CTRL-V)  </li><li>und führen sie dort aus (SHIFT-F9)</li></ul><br /> Ist doch einfach!! &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/formeln-schnell-testen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/formeln-schnell-testen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Zeichen aus anderen Zeichensätzen erstzen</title>
<pubDate>Tue, 22 Nov 2005 08:33:49 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/zeichen-aus-anderen-zeichensaetzen-erstzen.htm</link>
<category>Stringhandling</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/zeichen-aus-anderen-zeichensaetzen-erstzen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/zeichen-aus-anderen-zeichensaetzen-erstzen.htm</guid>
<content:encoded><![CDATA[ Manchmal beinhalten Zeichenketten Zeichen aus anderen Zeichensätzen. Diese können mit nachfolgendem Script schnell ersetzt werden. <br /> <strong> <br /> Function</strong> ReplaceChars(<strong>Byval</strong> sSource <strong>As</strong> <strong>String</strong>) <strong>As</strong> <strong>String</strong> <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> vReplace(28) <strong>As</strong> <strong>Variant</strong> <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> vReplacement(28) <strong>As</strong> <strong>Variant</strong> <br />  &nbsp; &nbsp; &nbsp; <strong>Dim</strong> vResult <strong>As</strong> <strong>Variant</strong> <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; vReplace(0) = "Ä" <br />  &nbsp; &nbsp; &nbsp; vReplacement(0) = "Ae" <br />  &nbsp; &nbsp; &nbsp; vReplace(1) = "ä" <br />  &nbsp; &nbsp; &nbsp; vReplacement(1) = "ae" <br />  &nbsp; &nbsp; &nbsp; vReplace(2) = "Ö" <br />  &nbsp; &nbsp; &nbsp; vReplacement(2) = "Oe" <br />  &nbsp; &nbsp; &nbsp; vReplace(3) = "ö" <br />  &nbsp; &nbsp; &nbsp; vReplacement(3) = "oe" <br />  &nbsp; &nbsp; &nbsp; vReplace(4) = "Ü" <br />  &nbsp; &nbsp; &nbsp; vReplacement(4) = "Ue" <br />  &nbsp; &nbsp; &nbsp; vReplace(5) = "ü" <br />  &nbsp; &nbsp; &nbsp; vReplacement(5) = "ue" <br />  &nbsp; &nbsp; &nbsp; vReplace(6) = "ß" <br />  &nbsp; &nbsp; &nbsp; vReplacement(6) = "ss" <br />  &nbsp; &nbsp; &nbsp; vReplace(7) = "&#197;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(7) = "A" <br />  &nbsp; &nbsp; &nbsp; vReplace(8) = "â" <br />  &nbsp; &nbsp; &nbsp; vReplacement(8) = "a" <br />  &nbsp; &nbsp; &nbsp; vReplace(9) = "á" <br />  &nbsp; &nbsp; &nbsp; vReplacement(9) = "a" <br />  &nbsp; &nbsp; &nbsp; vReplace(10) = "&#224;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(10) = "a" <br />  &nbsp; &nbsp; &nbsp; vReplace(11) = "&#229;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(11) = "a" <br />  &nbsp; &nbsp; &nbsp; vReplace(12) = "É" <br />  &nbsp; &nbsp; &nbsp; vReplacement(12) = "E" <br />  &nbsp; &nbsp; &nbsp; vReplace(13) = "é" <br />  &nbsp; &nbsp; &nbsp; vReplacement(13) = "e" <br />  &nbsp; &nbsp; &nbsp; vReplace(14) = "&#232;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(14) = "e" <br />  &nbsp; &nbsp; &nbsp; vReplace(15) = "&#234;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(15) = "e" <br />  &nbsp; &nbsp; &nbsp; vReplace(16) = "Ç" <br />  &nbsp; &nbsp; &nbsp; vReplacement(16) = "C" <br />  &nbsp; &nbsp; &nbsp; vReplace(17) = "ç" <br />  &nbsp; &nbsp; &nbsp; vReplacement(17) = "c" <br />  &nbsp; &nbsp; &nbsp; vReplace(18) = "&#198;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(18) = "Ae" <br />  &nbsp; &nbsp; &nbsp; vReplace(19) = "&#230;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(19) = "ae" <br />  &nbsp; &nbsp; &nbsp; vReplace(20) = "ô" <br />  &nbsp; &nbsp; &nbsp; vReplacement(20) = "o" <br />  &nbsp; &nbsp; &nbsp; vReplace(21) = "&#242;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(21) = "o" <br />  &nbsp; &nbsp; &nbsp; vReplace(22) = "ó" <br />  &nbsp; &nbsp; &nbsp; vReplacement(22) = "o" <br />  &nbsp; &nbsp; &nbsp; vReplace(23) = "&#251;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(23) = "u" <br />  &nbsp; &nbsp; &nbsp; vReplace(24) = "ú" <br />  &nbsp; &nbsp; &nbsp; vReplacement(24) = "u" <br />  &nbsp; &nbsp; &nbsp; vReplace(25) = "&#255;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(25) = "y" <br />  &nbsp; &nbsp; &nbsp; vReplace(26) = "í" <br />  &nbsp; &nbsp; &nbsp; vReplacement(26) = "i" <br />  &nbsp; &nbsp; &nbsp; vReplace(27) = "&#209;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(27) = "N" <br />  &nbsp; &nbsp; &nbsp; vReplace(28) = "&#241;" <br />  &nbsp; &nbsp; &nbsp; vReplacement(28) = "n" <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; vResult = Replace(sSource, vReplace, vReplacement) <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; ReplaceChars = vResult <strong><br /> End</strong> <strong>Function</strong>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/zeichen-aus-anderen-zeichensaetzen-erstzen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/zeichen-aus-anderen-zeichensaetzen-erstzen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Eigenschaftsdialog deaktivieren</title>
<pubDate>Sun, 17 Apr 2005 10:08:58 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/eigenschaftsdialog-deaktivieren.htm</link>
<category>Agenten</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/eigenschaftsdialog-deaktivieren.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/eigenschaftsdialog-deaktivieren.htm</guid>
<content:encoded><![CDATA[ Beim Öffnen bestimmer Design Elemente wie z.B. Agenten oder Ansichten wird automatisch der Eigenschaftdialog geöffnet. <br /> Dies kann mit Hilfe des Notes.ini Eintrages <br /> <strong><br /> DesignNoInitialInfobox=1</strong> <br />  <br /> verhindert werden. <br /> <br /> Teilweise stürzt nach dem Eintrag Notes direkt ab, In diesem Falle einmal booten (jaja, so ist Windows halt) danach funkioniert das Ganze ohne Probleme.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/eigenschaftsdialog-deaktivieren.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/eigenschaftsdialog-deaktivieren.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Bookmark.ntf nicht modifizieren</title>
<pubDate>Tue, 8 Mar 2005 17:04:13 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/bookmark.ntf-nicht-modifizieren.htm</link>
<category>Arbeitsplatzeinrichtung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/bookmark.ntf-nicht-modifizieren.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/bookmark.ntf-nicht-modifizieren.htm</guid>
<content:encoded><![CDATA[ Benutzer (besonders Administratoren) sollten <strong>nicht</strong> die Lesezeichen-DB (bookmark.ntf) öffnen, berabeiten oder gar anpassen. Hierdurch entstehen Dokumente oder Gestaltungselemente in der Schablone. <br /> <br /> Da die lokale Bookmark.ntf des Clients un des Servers gleiche Replik-IDs haben in die Administratoren (bei sauberer Servereinreichtung) Manager Recht auf die Server-Replik der Bookmark.ntf haben. <br /> <br /> Bei Client-seitiger Replikation kommt so eine angepaßte Bookmark.ntf ggf. auf den Server (repliziert sofort über alle Server in die gesamte Domäne) und anschließend durch einen Design-Update in die <strong>Roaming </strong>"Bookmark.nsf" aller Benutzer. <br /> <br /> Unerwünschte Seiteneffekte können somit nicht mehr ausgeschlossen werden. <br /> <strong> <br /> Empfehlung:</strong> <br /> Wer eine angepaßte Bookmark einsetzen möchte, findet die richtige Vorgehensweise in der Admin-Hilfe beschrieben!   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/bookmark.ntf-nicht-modifizieren.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/bookmark.ntf-nicht-modifizieren.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Tastaturkürzel des Lotus Notes 6.x Clients</title>
<pubDate>Wed, 16 Feb 2005 16:31:42 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/tastaturkuezel-des-lotus-notes-6.x-clients.htm</link>
<category>Bedienung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/tastaturkuezel-des-lotus-notes-6.x-clients.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/tastaturkuezel-des-lotus-notes-6.x-clients.htm</guid>
<content:encoded><![CDATA[ Nachfolgend die Tastaturkürzel für den Lotus Notes 6.x Client. &nbsp;  <table width=100%> <tr valign=top> <td width=100% bgcolor=white><tt><strong><br /> Mail and Calendar basics</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=18% bgcolor=white><tt><strong>Press</strong></tt>  <td width=81% bgcolor=white><tt><strong>To do this</strong></tt>  <tr> <td bgcolor=white><tt>ALT+DOWN ARROW</tt>  <td bgcolor=white><tt>Open date picker, time picker, and time zone picker in new Calendar entry form</tt>  <tr> <td bgcolor=white><tt>ALT+UP ARROW</tt>  <td bgcolor=white><tt>Close date picker, time picker, and time zone picker in new Calendar entry form and save new selection</tt>  <tr> <td bgcolor=white><tt>ARROW KEYS</tt>  <td bgcolor=white><tt>Move through embedded date picker</tt>  <tr> <td bgcolor=white><tt>CTRL+click Calendar view time slot </tt> <td bgcolor=white><tt>Create a new Cal entry and enter the Subject at the view level (ESC saves entry)</tt>  <tr> <td bgcolor=white><tt>CTRL+click existing Calendar entry</tt>  <td bgcolor=white><tt>Edit Subject at the view level (ESC saves entry)</tt>  <tr> <td bgcolor=white><tt>CTRL+E</tt>  <td bgcolor=white><tt>Edit document</tt>  <tr> <td bgcolor=white><tt>CTRL+M</tt>  <td bgcolor=white><tt>Create new mail memo</tt>  <tr> <td bgcolor=white><tt>CTRL+PAGE DOWN</tt>  <td bgcolor=white><tt>Move to next day, week, or month in Calendar view</tt>  <tr> <td bgcolor=white><tt>CTRL+PAGE DOWN</tt>  <td bgcolor=white><tt>Move to selected month and day of following year in embedded date picker</tt>  <tr> <td bgcolor=white><tt>CTRL+PAGE UP</tt>  <td bgcolor=white><tt>Move to previous day, week, or month in Calendar view</tt>  <tr> <td bgcolor=white><tt>CTRL+PAGE UP</tt>  <td bgcolor=white><tt>Move to selected month and day of previous year in embedded date picker</tt>  <tr> <td bgcolor=white><tt>CTRL+S</tt>  <td bgcolor=white><tt>Save current document</tt>  <tr> <td bgcolor=white><tt>DELETE</tt>  <td bgcolor=white><tt>Mark mail memo for deletion (place mail memo in Trash); delete Calendar entry (permanently deletes entry)</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Close date picker, time picker, and time zone picker and activate selection in new Calendar entry form and save new selection</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Close document and open next document</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Open selected document or view</tt>  <tr> <td bgcolor=white><tt>ESC</tt>  <td bgcolor=white><tt>Close date picker, time picker, and time zone picker in new Calendar entry form without changing selection</tt>  <tr> <td bgcolor=white><tt>ESC</tt>  <td bgcolor=white><tt>Exit embedded date picker</tt>  <tr> <td bgcolor=white><tt>ESC or CTRL+W</tt>  <td bgcolor=white><tt>Close current document</tt>  <tr> <td bgcolor=white><tt>F3</tt>  <td bgcolor=white><tt>Move to next selected document</tt>  <tr> <td bgcolor=white><tt>F4 or TAB</tt>  <td bgcolor=white><tt>Move to next unread document in a view<strong><br /> Note</strong> If you have enabled "<span style="text-decoration:underline">Use Tab to navigate to Read-Only Documents</span>" in User Preferences, only F4 moves to next unread document. TAB moves to next unread document until the last unread document is selected. Then it moves to the next navigable object in the next frame. When a document is open in read-mode, TAB navigates to any embedded object such as URLs, database links, and attachments.</tt>  <tr> <td bgcolor=white><tt>F6</tt>  <td bgcolor=white><tt>Move to next pane or frame</tt>  <tr> <td bgcolor=white><tt>Focus cursor next to group name in To, CC, or BCC field, then press F9</tt>  <td bgcolor=white><tt>Expand a Personal Address Book group in the To, CC, BCC field of a mail message (displays each member of the group)</tt>  <tr> <td bgcolor=white><tt>F9</tt>  <td bgcolor=white><tt>Refresh Mail or Calendar views</tt>  <tr> <td bgcolor=white><tt>HOME</tt>  <td bgcolor=white><tt>Move to current day in embedded date picker</tt>  <tr> <td bgcolor=white><tt>INSERT</tt>  <td bgcolor=white><tt>Toggle between read and unread mark of document</tt>  <tr> <td bgcolor=white><tt>PAGE DOWN</tt>  <td bgcolor=white><tt>Move to next month in embedded date picker</tt>  <tr> <td bgcolor=white><tt>PAGE UP</tt>  <td bgcolor=white><tt>Move to previous month in embedded date picker</tt>  <tr> <td bgcolor=white><tt>SHIFT+BACKSPACE</tt>  <td bgcolor=white><tt>Select previous document in view</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+C</tt>  <td bgcolor=white><tt>Display the Instant Messaging Contact List</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+ENTER</tt>  <td bgcolor=white><tt>Send mail memo and open new mail memo in Edit mode</tt>  <tr> <td bgcolor=white><tt>SHIFT+DELETE</tt>  <td bgcolor=white><tt>Delete mail memo (places memo in trash)</tt>  <tr> <td bgcolor=white><tt>SHIFT+ESC</tt>  <td bgcolor=white><tt>Close and save current document (except for mail memo) without opening the Close dialog box </tt> <tr> <td bgcolor=white><tt>SHIFT+ESC</tt>  <td bgcolor=white><tt>Send and close mail memo</tt>  <tr> <td bgcolor=white><tt>SHIFT+F3</tt>  <td bgcolor=white><tt>Move to previous selected document</tt>  <tr> <td bgcolor=white><tt>SHIFT+F4, or SHIFT+TAB</tt>  <td bgcolor=white><tt>Move to previous unread document</tt>  <tr> <td bgcolor=white><tt>SHIFT+F6</tt>  <td bgcolor=white><tt>Move to previous pane or frame</tt>  <tr> <td bgcolor=white><tt>SPACEBAR</tt>  <td bgcolor=white><tt>Give focus to embedded date picker</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> Navigating through Notes</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=59% bgcolor=white><tt><strong>Press</strong></tt>  <td width=40% bgcolor=white><tt><strong>To do this</strong></tt>  <tr> <td bgcolor=white><tt>ALT+B, then number (<span style="text-decoration:underline">Show extended accelerators</span> in User Preferences must be enabled)</tt>  <td bgcolor=white><tt>Open bookmark on Bookmark bar</tt>  <tr> <td bgcolor=white><tt>ALT+F5</tt>  <td bgcolor=white><tt>Restore Notes to default minimized size </tt> <tr> <td bgcolor=white><tt>ALT+F7, then ARROW KEYS, then ENTER</tt>  <td bgcolor=white><tt>Move position of active window</tt>  <tr> <td bgcolor=white><tt>ALT+F8, then ARROW KEYS, then ENTER</tt>  <td bgcolor=white><tt>Change size of active window</tt>  <tr> <td bgcolor=white><tt>ALT+F9</tt>  <td bgcolor=white><tt>Minimize active window </tt> <tr> <td bgcolor=white><tt>ALT+F10</tt>  <td bgcolor=white><tt>Maximize active windows</tt>  <tr> <td bgcolor=white><tt>ALT+number, then ARROW KEYS (Show extended accelerators in User Preferences must be enabled)</tt>  <td bgcolor=white><tt>Activate action button and action button menus on action bar</tt>  <tr> <td bgcolor=white><tt>ALT+underlined letter for menu item, or ARROW KEYS</tt>  <td bgcolor=white><tt>Move to next menu item</tt>  <tr> <td bgcolor=white><tt>ALT+W, then number (Show extended accelerators in User Preferences must be enabled)</tt>  <td bgcolor=white><tt>Open window tab and navigate between them on task bar</tt>  <tr> <td bgcolor=white><tt>ALT+W, then ARROW KEYS (<span style="text-decoration:underline">Display Window Menu</span> and Show extended accelerators options in User Preferences must be enabled)</tt>  <td bgcolor=white><tt>Open Window menu </tt> <tr> <td bgcolor=white><tt>ARROW KEYS</tt>  <td bgcolor=white><tt>Navigate between bookmarks on Bookmark bar or in Bookmark page</tt>  <tr> <td bgcolor=white><tt>ARROW KEYS</tt>  <td bgcolor=white><tt>Navigate between Workspace tabs and icons</tt>  <tr> <td bgcolor=white><tt>ARROW KEYS</tt>  <td bgcolor=white><tt>Navigate within embedded elements and objects, such as buttons, on Welcome Page</tt>  <tr> <td bgcolor=white><tt>CTRL+BREAK</tt>  <td bgcolor=white><tt>Stop operation in progress</tt>  <tr> <td bgcolor=white><tt>CTRL+F6</tt>  <td bgcolor=white><tt>Switch between open windows (for example, between the application and Help)</tt>  <tr> <td bgcolor=white><tt>CTRL+L, type URL address, then ENTER</tt>  <td bgcolor=white><tt>Go to a Web page</tt>  <tr> <td bgcolor=white><tt>CTRL+Q or ALT+F4</tt>  <td bgcolor=white><tt>Exit Notes</tt>  <tr> <td bgcolor=white><tt>CTRL+TAB, or ALT+RIGHT ARROW</tt>  <td bgcolor=white><tt>Move to next window tab</tt>  <tr> <td bgcolor=white><tt>DELETE</tt>  <td bgcolor=white><tt>Delete Workspace icon</tt>  <tr> <td bgcolor=white><tt>DOWN ARROW</tt>  <td bgcolor=white><tt>Move to next entry in Replicator</tt>  <tr> <td bgcolor=white><tt>END</tt>  <td bgcolor=white><tt>Move to last entry in Replicator</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Open keyword list in keyword field</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Open selected Workspace icon, window tab, menu item, bookmark</tt>  <tr> <td bgcolor=white><tt>ESC</tt>  <td bgcolor=white><tt>Exit embedded element on Welcome Page</tt>  <tr> <td bgcolor=white><tt>ESC or CTRL+W</tt>  <td bgcolor=white><tt>Close active window </tt> <tr> <td bgcolor=white><tt>F1</tt>  <td bgcolor=white><tt>Get Help on current feature</tt>  <tr> <td bgcolor=white><tt>F5</tt>  <td bgcolor=white><tt>Lock User ID</tt>  <tr> <td bgcolor=white><tt>F6</tt>  <td bgcolor=white><tt>Move to next pane or frame</tt>  <tr> <td bgcolor=white><tt>F10 or ALT</tt>  <td bgcolor=white><tt>Access menu bar</tt>  <tr> <td bgcolor=white><tt>HOME </tt> <td bgcolor=white><tt>Move to first entry in Replicator</tt>  <tr> <td bgcolor=white><tt>PAGE DOWN</tt>  <td bgcolor=white><tt>Move to previous page in Replicator</tt>  <tr> <td bgcolor=white><tt>PAGE UP</tt>  <td bgcolor=white><tt>Move to next page in Replicator</tt>  <tr> <td bgcolor=white><tt>SHIFT+ALT+S</tt>  <td bgcolor=white><tt>Open Search menu</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL, then UP ARROW or DOWN ARROW</tt>  <td bgcolor=white><tt>Select multiple bookmarks or Bookmark folders</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+ARROW KEYS, then ENTER or ESC</tt>  <td bgcolor=white><tt>Drag and drop Workspace icons</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+TAB, or ALT+LEFT ARROW</tt>  <td bgcolor=white><tt>Move to previous window tab</tt>  <tr> <td bgcolor=white><tt>SHIFT+F6</tt>  <td bgcolor=white><tt>Move to previous pane or frame</tt>  <tr> <td bgcolor=white><tt>SHIFT+F10</tt>  <td bgcolor=white><tt>Access Windows context menus</tt>  <tr> <td bgcolor=white><tt>SPACEBAR</tt>  <td bgcolor=white><tt>Open selected embedded element on Welcome Page</tt>  <tr> <td bgcolor=white><tt>UP ARROW</tt>  <td bgcolor=white><tt>Move to previous entry in Replicator</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> Databases</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=20% bgcolor=white><tt><strong>Press</strong></tt>  <td width=79% bgcolor=white><tt><strong>To do this</strong></tt>  <tr> <td bgcolor=white><tt>ARROW KEYS</tt>  <td bgcolor=white><tt>Move through embedded element</tt>  <tr> <td bgcolor=white><tt>CTRL+N</tt>  <td bgcolor=white><tt>Create new database</tt>  <tr> <td bgcolor=white><tt>CTRL+O</tt>  <td bgcolor=white><tt>Open database</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Select item in embedded outline</tt>  <tr> <td bgcolor=white><tt>ESC</tt>  <td bgcolor=white><tt>Exit embedded element</tt>  <tr> <td bgcolor=white><tt>ESC or CTRL+W</tt>  <td bgcolor=white><tt>Close current database</tt>  <tr> <td bgcolor=white><tt>F9</tt>  <td bgcolor=white><tt>Refresh current document (in Edit mode), view or workspace</tt>  <tr> <td bgcolor=white><tt>MINUS (-) key</tt>  <td bgcolor=white><tt>Collapse folder in embedded outline</tt>  <tr> <td bgcolor=white><tt>PAGE DOWN</tt>  <td bgcolor=white><tt>Move to bottom of active page </tt> <tr> <td bgcolor=white><tt>PAGE UP</tt>  <td bgcolor=white><tt>Move to top of active page</tt>  <tr> <td bgcolor=white><tt>PLUS (+) key</tt>  <td bgcolor=white><tt>Expand folder in embedded outline</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+F9</tt>  <td bgcolor=white><tt>Update all views in current database</tt>  <tr> <td bgcolor=white><tt>SHIFT+F9</tt>  <td bgcolor=white><tt>Rebuild current document, view, workspace (must have Manager access)</tt>  <tr> <td bgcolor=white><tt>SPACEBAR</tt>  <td bgcolor=white><tt>Give focus to embedded element</tt>  <tr> <td bgcolor=white><tt>UP and DOWN ARROW</tt>  <td bgcolor=white><tt>Move through embedded outline</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> Navigating within views, folders, and panes</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=49% bgcolor=white><tt><strong>Press</strong></tt>  <td width=50% bgcolor=white><tt><strong>To do</strong></tt>  <tr> <td bgcolor=white><tt>ARROW KEYS (if <span style="text-decoration:underline">Use TAB to Navigate Read-Only Documents</span> in User Preferences is disabled)</tt>  <td bgcolor=white><tt>Move through embedded view</tt>  <tr> <td bgcolor=white><tt>ASTERISK (*) key on numeric keypad</tt>  <td bgcolor=white><tt>Expand current collapsed view, category, or folder with subsections</tt>  <tr> <td bgcolor=white><tt>BACKSPACE</tt>  <td bgcolor=white><tt>Open previous document in current view or folder while still in current open document </tt> <tr> <td bgcolor=white><tt>CTRL+END</tt>  <td bgcolor=white><tt>Move to bottom of navigation pane or view pane</tt>  <tr> <td bgcolor=white><tt>CTRL+HOME</tt>  <td bgcolor=white><tt>Move to top of view navigation pane or view pane</tt>  <tr> <td bgcolor=white><tt>END</tt>  <td bgcolor=white><tt>Move to far right of view pane</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Open next document in current view or folder while still in current open document</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Open selected view or folder</tt>  <tr> <td bgcolor=white><tt>F6</tt>  <td bgcolor=white><tt>Move to next pane or frame</tt>  <tr> <td bgcolor=white><tt>HOME</tt>  <td bgcolor=white><tt>Move to far left of view pane</tt>  <tr> <td bgcolor=white><tt>LEFT and RIGHT ARROW</tt>  <td bgcolor=white><tt>Expand and collapse views and folders that have subsections</tt>  <tr> <td bgcolor=white><tt>MINUS (-) key</tt>  <td bgcolor=white><tt>Collapse expanded view, category, or folder</tt>  <tr> <td bgcolor=white><tt>PLUS (+) key</tt>  <td bgcolor=white><tt>Expand collapsed view, category, or folder</tt>  <tr> <td bgcolor=white><tt>SHIFT+8</tt>  <td bgcolor=white><tt>Expand all collapsed views, categories, or folders with subsections</tt>  <tr> <td bgcolor=white><tt>SHIFT+BACKSPACE</tt>  <td bgcolor=white><tt>Select previous document in view</tt>  <tr> <td bgcolor=white><tt>SHIFT+F6</tt>  <td bgcolor=white><tt>Move to previous pane or frame</tt>  <tr> <td bgcolor=white><tt>TAB</tt>  <td bgcolor=white><tt>Move to next unread document in embedded view</tt>  <tr> <td bgcolor=white><tt>UP and DOWN ARROW</tt>  <td bgcolor=white><tt>Move between views and folders</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> Dialog boxes</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=29% bgcolor=white><tt><strong>Press</strong></tt>  <td width=70% bgcolor=white><tt><strong>To do this</strong></tt>  <tr> <td bgcolor=white><tt>DOWN ARROW or RIGHT ARROW</tt>  <td bgcolor=white><tt>Select next item in a list or set of options in dialog box</tt>  <tr> <td bgcolor=white><tt>ESC</tt>  <td bgcolor=white><tt>Cancel changes and close dialog box</tt>  <tr> <td bgcolor=white><tt>F1</tt>  <td bgcolor=white><tt>Get Help on current dialog box</tt>  <tr> <td bgcolor=white><tt>SHIFT+TAB</tt>  <td bgcolor=white><tt>Move to previous option or set of options in dialog box</tt>  <tr> <td bgcolor=white><tt>SPACEBAR</tt>  <td bgcolor=white><tt>Access default or selected item(s) in dialog box </tt> <tr> <td bgcolor=white><tt>TAB</tt>  <td bgcolor=white><tt>Move to next option or set of options in dialog box </tt> <tr> <td bgcolor=white><tt>UP ARROW 
or LEFT ARROW</tt>  <td bgcolor=white><tt>Select previous item in a list or set of options in dialog box</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> Properties boxes</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=22% bgcolor=white><tt><strong>Press</strong></tt>  <td width=77% bgcolor=white><tt><strong>To do this</strong></tt>  <tr> <td bgcolor=white><tt>ALT+DOWN ARROW</tt>  <td bgcolor=white><tt>Open Color field in Font tab</tt>  <tr> <td bgcolor=white><tt>ALT+UP ARROW</tt>  <td bgcolor=white><tt>Close Color field in Font tab</tt>  <tr> <td bgcolor=white><tt>ALT+ENTER</tt>  <td bgcolor=white><tt>Open or close properties box</tt>  <tr> <td bgcolor=white><tt>CTRL+ALT+ENTER</tt>  <td bgcolor=white><tt>Open or close express tools in properties box</tt>  <tr> <td bgcolor=white><tt>CTRL+END</tt>  <td bgcolor=white><tt>Move to last properties box tab (in Text and Table Properties, last tab is Express Tools)</tt>  <tr> <td bgcolor=white><tt>CTRL+HOME</tt>  <td bgcolor=white><tt>Move to first properties box tab</tt>  <tr> <td bgcolor=white><tt>CTRL+PAGE DOWN</tt>  <td bgcolor=white><tt>Move to next properties box tab</tt>  <tr> <td bgcolor=white><tt>CTRL+PAGE UP</tt>  <td bgcolor=white><tt>Move to previous properties box tab</tt>  <tr> <td bgcolor=white><tt>DOWN ARROW or RIGHT ARROW</tt>  <td bgcolor=white><tt>Select next item in a list or set of options in properties box</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Activate default or selected item(s) in properties box</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Close Color field in Font tab and activate selection</tt>  <tr> <td bgcolor=white><tt>ESC</tt>  <td bgcolor=white><tt>Close Color field in Font tab without activating selection</tt>  <tr> <td bgcolor=white><tt>ESC</tt>  <td bgcolor=white><tt>Close properties box when focus is in properties box</tt>  <tr> <td bgcolor=white><tt>F1</tt>  <td bgcolor=white><tt>Get Help on current properties box</tt>  <tr> <td bgcolor=white><tt>SHIFT+TAB</tt>  <td bgcolor=white><tt>Move to previous option or set of options in properties box</tt>  <tr> <td bgcolor=white><tt>TAB</tt>  <td bgcolor=white><tt>Move to next option or set of options in properties box</tt>  <tr> <td bgcolor=white><tt>UP ARROW or LEFT ARROW</tt>  <td bgcolor=white><tt>Select previous item in a list or set of options in properties box</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> Reading documents<br /> <br /> NOTE: </strong>The entries in the section below for "CTRL+DOWN ARROW" and "CTRL+UP ARROW" are incorrect in the Client Help database. The commands should be "CTRL+PLUS" and "CTRL+MINUS", respectively. This documentation error has been reported to Quality Engineering as SPR# PBIT69JPPF.</tt><br /> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=15% bgcolor=white><tt><strong>Press</strong></tt>  <td width=84% bgcolor=white><tt><strong>To do this</strong></tt>  <tr> <td bgcolor=white><tt>ARROW KEYS</tt>  <td bgcolor=white><tt>Navigate within embedded element in a document</tt>  <tr> <td bgcolor=white><tt>CTRL+DOWN ARROW</tt>  <td bgcolor=white><tt>Move to next highlighted search word in document appearing in preview pane</tt>  <tr> <td bgcolor=white><tt>CTRL+E</tt>  <td bgcolor=white><tt>Edit document</tt>  <tr> <td bgcolor=white><tt>CTRL+END</tt>  <td bgcolor=white><tt>Move to bottom of document</tt>  <tr> <td bgcolor=white><tt>CTRL+F</tt>  <td bgcolor=white><tt>Find text and replace</tt>  <tr> <td bgcolor=white><tt>CTRL+G</tt>  <td bgcolor=white><tt>Find next word after "Find text and replace" starts</tt>  <tr> <td bgcolor=white><tt>CTRL+HOME</tt>  <td bgcolor=white><tt>Move to top of document</tt>  <tr> <td bgcolor=white><tt>CTRL+P</tt>  <td bgcolor=white><tt>Print selected document</tt>  <tr> <td bgcolor=white><tt>CTRL+PAGE DOWN</tt>  <td bgcolor=white><tt>Move to next tab in tabbed table</tt>  <tr> <td bgcolor=white><tt>CTRL+PAGE UP</tt>  <td bgcolor=white><tt>Move to previous tab in tabbed table </tt> <tr> <td bgcolor=white><tt>CTRL+UP ARROW</tt>  <td bgcolor=white><tt>Move to previous highlighted search word in document appearing in preview pane</tt>  <tr> <td bgcolor=white><tt>ESC</tt>  <td bgcolor=white><tt>Exit embedded element in a document</tt>  <tr> <td bgcolor=white><tt>ESC</tt>  <td bgcolor=white><tt>Move to previous linked document </tt> <tr> <td bgcolor=white><tt>F3</tt>  <td bgcolor=white><tt>Move to next selected document</tt>  <tr> <td bgcolor=white><tt>F4 or TAB</tt>  <td bgcolor=white><tt>Move to next unread document</tt>  <tr> <td bgcolor=white><tt>LEFT ARROW</tt>  <td bgcolor=white><tt>Move to previous link or object</tt>  <tr> <td bgcolor=white><tt>RIGHT ARROW</tt>  <td bgcolor=white><tt>Move to next link or object</tt>  <tr> <td bgcolor=white><tt>SHIFT+F3</tt>  <td bgcolor=white><tt>Move to previous selected document</tt>  <tr> <td bgcolor=white><tt>SHIFT+F4 or SHIFT+TAB</tt>  <td bgcolor=white><tt>Move to previous unread document</tt>  <tr> <td bgcolor=white><tt>SPACEBAR</tt>  <td bgcolor=white><tt>Access embedded element in a document</tt>  <tr> <td bgcolor=white><tt>SPACEBAR</tt>  <td bgcolor=white><tt>Activate selected object</tt>  <tr> <td bgcolor=white><tt>SPACEBAR</tt>  <td bgcolor=white><tt>Expand or collapse selected section </tt> <tr> <td bgcolor=white><tt>SPACEBAR</tt>  <td bgcolor=white><tt>Open selected link to document, view or database</tt>  <tr> <td bgcolor=white><tt>TAB</tt>  <td bgcolor=white><tt>Move to next object within open document, then out of the frame to the header frame, then to the "preview" frame caption</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> Selecting and moving text in a document</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=24% bgcolor=white><tt><strong>Press </strong></tt> <td width=75% bgcolor=white><tt><strong>To do this</strong></tt>  <tr> <td bgcolor=white><tt>ARROW KEYS</tt>  <td bgcolor=white><tt>Move cursor<strong><br /> Note</strong> If SCROLL LOCK key is on, scroll page</tt>  <tr> <td bgcolor=white><tt>CTRL+A</tt>  <td bgcolor=white><tt>Select all contents of document</tt>  <tr> <td bgcolor=white><tt>CTRL+C </tt> <td bgcolor=white><tt>Copy selected text or object</tt>  <tr> <td bgcolor=white><tt>CTRL+DOWN ARROW</tt>  <td bgcolor=white><tt>Move item in list or table one row down</tt>  <tr> <td bgcolor=white><tt>CTRL+UP ARROW</tt>  <td bgcolor=white><tt>Move item in list or table one row up</tt>  <tr> <td bgcolor=white><tt>CTRL+V</tt>  <td bgcolor=white><tt>Paste text or object</tt>  <tr> <td bgcolor=white><tt>CTRL+X</tt>  <td bgcolor=white><tt>Cut selected text or object</tt>  <tr> <td bgcolor=white><tt>DELETE</tt>  <td bgcolor=white><tt>Delete selected graphic</tt>  <tr> <td bgcolor=white><tt>DELETE</tt>  <td bgcolor=white><tt>Delete selected text or object</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+DOWN ARROW</tt>  <td bgcolor=white><tt>Select text up to same point of next line</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+LEFT ARROW</tt>  <td bgcolor=white><tt>Select previous word</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+RIGHT ARROW</tt>  <td bgcolor=white><tt>Select next word</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+UP ARROW</tt>  <td bgcolor=white><tt>Select text up to same point of previous line</tt>  <tr> <td bgcolor=white><tt>SHIFT+DOWN ARROW</tt>  <td bgcolor=white><tt>Select text to end of current line, move focus to next line</tt>  <tr> <td bgcolor=white><tt>SHIFT+END</tt>  <td bgcolor=white><tt>Select text to end of current line</tt>  <tr> <td bgcolor=white><tt>SHIFT+HOME</tt>  <td bgcolor=white><tt>Select text to beginning of current line </tt> <tr> <td bgcolor=white><tt>SHIFT+LEFT ARROW</tt>  <td bgcolor=white><tt>Select previous character</tt>  <tr> <td bgcolor=white><tt>SHIFT+RIGHT ARROW</tt>  <td bgcolor=white><tt>Select next character</tt>  <tr> <td bgcolor=white><tt>SHIFT+UP ARROW</tt>  <td bgcolor=white><tt>Select text to beginning of current line, move focus to previous line</tt></table> <br /> <br /><br /> <br /> <tt><strong><br /> <br /> <br /> Moving the cursor in a document</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=70% bgcolor=white><tt><strong>Press</strong></tt>  <td width=29% bgcolor=white><tt><strong>To move to</strong></tt>  <tr> <td bgcolor=white><tt>CTRL+LEFT ARROW</tt>  <td bgcolor=white><tt>Beginning of current word</tt>  <tr> <td bgcolor=white><tt>CTRL+RIGHT ARROW</tt>  <td bgcolor=white><tt>Beginning of next word</tt>  <tr> <td bgcolor=white><tt>END</tt>  <td bgcolor=white><tt>End of line</tt>  <tr> <td bgcolor=white><tt>HOME</tt>  <td bgcolor=white><tt>Beginning of line</tt>  <tr> <td bgcolor=white><tt>SHIFT+TAB</tt>  <td bgcolor=white><tt>Previous field in a form</tt>  <tr> <td bgcolor=white><tt>SHIFT+TAB</tt>  <td bgcolor=white><tt>Previous row in table</tt>  <tr> <td bgcolor=white><tt>TAB (<span style="text-decoration:underline">Use accessibility keyboard navigation</span> in User Preferences must be enabled)</tt>  <td bgcolor=white><tt>Next field in a form</tt>  <tr> <td bgcolor=white><tt>ARROW KEYS (if "Use accessibilty keyboard navigation" is disabled)</tt>  <td bgcolor=white><tt>Navigate between fields on a form</tt>  <tr> <td bgcolor=white><tt>TAB</tt>  <td bgcolor=white><tt>Next row in table</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> Changing text and paragraph properties in a document</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=11% bgcolor=white><tt><strong>Press</strong></tt>  <td width=88% bgcolor=white><tt><strong>To do this</strong></tt>  <tr> <td bgcolor=white><tt>CTRL+B</tt>  <td bgcolor=white><tt>Bold selected text</tt>  <tr> <td bgcolor=white><tt>CTRL+E</tt>  <td bgcolor=white><tt>Put document in either Read or Edit mode</tt>  <tr> <td bgcolor=white><tt>CTRL+F</tt>  <td bgcolor=white><tt>Find text and replace</tt>  <tr> <td bgcolor=white><tt>CTRL+G</tt>  <td bgcolor=white><tt>Find next word when "Find text and replace" starts</tt>  <tr> <td bgcolor=white><tt>CTRL+I</tt>  <td bgcolor=white><tt>Italicize selected text</tt>  <tr> <td bgcolor=white><tt>CTRL+J</tt>  <td bgcolor=white><tt>Format paragraphs (alignment, spacing, etc.)</tt>  <tr> <td bgcolor=white><tt>CTRL+K</tt>  <td bgcolor=white><tt>Format text (font, size, color, etc.)</tt>  <tr> <td bgcolor=white><tt>CTRL+R</tt>  <td bgcolor=white><tt>Show/Hide ruler</tt>  <tr> <td bgcolor=white><tt>CTRL+T</tt>  <td bgcolor=white><tt>Change text style to default (color changes only if the text style was applied using a <span style="text-decoration:underline">Paragraph Style</span>) </tt> <tr> <td bgcolor=white><tt>CTRL+U</tt>  <td bgcolor=white><tt>Underline selected text</tt>  <tr> <td bgcolor=white><tt>CTRL+Z</tt>  <td bgcolor=white><tt>Undo last action</tt>  <tr> <td bgcolor=white><tt>F2</tt>  <td bgcolor=white><tt>Enlarge selected text to next available point size</tt>  <tr> <td bgcolor=white><tt>F7</tt>  <td bgcolor=white><tt>Indent first line in paragraph</tt>  <tr> <td bgcolor=white><tt>F8 </tt> <td bgcolor=white><tt>Indent entire paragraph </tt> <tr> <td bgcolor=white><tt>F9</tt>  <td bgcolor=white><tt>Refresh current document (in Edit mode), view, or workspace</tt>  <tr> <td bgcolor=white><tt>F11</tt>  <td bgcolor=white><tt>Cycle through paragraph styles (defined in the Paragraph Styles tab in Text Properties)</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+L</tt>  <td bgcolor=white><tt>Insert page break</tt>  <tr> <td bgcolor=white><tt>SHIFT+F2</tt>  <td bgcolor=white><tt>Reduce selected text to next available point size</tt>  <tr> <td bgcolor=white><tt>SHIFT+F7</tt>  <td bgcolor=white><tt>Outdent first line in a paragraph</tt>  <tr> <td bgcolor=white><tt>SHIFT+F8</tt>  <td bgcolor=white><tt>Outdent entire paragraph</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> Working in views</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=18% bgcolor=white><tt><strong>Press</strong></tt>  <td width=81% bgcolor=white><tt><strong>To do this</strong></tt>  <tr> <td bgcolor=white><tt>CTRL+A</tt>  <td bgcolor=white><tt>Select all documents in view</tt>  <tr> <td bgcolor=white><tt>CTRL+C</tt>  <td bgcolor=white><tt>Copy selected document</tt>  <tr> <td bgcolor=white><tt>CTRL+F</tt>  <td bgcolor=white><tt>Find text in view</tt>  <tr> <td bgcolor=white><tt>CTRL+P</tt>  <td bgcolor=white><tt>Print selected document or view</tt>  <tr> <td bgcolor=white><tt>CTRL+V</tt>  <td bgcolor=white><tt>Paste selected document</tt>  <tr> <td bgcolor=white><tt>CTRL+X</tt>  <td bgcolor=white><tt>Cut selected document</tt>  <tr> <td bgcolor=white><tt>DELETE</tt>  <td bgcolor=white><tt>Delete selected document (place document in Trash folder; Calendar entries are permanently deleted)</tt>  <tr> <td bgcolor=white><tt>ENTER</tt>  <td bgcolor=white><tt>Select item in embedded view</tt>  <tr> <td bgcolor=white><tt>F3</tt>  <td bgcolor=white><tt>Move to next selected document</tt>  <tr> <td bgcolor=white><tt>F4 or TAB</tt>  <td bgcolor=white><tt>Move to next unread document</tt>  <tr> <td bgcolor=white><tt>F9</tt>  <td bgcolor=white><tt>Refresh current document (in Edit mode), view or workspace</tt>  <tr> <td bgcolor=white><tt>SHIFT+CTRL+F9</tt>  <td bgcolor=white><tt>Update all views in current database</tt>  <tr> <td bgcolor=white><tt>SHIFT+DELETE</tt>  <td bgcolor=white><tt>Delete selected document permanently</tt>  <tr> <td bgcolor=white><tt>SHIFT+F3</tt>  <td bgcolor=white><tt>Move to previous selected document</tt>  <tr> <td bgcolor=white><tt>SHIFT+F4 or SHIFT+TAB</tt>  <td bgcolor=white><tt>Move to previous unread document</tt>  <tr> <td bgcolor=white><tt>SHIFT+F9</tt>  <td bgcolor=white><tt>Rebuild current document, view, or workspace (must have Manager access)</tt>  <tr> <td bgcolor=white><tt>SPACEBAR</tt>  <td bgcolor=white><tt>Select or deselect document</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> Supporting Information:</strong><br /> The Notes 5.x Online Help also included the below entry. The information should be valid for Notes 6.x as well:<strong><br /> <br /> Keyboard shortcuts when editing a document</strong><br /> <br /> You can use the following keyboard combinations while editing a document.<strong><br /> <br /> <br /> In Windows</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=74% bgcolor=white><tt><strong>To do this</strong></tt>  <td width=25% bgcolor=white><tt><strong>Press</strong></tt>  <tr> <td bgcolor=white><tt>Bold selected text</tt>  <td bgcolor=white><tt>CTRL+B</tt>  <tr> <td bgcolor=white><tt>Change text properties to default (except for color)</tt>  <td bgcolor=white><tt>CTRL+T</tt>  <tr> <td bgcolor=white><tt>Close the document</tt>  <td bgcolor=white><tt>CTRL+W or ESC</tt>  <tr> <td bgcolor=white><tt>Close and save the current document without opening the dialog</tt>  <td bgcolor=white><tt>SHIFT+ESC</tt>  <tr> <td bgcolor=white><tt>Copy selected text or object</tt>  <td bgcolor=white><tt>CTRL+C </tt> <tr> <td bgcolor=white><tt>Cut selected text or object</tt>  <td bgcolor=white><tt>CTRL+X</tt>  <tr> <td bgcolor=white><tt>Delete selected text or object</tt>  <td bgcolor=white><tt>DELETE</tt>  <tr> <td bgcolor=white><tt>Enlarge selected text to next available point size</tt>  <td bgcolor=white><tt>F2</tt>  <tr> <td bgcolor=white><tt>Find and replace</tt>  <td bgcolor=white><tt>CTRL+F</tt>  <tr> <td bgcolor=white><tt>Find next and replace</tt>  <td bgcolor=white><tt>CTRL+G</tt>  <tr> <td bgcolor=white><tt>Format paragraphs (margins, tabs, etc.)</tt>  <td bgcolor=white><tt>CTRL+J</tt>  <tr> <td bgcolor=white><tt>Format text (font, size, color, etc.)</tt>  <td bgcolor=white><tt>CTRL+K</tt>  <tr> <td bgcolor=white><tt>Indent entire paragraph </tt> <td bgcolor=white><tt>F8 (SHIFT+F8 to undo)</tt>  <tr> <td bgcolor=white><tt>Indent the first line in a paragraph</tt>  <td bgcolor=white><tt>F7 (SHIFT+F7 to undo)</tt>  <tr> <td bgcolor=white><
tt>Insert page break</tt>  <td bgcolor=white><tt>CTRL+SHIFT+L</tt>  <tr> <td bgcolor=white><tt>Italicize selected text</tt>  <td bgcolor=white><tt>CTRL+I</tt>  <tr> <td bgcolor=white><tt>Jump to beginning of next word</tt>  <td bgcolor=white><tt>CTRL+right arrow</tt>  <tr> <td bgcolor=white><tt>Jump to beginning of current word</tt>  <td bgcolor=white><tt>CTRL+right arrow</tt>  <tr> <td bgcolor=white><tt>Outdent entire paragraph</tt>  <td bgcolor=white><tt>SHIFT+F8</tt>  <tr> <td bgcolor=white><tt>Outdent first line in a paragraph</tt>  <td bgcolor=white><tt>SHIFT+F7</tt>  <tr> <td bgcolor=white><tt>Paste</tt>  <td bgcolor=white><tt>CTRL+V</tt>  <tr> <td bgcolor=white><tt>Reduce selected text to next available point size</tt>  <td bgcolor=white><tt>SHIFT+F2</tt>  <tr> <td bgcolor=white><tt>Save the current document</tt>  <td bgcolor=white><tt>CTRL+S</tt>  <tr> <td bgcolor=white><tt>Select contents of a document</tt>  <td bgcolor=white><tt>CTRL+A</tt>  <tr> <td bgcolor=white><tt>Select next character</tt>  <td bgcolor=white><tt>SHIFT+right arrow</tt>  <tr> <td bgcolor=white><tt>Select previous character</tt>  <td bgcolor=white><tt>SHIFT+left arrow</tt>  <tr> <td bgcolor=white><tt>Select text to end of current line</tt>  <td bgcolor=white><tt>SHIFT+END</tt>  <tr> <td bgcolor=white><tt>Select text to beginning of current line </tt> <td bgcolor=white><tt>SHIFT+HOME</tt>  <tr> <td bgcolor=white><tt>Select text to end of current line, move focus to next </tt> <td bgcolor=white><tt>SHIFT+down arrow</tt>  <tr> <td bgcolor=white><tt>Select text to beginning of current line, move focus to previous</tt>  <td bgcolor=white><tt>SHIFT+up arrow</tt>  <tr> <td bgcolor=white><tt>Undo last action</tt>  <td bgcolor=white><tt>CTRL+Z</tt>  <tr> <td bgcolor=white><tt>Underline selected text</tt>  <td bgcolor=white><tt>CTRL+U</tt></table> <br /> <br /><br /> <br /> <tt><br /> <strong><br /> <br /> <br /> On the Mac</strong></tt> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=74% bgcolor=white><tt><strong>To do this</strong></tt>  <td width=25% bgcolor=white><tt><strong>Press</strong></tt>  <tr> <td bgcolor=white><tt>Bold selected text</tt>  <td bgcolor=white><tt>COMMAND+B</tt>  <tr> <td bgcolor=white><tt>Change text properties to default (except color)</tt>  <td bgcolor=white><tt>COMMAND+T</tt>  <tr> <td bgcolor=white><tt>Close the document</tt>  <td bgcolor=white><tt>COMMAND+W or ESC</tt>  <tr> <td bgcolor=white><tt>Copy selected text or object</tt>  <td bgcolor=white><tt>COMMAND+C or F3</tt>  <tr> <td bgcolor=white><tt>Cut selected text or object</tt>  <td bgcolor=white><tt>COMMAND+X or F2</tt>  <tr> <td bgcolor=white><tt>Delete selected text or object</tt>  <td bgcolor=white><tt>DELETE</tt>  <tr> <td bgcolor=white><tt>Find and replace</tt>  <td bgcolor=white><tt>COMMAND+F</tt>  <tr> <td bgcolor=white><tt>Find next and replace</tt>  <td bgcolor=white><tt>COMMAND+G</tt>  <tr> <td bgcolor=white><tt>Format paragraphs (margins, tabs, etc.)</tt>  <td bgcolor=white><tt>COMMAND+J</tt>  <tr> <td bgcolor=white><tt>Format text (font, size, color, etc.)</tt>  <td bgcolor=white><tt>COMMAND+K</tt>  <tr> <td bgcolor=white><tt>Indent entire paragraph </tt> <td bgcolor=white><tt>F8 (SHIFT+F8 to undo)</tt>  <tr> <td bgcolor=white><tt>Indent the first line in a paragraph</tt>  <td bgcolor=white><tt>F7 (SHIFT+F7 to undo)</tt>  <tr> <td bgcolor=white><tt>Insert page break</tt>  <td bgcolor=white><tt>COMMAND+SHIFT+L</tt>  <tr> <td bgcolor=white><tt>Italicize selected text</tt>  <td bgcolor=white><tt>COMMAND+I</tt>  <tr> <td bgcolor=white><tt>Jump to beginning of next word</tt>  <td bgcolor=white><tt>CTRL+right arrow</tt>  <tr> <td bgcolor=white><tt>Jump to beginning of current word</tt>  <td bgcolor=white><tt>CTRL+right arrow</tt>  <tr> <td bgcolor=white><tt>Outdent entire paragraph</tt>  <td bgcolor=white><tt>SHIFT+F8</tt>  <tr> <td bgcolor=white><tt>Outdent first line in a paragraph</tt>  <td bgcolor=white><tt>SHIFT+F7</tt>  <tr> <td bgcolor=white><tt>Paste</tt>  <td bgcolor=white><tt>COMMAND+V or F4</tt>  <tr> <td bgcolor=white><tt>Save the current document</tt>  <td bgcolor=white><tt>COMMAND+S</tt>  <tr> <td bgcolor=white><tt>Select contents of a document</tt>  <td bgcolor=white><tt>COMMAND+A</tt>  <tr> <td bgcolor=white><tt>Select next character</tt>  <td bgcolor=white><tt>SHIFT+right arrow</tt>  <tr> <td bgcolor=white><tt>Select previous character</tt>  <td bgcolor=white><tt>SHIFT+left arrow</tt>  <tr> <td bgcolor=white><tt>Select text to end of current line</tt>  <td bgcolor=white><tt>SHIFT+END</tt>  <tr> <td bgcolor=white><tt>Select text to beginning of current line </tt> <td bgcolor=white><tt>SHIFT+HOME</tt>  <tr> <td bgcolor=white><tt>Select text to end of current line, move focus to next </tt> <td bgcolor=white><tt>SHIFT+down arrow</tt>  <tr> <td bgcolor=white><tt>Select text to beginning of current line, move focus to previous</tt>  <td bgcolor=white><tt>SHIFT+up arrow</tt>  <tr> <td bgcolor=white><tt>Undo last action</tt>  <td bgcolor=white><tt>COMMAND+Z or F1</tt>  <tr> <td bgcolor=white><tt>Underline selected text</tt>  <td bgcolor=white><tt>COMMAND+U</tt></table> <br /> <br /><br /> <br /> </table> <br /> <br /><br /> <br />   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/tastaturkuezel-des-lotus-notes-6.x-clients.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/tastaturkuezel-des-lotus-notes-6.x-clients.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Computernamen ermitteln</title>
<pubDate>Sat, 18 Dec 2004 16:47:07 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/computernamen-ermitteln.htm</link>
<category>Systemfunktionen</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/computernamen-ermitteln.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/computernamen-ermitteln.htm</guid>
<content:encoded><![CDATA[ Um den Maschinenamen (Computernamen) eines Windows-Rechners (Client oder Server) zu ermitteln, kann man folgende Formel verwenden: <br /> <strong> <br /> _CName := @RegQueryValue("HKEY_LOCAL_MACHINE"; "System\\CurrentControlSet\\Control\\ComputerName\\ActiveComputerName"; "ComputerName");</strong> <strong><br /> @Prompt (&#91;Ok&#93;; "Computername"; _CName)</strong>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/computernamen-ermitteln.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/computernamen-ermitteln.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Wie kann man prüfen, ob ein dynamisches Array initialisiert wurde?</title>
<pubDate>Wed, 24 Nov 2004 21:21:11 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/wie-kann-man-pruefen-ob-ein-dynamisches-array-initialisiert-wurde.htm</link>
<category>Arrays</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/wie-kann-man-pruefen-ob-ein-dynamisches-array-initialisiert-wurde.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/wie-kann-man-pruefen-ob-ein-dynamisches-array-initialisiert-wurde.htm</guid>
<content:encoded><![CDATA[ Nicht selten kann man erst zur Laufzeit ermitteln, wie viele Werte man in einem Array sammeln muß. Hierzu verwendet man dann dynamische Arrays: <br /> <strong> <br /> Dim</strong> vArray () <strong>As</strong> <strong>Variant</strong><br />  &nbsp; ...<br />  &nbsp; ...<strong><br /> If</strong> x > 1 <strong>then</strong><br />  &nbsp; ...<br /> Redmin <strong>Preserve</strong> vArray(i)<br />  &nbsp; ...<strong><br /> End</strong> <strong>If</strong> <br /> <br /> Wenn man dann auf das Array zugreift (z.B. im Rahmen der Übergabe an Subs und Functions) besteht die Gefahr, dass das Array niemals initialisiert wurde. Dieses führt zu Laufzeitfehlern "Trying to access an uninitialized array". Der Aufruf folgender Function verhindert es: <br /> <strong><br /> Function</strong> isArrayInitialized (vArray) <strong>As</strong> <strong>Variant</strong><br /> <br />  &nbsp; isArrayInitialized = <strong>False</strong><br /> <br />  &nbsp; <strong>Forall</strong> a <strong>In</strong> vArray<br />  &nbsp; &nbsp; &nbsp; isArrayInitialized = <strong>True</strong><br />  &nbsp; &nbsp; &nbsp; <strong>Exit</strong> <strong>Forall</strong><br />  &nbsp; <strong>End</strong> <strong>Forall<br /> <br /> End</strong> <strong>Function</strong> <br /> <br /> die jeweils TRUE oder FALSE liefert.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/wie-kann-man-pruefen-ob-ein-dynamisches-array-initialisiert-wurde.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/wie-kann-man-pruefen-ob-ein-dynamisches-array-initialisiert-wurde.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Softlocking kann stören....</title>
<pubDate>Sat, 13 Nov 2004 11:56:58 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/softlocking-kann-stoeren.....htm</link>
<category>Benutzung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/softlocking-kann-stoeren.....htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/softlocking-kann-stoeren.....htm</guid>
<content:encoded><![CDATA[ Seit Notes / Domino 6 werden Dokumente im Bearbeitungsmodus durch diesen Benutzer automatisch "gesperrt", um Speicherkonflikte vermeiden zu helfen. In manchen Anwendungen (die früher entwickelt wurden) kann dieses jedoch zu Fehlern führen, wenn LotusScript Funktionen Dokumente im Hintergrund / Vordergrund erstellt/bearbeitet werden und der Benutzer interaktiv das gleiche Dokument bearbeitet. <br />  <br /> Um diese Funktion abzuschalten, kann der Notes.ini Eintrag: <br /> <br /> EDIT_NO_SOFT_LOCKS=1 <br /> <br /> auf Notes Client-Seite verwendet werden. Dieser wird ab Notes 6.5.1 interpretiert.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/softlocking-kann-stoeren.....htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/softlocking-kann-stoeren.....htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Sortierung von Kontakten im Privaten Adressbuch nach einer Migration</title>
<pubDate>Thu, 21 Oct 2004 09:41:08 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/sortierung-von-kontakten-im-privaten-adressbuch-nach-einer-migration.htm</link>
<category>Bedienung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/sortierung-von-kontakten-im-privaten-adressbuch-nach-einer-migration.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/sortierung-von-kontakten-im-privaten-adressbuch-nach-einer-migration.htm</guid>
<content:encoded><![CDATA[ Nach einer Migration auf ND6 sind die Kontakt-Dokumente, welche unter R5/R4 bzw. per Software von Palm/Handy erzeugtwerden, nicht im richtigen Format um die Sortierung nach Vor - und Nachname erfolgreich anwenden zu können. Neue Kontaktdokumente kann man erfolgreich in der Sortierung ändern, die "alten" jedoch nicht. <br /> <br /> Die Lösung: Einfach alle Dokumente in der Kontakte Ansicht nocheinmal neu speichern. Dies kann Händisch erfolgen, oder mittels eines Agenten oder einem Smarticon. <br /> Bei dem Agenten/Smarticon muss nur folgende Formel angegeben werden : @Command(&#91;ToolsRefreshSelectedDocs&#93;). <br /> Dadurch werden alle Dokumente, welches selektiert sind, durch Klick auf das Smarticon neu gerechnet und sind somit auch in der Sortierung änderbar. <br /> <br /> Hier eine kleine Anleitung für ein SmartIcon: <br /> <br /> 1.Die Symbolleiste öffnen : <br /> <br /> <img  alt="Image:Sortierung von Kontakten im Privaten Adressbuch nach einer Migration" border="0" src="http://www.mmi-consult.de/FAQ/dx/sortierung-von-kontakten-im-privaten-adressbuch-nach-einer-migration.htm/content/M2?OpenElement" /><br /> <br /> 2. Im neuen Dialog "Vorgabe für Symbolleisten" auf Anpassen für die Symbolleiste "Universal" klicken, welche per Default eingestellt seine sollte. <br /> <br /> <img  alt="Image:Sortierung von Kontakten im Privaten Adressbuch nach einer Migration" border="0" src="http://www.mmi-consult.de/FAQ/dx/sortierung-von-kontakten-im-privaten-adressbuch-nach-einer-migration.htm/content/M3?OpenElement" /><br /> <br /> 3. Auf "Neu-Schaltfläche" klicken, damit ein Dialog für eine neue Schaltfläche angezeigt wird. In diesem sollten nun folgende Einstellungen getätigt werden. <br /> <br /> <img  alt="Image:Sortierung von Kontakten im Privaten Adressbuch nach einer Migration" border="0" src="http://www.mmi-consult.de/FAQ/dx/sortierung-von-kontakten-im-privaten-adressbuch-nach-einer-migration.htm/content/M4?OpenElement" /><br /> Das Icon kann nach Lust und Laune geändert werden. <br /> <br /> 4. Im der Symbolleiste muss nun das Smarticon angezeigt werden: also einfach die Symbolleite etwas größer ziehen. <br /> <br /> <img  alt="Image:Sortierung von Kontakten im Privaten Adressbuch nach einer Migration" border="0" src="http://www.mmi-consult.de/FAQ/dx/sortierung-von-kontakten-im-privaten-adressbuch-nach-einer-migration.htm/content/M5?OpenElement" /><br /> <br /> 5. Nun im Privaten Addressbuch die Kontakte Ansicht öffnen und alle Dokumente selektieren (Ctrl-A). Danach auf dass SmartIcon klicken. Nun sollte die Sortierung auch für "alte" Dokumente funktionieren.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/sortierung-von-kontakten-im-privaten-adressbuch-nach-einer-migration.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/sortierung-von-kontakten-im-privaten-adressbuch-nach-einer-migration.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Datenbanken auswählen in LotusScript</title>
<pubDate>Sun, 5 Sep 2004 12:17:24 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/datenbanken-auswaehlen-in-lotusscript.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/datenbanken-auswaehlen-in-lotusscript.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/datenbanken-auswaehlen-in-lotusscript.htm</guid>
<content:encoded><![CDATA[ Manchmal benötigt man in Applikationen den Namen von Dateien auf dem eigenen Rechner. In LotusScript kann man hierfür eine nicht dokumentierte Funktion dafür verwenden: <br />  <br /> <br />  &nbsp; &nbsp; &nbsp; Dim uiws As New NotesUIWorkspace <br />  &nbsp; &nbsp; &nbsp; Dim doc As NotesDocument <br />  &nbsp; &nbsp; &nbsp; Dim result As Variant <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; result = uiws.Prompt ( 12, "", "") <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; Set doc = uiws.CurrentDocument.Document <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; doc.FileName = result(0)   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/datenbanken-auswaehlen-in-lotusscript.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/datenbanken-auswaehlen-in-lotusscript.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Aufruf von Notes API Funktionen aus LotusScript</title>
<pubDate>Sun, 29 Aug 2004 20:23:17 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/aufruf-von-notes-api-funktionen-aus-lotusscript.htm</link>
<category>API</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/aufruf-von-notes-api-funktionen-aus-lotusscript.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/aufruf-von-notes-api-funktionen-aus-lotusscript.htm</guid>
<content:encoded><![CDATA[ Gelegentlich unterliegt man der Notwendigkeit, Notes API Funktionen zu rufen, wenn bestimmte Funktionen und Eigenschaften nicht in LotusScript angeboten werden. <br /> <br /> Hierzu sind zunächst Deklaration notwendig, die den Aufruf und Parameterversorgung der API Funktionen vornehmen. Nachfolgende Tabelle hilft dabei, die Datentypen der Lotus C API Funktionen auf verfügbaren die LotusScript Datentypen abzubilden:  <table border=3> <tr valign=top> <td> <div align=center><strong>API Datentyp</strong></div> <td> <div align=center><strong>LotusScript Datentyp</strong></div> <tr valign=top> <td>char, char*  <td>ByVal String  <tr valign=top> <td>char far*  <td>ByVal String  <tr valign=top> <td>int  <td>Long (4-byte value)  <tr valign=top> <td>long  <td>Long  <tr valign=top> <td>WORD, SWORD  <td>Integer  <tr valign=top> <td>DWORD  <td>Long  <tr valign=top> <td>INT, UINT  <td>Integer  <tr valign=top> <td>SHORT, USHORT  <td>Integer  <tr valign=top> <td>LONG, ULONG  <td>Long  <tr valign=top> <td>NUMBER  <td>Double  <tr valign=top> <td>BOOL  <td>Long (manchmal auch Integer)  <tr valign=top> <td>BYTE, BOOLBYTE  <td>Byte (ab R5)  <tr valign=top> <td>STATUS  <td>Integer  <tr valign=top> <td>HANDLE  <td>Long (Integer auf einigen UNIX Plattformen)  <tr valign=top> <td>HMODULE  <td>Long  <tr valign=top> <td>NULL  <td>ByVal Integer (0)</table> <br /> <br /><br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> Darüber hinaus kann man davon ausgehen, dass Pointer (*) Variablen mit "ByRef" übergeben werden sollten, während andere Variablen "ByVal" übergeben werden sollten (Ausnahme: "Strings" sollten stets "ByVal" übergeben werden). In den Fällen, wo von der API ein NULL Wert erwartet wird, ist dieser als Integer-Wert mit "0" als "ByVal" zu übergeben.  <p><strong><span style="text-decoration:underline">Beispiel:</span></strong>  <p>STATUS LNPUBLIC NSFDbOpen(char far *PathName, DBHANDLE far *rethDB);<br /> STATUS LNPUBLIC NSFDbClose(DBHANDLE hDB);  <p>ist in LotusScript (auf Windows Plattformen) zu deklarieren:  <p>Declare Function NSFDbOpen Lib "nnotes.dll" (Byval PathName As String, rethDB As Long) As Integer<br /> Declare Function NSFDbClose Lib "nnotes.dll" (Byval hDB As Long) As Integer  <p>Wenn die API Funktion einen "void" Wert zurückliefert, können in LotusScript "Sub" definiert werden, in allen anderen Fällen (wie hier im Fall STATUS) sind die Aufrufe in LotuScript als "Function" zu deklarieren.  <p>Die Deklarationen für die aufzurufende Library sind (natürlich) plattformabhängig. <br /> Windows/32: nnotes.dll <br /> Solaris, Linux: libnotes.so <br /> AIX: lnotes_r.a <br /> HPUX: libnotes.sl <br /> MacOs, OS/X: NotesLib <br /> OS/400: libnotes.srvpgm <br /> OS/390 libnotes <br /> OS/2: lnotes.dll   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/aufruf-von-notes-api-funktionen-aus-lotusscript.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/aufruf-von-notes-api-funktionen-aus-lotusscript.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>ProxyAktionen der Aufträge für den AdminP in Admin4.nsf</title>
<pubDate>Wed, 25 Aug 2004 21:23:49 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/proxyaktionen-der-auftraege-fuer-den-adminp-in-admin4.nsf.htm</link>
<category>AdminP</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/proxyaktionen-der-auftraege-fuer-den-adminp-in-admin4.nsf.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/proxyaktionen-der-auftraege-fuer-den-adminp-in-admin4.nsf.htm</guid>
<content:encoded><![CDATA[ Die Aufträge für den AdminP werden in der Admin4.nsf über Auftragsnummern erstellt. Diese Auftragsnummern (Req#) haben in den verschiendenen Produktversionen nachfolgende Bedeutung: &nbsp; <table border=2 width=100%> <tr> <td width=4%> <div align=center><strong>Req #</strong></div> <td width=34%> <div align=center><strong>ND 6.x ADMIN REQUEST Types</strong></div> <td width=30%> <div align=center><strong>R5.x Admin Request Types</strong></div> <td width=30%> <div align=center><strong>R4.6 Admin Request Types</strong></div> <tr> <td>&nbsp;  <td>&nbsp;  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>0</div> <td>Delete in Domino Directory  <td>Delete in Address Book  <td>Delete in Address Book  <tr> <td> <div align=center>1</div> <td>Rename in Access Control List  <td>Rename in Access Control List  <td>Rename in Access Control List  <tr> <td> <div align=center>2</div> <td>Copy Server's Certified Public Key  <td>Copy Server's Certified Public Key  <td>Copy Server's Certified Public Key  <tr> <td> <div align=center>3</div> <td>Place Server's Notes Build Number into Server Record  <td>Place Server's Notes Build Number into Server Record  <td valign=top>Place Server's Notes Build Number into Server Record  <tr> <td> <div align=center>4</div> <td>Rename Server in Domino Directory  <td>Rename Server in Address Book  <td>Rename Server in Address Book  <tr> <td> <div align=center>5</div> <td>Rename Person in Domino Directory  <td>Rename Person in Address Book  <td>Rename Person in Address Book  <tr> <td> <div align=center>6</div> <td>Move Person's Name in Hierarchy  <td>Move Person's Name in Hierarchy  <td>Move Person's Name in Hierarchy  <tr> <td> <div align=center>7</div> <td>Delete Statistic Monitors in Domino Directory  <td>Delete Statistic Monitors in Address Book  <td>Delete Statistic Monitors in Address Book  <tr> <td> <div align=center>8</div> <td>Initiate Rename in Domino Directory  <td>Initiate Rename in Address Book  <td>Initiate Rename in Address Book  <tr> <td> <div align=center>9</div> <td>Recertify Server in Domino Directory  <td>Recertify Server in Address Book  <td>Recertify Server in Address Book  <tr> <td> <div align=center>10</div> <td>Recertify Person in Domino Directory  <td>Recertify Person in Address Book  <td>Recertify Person in Address Book  <tr> <td> <div align=center>11</div> <td>Add Server to Cluster  <td>Add Server to Cluster  <td>Add Server to Cluster  <tr> <td> <div align=center>12</div> <td>Remove Server from Cluster  <td>Remove Server from Cluster  <td>Remove Server from Cluster  <tr> <td> <div align=center>13</div> <td>Create Replica  <td>Create Replica  <td>Create Replica  <tr> <td> <div align=center>14</div> <td>Move Replica  <td>Move Replica  <td>Move Replica  <tr> <td> <div align=center>15</div> <td>Delete Original Replica after Move  <td>Delete Original Replica after Move  <td>Delete Original Replica after Move  <tr> <td> <div align=center>16</div> <td>Delete in Person Documents  <td>Delete in Person Documents  <td>Delete in Person Documents  <tr> <td> <div align=center>17</div> <td>Delete in Access Control List  <td>Delete in Access Control List  <td>Delete in Access Control List  <tr> <td> <div align=center>18</div> <td>Delete in Reader/Author fields  <td>Delete in Reader/Author fields  <td>Delete in Reader/Author fields  <tr> <td> <div align=center>19</div> <td>Rename in Person Documents  <td>Rename in Person Documents  <td>Rename in Person Documents  <tr> <td> <div align=center>20</div> <td>Rename in Reader/Author fields  <td>Rename in Reader/Author fields  <td>Rename in Reader/Author fields  <tr> <td> <div align=center>21</div> <td>Delete Mailfile  <td>Delete Mailfile  <td>Delete Mailfile  <tr> <td> <div align=center>22</div> <td>Approve Mail File Deletion  <td>Approve File Deletion  <td>Approve File Deletion  <tr> <td> <div align=center>23</div> <td>Delete Unlinked Mailfile  <td>Delete Unlinked Mailfile  <td>Delete Unlinked Mailfile  <tr> <td> <div align=center>24</div> <td>Create Mailfile  <td>Create Mailfile  <td>Create Mailfile  <tr> <td> <div align=center>25</div> <td>Monitor Replica Stub  <td>Monitor Replica Stub  <td>Monitor Replica Stub  <tr> <td> <div align=center>26</div> <td>Delete Obsolete Change Requests  <td>Delete Obsolete Change Requests  <td>Delete Obsolete Change Requests  <tr> <td> <div align=center>27</div> <td>Get Mail File Information for Deletion  <td>Get File Information for Deletion  <td>Get File Information for Deletion  <tr> <td> <div align=center>28</div> <td>Request Mail File Deletion  <td>Request File Deletion  <td>Request File Deletion  <tr> <td> <div align=center>29</div> <td>Add Resource  <td>Add Resource  <td>Add Resource  <tr> <td> <div align=center>30</div> <td>Delete Resource  <td>Delete Resource  <td>Delete Resource  <tr> <td> <div align=center>31</div> <td>Approve Resource Deletion  <td>Approve Resource Deletion  <td>Approve Resource Deletion  <tr> <td> <div align=center>32</div> <td>Check Access for New Replica Creation  <td>Check Access for New Replica Creation  <td>Check Access for New Replica Creation  <tr> <td> <div align=center>33</div> <td>Check Access for Move Replica Creation  <td>Check Access for Move Replica Creation  <td>Check Access for Move Replica Creation  <tr> <td> <div align=center>34</div> <td>Set Password Fields  <td>Set Password Fields  <td>Set Password Fields  <tr> <td> <div align=center>35</div> <td>Change User Password in Domino Directory  <td>Change User Password in Address Book  <td>Change User Password in Address Book  <tr> <td> <div align=center>37</div> <td>Set Directory Assistance Field  <td>Set Directory Assistance Field  <td>Set Master Address Book Field  <tr> <td> <div align=center>38</div> <td>Rename Person in Free Time Database  <td>Rename Person in Free Time Database  <td>Rename Person in Free Time Database  <tr> <td> <div align=center>39</div> <td>Rename Person in Calendar Entries and Profiles in Mail File  <td>Rename Person in Calendar Entries and Profiles in Mail File  <td valign=top>Rename Person in Calendar Entries and Profiles in Mail File  <tr> <td> <div align=center>40</div> <td>Rename Group in Domino Directory  <td>Rename Group in Address Book  <td>Rename Group in Address Book  <tr> <td> <div align=center>41</div> <td>Rename Group in Person Documents  <td>Rename Group in Person Documents  <td>Rename Group in Person Documents  <tr> <td> <div align=center>42</div> <td>Rename Group in Access Control List  <td>Rename Group in Access Control List  <td>Rename Group in Access Control List  <tr> <td> <div align=center>43</div> <td>Rename Group in Reader/Author fields  <td>Rename Group in Reader/Author fields  <td>Rename Group in Reader/Author fields  <tr> <td> <div align=center>44</div> <td>Add Internet Certificate to Person Record  <td>Add Internet Certificate to Person Record  <td valign=top>Add SSL X.509 Client Certificate to Person Record  <tr> <td> <div align=center>45</div> <td>Check Mail Server's Access  <td>Check Mail Server's Access  <td> <tr> <td> <div align=center>46</div> <td>Update Client Information in Person Record  <td>Update Client Type in Person Record  <td>&nbsp;  <tr> <td> <div align=center>47</div> <td>Update External Domain Information  <td>Update External Domain Information  <td>&nbsp;  <tr> <td> <div align=center>48</div> <td>Promote New Mail Server's Access  <td>Promote New Mail Server's Access  <td>&nbsp;  <tr> <td> <div align=center>49</div> <td>Create New Mailfile Replica  <td>Create New Mailfile Replica  <td>&nbsp;  <tr> <td> <div align=center>50</div> <td>Add New Mailfile Fields  <td>Add New Mailfile Fields  <td>&nbsp;  <tr> <td> <div align=center>51</div> <td>Monitor New Mailfile Fields  <td>Monitor New Mailfile Fields  <td>&nbsp;  <tr> <td> <div align=center>52</div> <td>Replace Mailfile Fields  <td>Replace Mailfile Fields  <td>&nbsp;  <tr> <td> <div align=center>53</div> <td>Push Changes to New Mail Server  <td>Push Changes to New Mail Server  <td>&nbsp;  <tr> <td> <div align=center>54</div> <td>Delete Person in Domino Directory  <td>Delete Person in Address Book  <td>&nbsp;  <tr> <td> <div align=center>55</div> <td>Delete Server in Domino Directory  <td>Delete Server in Address Book  <td>&nbsp;  <tr> <td> <div align=center>56</div> <td>Delete Group in Domino Directory  <td>Delete Group in Address Book  <td>&nbsp;  <tr> <td> <div align=center>57</div> <td>Delegate Mail File  <td>Delegate Mail File  <td>&nbsp;  <tr> <td> <div align=center>58</div> <td>Approve Delete Person in Domino Directory  <td>Approve Delete Person in Directory  <td>&nbsp;  <tr> <td> <div align=center>59</div> <td>Approve Delete Server in Domino Directory  <td>Approve Delete Server in Directory  <td>&nbsp;  <tr> <td> <div align=center>60</div> <td>Approve Rename Person in Domino Directory  <td>Approve Rename Person in Directory  <td>&nbsp;  <tr> <td> <div align=center>61</div> <td>Approve Rename Server in Domino Directory  <td>Approve Rename Server in Directory  <td>&nbsp;  <tr> <td> <div align=center>62</div> <td>Modify Room/Resource in Domino Directory  <td>Modify Room/Resource in Directory  <td>&nbsp;  <tr> <td> <div align=center>63</div> <td>Update Server's Protocol Information  <td>Update Server's Protocol Information  <td>&nbsp;  <tr> <td> <div align=center>64</div> <td>Create Mail-In Database  <td>Create ISPY Mail in Database  <td>&nbsp;  <tr> <td> <div align=center>65</div> <td>Check Access for Non-cluster Move Replica  <td>Check Access for Non-cluster Move Replica  <td>&nbsp;  <tr> <td> <div align=center>66</div> <td>Non Cluster Move Replica  <td>Non Cluster Move Replica  <td>&nbsp;  <tr> <td> <div align=center>67</div> <td>Store Server's CPU count  <td>Store Server's CPU count  <td>&nbsp;  <tr> <td> <div align=center>68</div> <td>Rename Person in Unread List  <td>Rename Person in Unread List  <td>&nbsp;  <tr> <td> <div align=center>69</div> <td>Delete Replica After Move  <td>Delete Replica After Move  <td>&nbsp;  <tr> <td> <div align=center>70</div> <td>Store Server's DNS Hostname in Server Record  <td>Store Server's DNS Hostname in Server Record  <td>&nbsp;  <tr> <td> <div align=center>71</div> <td>Store Server's Platform in Server Record  <td>Store Server's Platform in Server Record  <td>&nbsp;  <tr> <td> <div align=center>72</div> <td>Approve Deletion of Private Design Elements  <td>Approve Deletion of Private Design Elements  <td>&nbsp;  <tr> <td> <div align=center>73</div> <td>Request to Delete Private Design Elements  <td>Request to Delete Private Design Elements  <td>&nbsp;  <tr> <td> <div align=center>74</div> <td>Delete Private Design Elements  <td>Delete Private Design Elements  <td>&nbsp;  <tr> <td> <div align=center>75</div> <td>Approve Deletion of Moved Replica  <td>Approve Deletion of Moved Replica  <td>&nbsp;  <tr> <td> <div align=center>76</div> <td>Request to Delete Moved Replica  <td>Request to Delete Moved Replica  <td>&nbsp;  <tr> <td> <div align=center>77</div> <td>Domain Catalog Configuration  <td>Domain Catalog Configuration  <td>&nbsp;  <tr> <td> <div align=center>78</div> <td>Delegate Web Mail File  <td>Delegate Web Mail File  <td>&nbsp;  <tr> <td> <div align=center>79</div> <td>Get Replica Information for Deletion  <td>Set Web Admin Fields  <td>&nbsp;  <tr> <td> <div align=center>80</div> <td>Request Replica Deletion  <td>Sign Database with Server's ID File  <td>&nbsp;  <tr> <td> <div align=center>81</div> <td>Delete Replica  <td> <td>&nbsp;  <tr> <td> <div align=center>82</div> <td>Approve Replica Deletion  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>83</div> <td>Set Web Admin Fields  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>84</div> <td>Accelerated Create Replica  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>85</div> <td>Store Directory Type in Server Record  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>86</div> <td>Set Directory Filename  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>87</div> <td>Create Roaming User's Roaming Files  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>88</div> <td>Promote New Roaming Server's Access  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>89</div> <td>Replace Roaming Server's Field in Person Record  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>90</div> <td>Monitor Roaming Server's Field in Person Record  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>91</div> <td>Create Roaming User's Replica Stubs  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>92</div> <td>Remove Roaming User's Roaming Files  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>93</div> <td>Check Roaming Server's Access  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>94</div> <td>Create Roaming User's Replicas  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>95</div> <td>Store Certificate in Domino or LDAP Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>96</div> <td valign=top>Store Certificate Revocation List in Domino or LDAP Directory  <td> <td>&nbsp;  <tr> <td> <div align=center>97</div> <td>Modify User Information Stored in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>98</div> <td>Remove Certificate from Domino or LDAP Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>99</div> <td>Modify CA Configuration in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>100</div> <td>Push Changes to New Roaming Server  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>101</div> <td>Sign Database with Server's ID File  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>102</div> <td>Configure Certificate Authority Publication  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>103</div> <td valign=top>Remove Certificate Revocation List from Domino or LDAP Directory  <td> <td>&nbsp;  <tr> <td> <div align=center>104</div> <td>Update Delegated User's Mailfile List  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>105</div> <td>Certificate Authority Configuration To Be Signed  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>106</div> <td>Approve Refused Name Change  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>107</div> <td>Retract Person's Name Change  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>108</div> <td>Set User Name and Enable Scheduled Agent  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>109</div> <td>Update License Tracking Information in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>110</div> <td>Re-Initiate Rename in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>111</div> <td>Delete Server in Domain Catalog  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>112</div> <td>Maintain Trends Database Record  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>113</div> <td>Delete Policy Record in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>114</div> <td>Approve Revert Name Change  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>115</div> <td>Approve Certificate Request  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>116</div> <td>Approve Person's Name Change Request  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>117</div> <td>Approve New Public Key Request  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>118</div> <td>Initiate Web User Rename in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>119</div> <td>Rename Web User in Access Control List  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>120</div> <td>Rename Web User in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>121</div> <td>Rename Web User in Person Documents  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>122</div> <td>Rename Web User in Reader/Author fields  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>123</div> <td>Rename Web User in Free Time Database  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>124</div> <td valign=top>Rename Web User in Calendar Entries and Profiles in Mail File  <td> <td>&nbsp;  <tr> <td> <div align=center>125</div> <td>Rename Web User in Unread List  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>126</div> <td>Delete Web User in Domi
no Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>127</div> <td>Change HTTP Password in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>128</div> <td>Create Monitoring Report  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>129</div> <td>Collect Monitoring Report Information  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>130</div> <td>Add Information to Monitoring Report  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>131</div> <td>Create IMAP Delegation Requests  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>132</div> <td>Delete Hosted Organization  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>133</div> <td>Update Roaming User State in Person Record  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>134</div> <td>Update Roaming User Information in Person Record  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>135</div> <td>Create Hosted Organization Storage  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>136</div> <td>Recertify Cross Certificate in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>137</div> <td>Create Object Store  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>138</div> <td>Get Hosted Organization Storage Information for Deletion  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>139</div> <td>Approve Deletion of Hosted Organization Storage  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>140</div> <td>Delete Hosted Organization Storage  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>141</div> <td>Recertify Certificate Authority in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>142</div> <td>Find Name in Domain  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>143</div> <td>Verify Hosted Organization Storage  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>144</div> <td>Add or Modify Group in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>146</div> <td>Modify ID Recovery Information in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr valign=top> <td> <div align=center>147</div> <td>Delete Person In Unread List  <td> <td> <tr> <td> <div align=center>148</div> <td>Monitor Roaming User's Replica Stubs  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>149</div> <td>Delegate Mail File on Administration Server  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>150</div> <td valign=top>Check Access for New Replica Creation (time based execution)  <td> <td>&nbsp;  <tr> <td> <div align=center>151</div> <td valign=top>Check Access for Move Replica Creation (time based execution)  <td> <td>&nbsp;  <tr> <td> <div align=center>152</div> <td>Check Mail Server's Access (time based execution)  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>153</div> <td valign=top>Check Access for Non-cluster Move Replica (time based execution)  <td> <td>&nbsp;  <tr> <td> <div align=center>156</div> <td>Create SSL Certificate and Keyring File  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>157</div> <td>Enable Server's SSL Ports in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>158</div> <td>Change the Server on which the Agent Runs  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>159</div> <td>Store Cross Certificate in Domino or LDAP Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>160</div> <td>Set Web User Name and Enable Scheduled Agent  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>161</div> <td>Update Replica Settings  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>162</div> <td>Rename in Shared Agents  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>163</div> <td>Web Set Soft Deletion Expire Time  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>164</div> <td>Rename in Agent's Readers Field  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>165</div> <td>Delete in Agent's Readers Field  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>166</div> <td>Monitor Server's SSL Status in Domino Directory  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>167</div> <td>Delegate Mail File on Home Server  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>168</div> <td>Maintain Server's Fault Recovery Settings  <td>&nbsp;  <td>&nbsp;  <tr> <td> <div align=center>999</div> <td>Unrecognized Request  <td>&nbsp;Unrecognized Request  <td>&nbsp;Unrecognized Request</table> <br /> <br />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/proxyaktionen-der-auftraege-fuer-den-adminp-in-admin4.nsf.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/proxyaktionen-der-auftraege-fuer-den-adminp-in-admin4.nsf.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Effizienz beim Testen von LWF Anwendungen steigern</title>
<pubDate>Mon, 16 Aug 2004 15:57:22 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/effizienz-beim-testen-von-lwf-anwendungen-steigern.htm</link>
<category>DWF</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/effizienz-beim-testen-von-lwf-anwendungen-steigern.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/effizienz-beim-testen-von-lwf-anwendungen-steigern.htm</guid>
<content:encoded><![CDATA[ Bei serverseitigen Routing von Vorgängen mit der Lotus Workflow Engine kommt es zu Wartezeiten und Verzögerungen durch den Agent Manager. Um diese in Testumgebungen auf ein Minimum zu reduzieren, so folgende Notes.ini Einträge auf dem Server zu setzen: <br />  <br /> AMgr_DocUpdateAgentMinInterval=0 <br /> AMgr_DocUpdateEventDelay=0 <br /> <br /> Zusätzlich kann man seine Testarbeit dadurch vereinfachen, indem man sich ein SmartIcon (Release 5) bzw. Symbol in der Symbolleiste (Release 6) auf Client-Seite hinzufügt, dass den BackGround-Agent auf Wunsch startet. <br /> <br /> Hierzu muß das SmartIcon/Smbol folgenden Code beinhalten: <br /> @Command(&#91;ToolsRunMacro&#93;; "OS Domino Workflow Backgrounder")   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/effizienz-beim-testen-von-lwf-anwendungen-steigern.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/effizienz-beim-testen-von-lwf-anwendungen-steigern.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Datenbank über Dialog auswählen</title>
<pubDate>Sun, 27 Jun 2004 12:37:15 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/datenbank-ueber-dialog-auswaehlen.htm</link>
<category>Undokumentierte Funktionen</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/datenbank-ueber-dialog-auswaehlen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/datenbank-ueber-dialog-auswaehlen.htm</guid>
<content:encoded><![CDATA[ Für Konfigurationsdialoge oder Auswahldialoge möchte man oftmals Datenbanknamen (Titel, Server, Datenbank) frei konfigurierbar haten. <br />  <br /> Dieses kann über folgende (in R5 noch undokumentierte, in ND6 jedoch voll unterstützte) Funktion erfolgen: <br /> <br /> @Prompt (&#91;ChooseDatabase&#93;; ""; ""; "") <br /> <br /> Als Rückgabewert erhält man eine Ergebnisliste mit drei Werten bezüglich der vom Benutzer ausgewählten Datenbank: <br /> <strong><br /> 1. Element:</strong> Servername ("" für lokale Datenbank) <strong><br /> 2. Element:</strong> Dateiname <strong><br /> 3. Element:</strong> Titel der Datenbank   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/datenbank-ueber-dialog-auswaehlen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/datenbank-ueber-dialog-auswaehlen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Daten in Adreßbüchern nachschlagen</title>
<pubDate>Thu, 17 Jun 2004 15:29:02 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/daten-in-adreßbuechern-nachschlagen.htm</link>
<category>Agenten</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/daten-in-adreßbuechern-nachschlagen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/daten-in-adreßbuechern-nachschlagen.htm</guid>
<content:encoded><![CDATA[ Wenn man z.B. in Agenten in Adreßbüchern (oftmals dem öffentlichen Adreßbuch) Daten nachschlagen möchte, ist es zu empfehlen, die Datenbank nicht über einen hardcodierten Dateinamen oder gar Servernamen zu öffnen (...denn diese können und werden sich ggf. ändern). &nbsp;<br /> <br /> Besser ist es, über das Session-Objekt die konfigurierten Adreßbücher zu durchlaufen:  <table border width=100%> <tr valign=top> <td width=100%> <div align=center><strong><br></strong> <strong><br /> Codebeispiel</strong> <strong><br /> <br></strong></div> <tr valign=top> <td>Sub Initialize<br />  &nbsp; <strong>Dim</strong> s <strong>As</strong> <strong>New</strong> Notessession<br />  &nbsp; <strong>Dim</strong> nabDB &nbsp;<strong>As</strong> <strong>New</strong> NotesDatabase( "", "" ) &nbsp; <br />  &nbsp; <strong>Dim</strong> view <strong>As</strong> Notesview<br />  &nbsp; <strong>Dim</strong> doc <strong>As</strong> NotesDocument<br />  &nbsp; <br />  &nbsp; <strong>Const</strong> strSearchFor = "mmeise"<br />  &nbsp; <strong>Const</strong> strViewName = "$Users"<br />  &nbsp; <br />  &nbsp; <strong>Forall</strong> nab <strong>In</strong> s.Addressbooks<br />  &nbsp; &nbsp; &nbsp; <strong>If</strong> (nab.IsPublicAddressBook) <strong>Then</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Call</strong> nab.<strong>Open</strong>( "", "" )<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Set</strong> view = nab.getView(strViewName)<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Set</strong> doc = view.GetDocumentByKey (strSearchFor)<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Exit</strong> <strong>Forall</strong> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>' This is essential!!!!!</em><br />  &nbsp; &nbsp; &nbsp; <strong>End</strong> <strong>If</strong><br />  &nbsp; <strong>End</strong> <strong>Forall</strong><br />  &nbsp; <br />  &nbsp; <strong>If</strong> doc <strong>Is</strong> <strong>Nothing</strong> <strong>Then</strong><br />  &nbsp; <em>'-----------------------------------</em><br />  &nbsp; <em>' Decide, what to do when document could not be located</em><br />  &nbsp; <em>'-----------------------------------</em><br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; <strong>Else</strong><br />  &nbsp; <em>'-----------------------------------</em><br />  &nbsp; <em>' Continue working with the found document</em><br />  &nbsp; <em>'-----------------------------------</em><br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; <strong>End</strong> <strong>If</strong><br />  &nbsp; <strong><br /> End</strong> Sub </table> <br /> <br /><br /> <strong><span style="text-decoration:underline"><br /> Wichtig:</span></strong> <br /> <br /> In diesem Codebeispiel sollte die FORALL Schleife mit einem EXIT FORALL beendet werden, wenn das entsprechend gewünschte Adreßbuch gefunden wurde, damit das <strong>view</strong> und <strong>doc</strong> Objekt für nachfolgende Bearbeitungen/Prüfungen erhalten bleiben.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/daten-in-adreßbuechern-nachschlagen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/daten-in-adreßbuechern-nachschlagen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Private Ansichten aktualisieren</title>
<pubDate>Tue, 15 Jun 2004 10:49:53 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/private-ansichten-aktualisieren.htm</link>
<category>Ansichten</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/private-ansichten-aktualisieren.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/private-ansichten-aktualisieren.htm</guid>
<content:encoded><![CDATA[ Die nachträgliche Überarbeitung von Datenbanken, die persönliche Ansichten beinhalten, ist nicht ganz unproblematisch. Benutzer erhalten keine aktualsierte Version der &nbsp;öffentlichen Ursprungsansicht. Zur Lösung kann man entweder einen etwas aufwändigen LotusScript Code einsetzen, oder z.B. in einer Hinweismail nachfolgenden Formelcode zum Löschen und hinzufügen den Datenbank-Icons verwenden. Bei erneuter Nutzung der Ansicht wird dann eine neue private Kopie der öffentlichen Vorlage erstellt. <br /> <strong><span style="text-decoration:underline"><br /> Button-Code:</span></strong> <br />  <br /> _server := "Myserver/MyCompany"; <br /> _db := "officedbs\\db.nsf"; <br /> <br /> @Command(&#91;WindowWorkspace&#93;); <br /> @Command(&#91;FileOpenDatabase&#93;; _server : _db); <br /> @Command(&#91;FileCloseWindow&#93;); <br /> @PostedCommand(&#91;EditClear&#93;); <br /> @Command(&#91;FileOpenDatabase&#93;; _server : _db)   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/private-ansichten-aktualisieren.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/private-ansichten-aktualisieren.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>HTTP Error : &quot;HTTP Web Server: Lotus Notes Exception - Document has been deleted&quot;</title>
<pubDate>Mon, 23 Feb 2004 15:13:13 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/http-error-http-web-server-lotus-notes-exception-document-has-been-deleted.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/http-error-http-web-server-lotus-notes-exception-document-has-been-deleted.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/http-error-http-web-server-lotus-notes-exception-document-has-been-deleted.htm</guid>
<content:encoded><![CDATA[ Tritt bei einer Webanwendung der Fehler : "<strong>HTTP Web Server: Lotus Notes Exception - Document has been deleted"</strong> <br /> auf, obwohl das Dokument im Notesclient zu öffnen ist, kann dies mit folgender Befehlssequenz an der Serverkonsole bereinigt werden : <br />  <br /> 1.fixup <br /> 2.compact mit &nbsp;"copystyle mode" und " view index delete" <br /> 3.fixup <br /> 4.updall <br /> <br /> dadurch ist sichergestellt, das alle Ansichten neu aufgebaut werden, welche den Fehler verursacht haben.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/http-error-http-web-server-lotus-notes-exception-document-has-been-deleted.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/http-error-http-web-server-lotus-notes-exception-document-has-been-deleted.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Unerwünschte Einträge aus einer Textliste entfernen</title>
<pubDate>Fri, 12 Dec 2003 09:50:13 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/unerwuenschte-eintraege-aus-einer-textliste-entfernen.htm</link>
<category>Listenhandling</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/unerwuenschte-eintraege-aus-einer-textliste-entfernen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/unerwuenschte-eintraege-aus-einer-textliste-entfernen.htm</guid>
<content:encoded><![CDATA[ Will man aus einer Liste (z.B. durch ein Schlüsslwort o.ä.) alle Einträge entfernen, die <strong>nicht </strong>mit einer gewünschten Zeichenkette behinnen, so kann nachfolgende Formel verwendet werden. Diese ergibt bei <br />  <br /> Inhalt für des Feldes "SourceList" &nbsp;: &nbsp; &nbsp;"Alle Werte" : "Ein Wert" : "Kein Wert" <br /> und dem Startstring "BeginWith": &nbsp; &nbsp; &nbsp; &nbsp; "A" <br /> <br /> das Ergebnis: <br /> <br /> "Alle Werte" <br /> <br /> In der Nachfolgenden Formel sind zu Beginn die beiden Variablen "_source" und _"beginswith" jeweils mit den gewünschten Werten zu belegen.... <br /> <br /> <br /> <br /> REM "Define Fields to Process";<br /> _source := SourceList;<br /> _beginswith := BeginWith;<br /> <br /> REM "Generate numbers for arrays index prefix";<br /> _cont1 := @If ((_source = "") | (_beginswith = ""); @Return("");"");<br /> _numbers := "0" : "1" : "2" : "3" : "4" : "5" : "6" : "7" : "8" : "9";<br /> _numlist := @Subset(@Subset(@Text(@TextToNumber( _numbers *+ _numbers));-99);@Elements(_source));<br /> _nums := @Replace(@Text(@Length (_numlist)); "1" :"2"; "0" : "") + _numlist;<br /> <br /> REM "Create sequential numbered matchkeys";<br /> _match := _nums + _beginswith;<br /> <br /> REM "Build negative list, with all unwanted elements being unchanged";<br /> _tempres := @RightBack(_source; @Length(_beginswith));<br /> _neglist := @Replace (_nums + _source; _match + _tempres; &nbsp;_source);<br /> <br /> REM "Eleminate unwanted (still equal) elements";<br /> _result := @Trim(@Rightback(@Replace (_nums + _source ;_neglist;"");@Length(_nums)));<br /> <br /> REM "Return the result";<br /> _result  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/unerwuenschte-eintraege-aus-einer-textliste-entfernen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/unerwuenschte-eintraege-aus-einer-textliste-entfernen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Wie kann ich die aktuell eingesetzte Version von Lotus Workflow ermitteln?</title>
<pubDate>Fri, 5 Dec 2003 14:41:04 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-die-aktuell-eingesetzte-version-von-lotus-workflow-ermitteln.htm</link>
<category>Lotus Workflow</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-die-aktuell-eingesetzte-version-von-lotus-workflow-ermitteln.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-die-aktuell-eingesetzte-version-von-lotus-workflow-ermitteln.htm</guid>
<content:encoded><![CDATA[ Um die installierte Version der Workflow-Engine (Anwendungs-DB) zu ermitteln, ist <br />  <br /> 1. die Datenbank mit einer beliebigen Ansicht zu öffnen <br /> 2. Menü "Ansicht" - "Agenten" zu wählen <br /> 3. der Agent "OS Show Version" auszuwählen <br /> 4. der Agent mit rechter Maustaste - "starten" zu aktiviern. <br /> <br /> ...So kann man u.A. jederzeit sehen, welche FixPacks installiert sind....   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/wie-kann-ich-die-aktuell-eingesetzte-version-von-lotus-workflow-ermitteln.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-die-aktuell-eingesetzte-version-von-lotus-workflow-ermitteln.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Agent zur Zusammenfassung von Mailadressen aus Peronendokumenten in einem Gruppendokument</title>
<pubDate>Thu, 28 Aug 2003 20:47:01 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/agent-zur-zusammenfassung-von-mailadressen-aus-peronendokumenten-in-einem-gruppendokument.htm</link>
<category>Mailrouting</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/agent-zur-zusammenfassung-von-mailadressen-aus-peronendokumenten-in-einem-gruppendokument.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/agent-zur-zusammenfassung-von-mailadressen-aus-peronendokumenten-in-einem-gruppendokument.htm</guid>
<content:encoded><![CDATA[ In manchem Fällen hat eine Reihe von Personendokumenten im öffentlichen oder privaten Adreßbuch, deren Maliadressen man eigentlich in einerr Grupper zusammenfassen möchte. Hierzu dient der nachfolgende LotusScript-Agent. Dieser ist in der Ursprungs-Db (mit den Personendokumenten) zu erstellen, die Personendokumente zu markieren und der Agent zu starten. <br /> <br /> <em>'Merge Selected People to a Group:</em><strong><br /> <br /> Option</strong> <strong>Public</strong><em><br /> 'Merge into Local NAB Group:</em><br /> <strong><br /> <br /> Dim</strong> s <strong>As</strong> NotesSession<strong><br /> Dim</strong> ServerNum <strong>As</strong> <strong>String<br /> Dim</strong> dbNAB <strong>As</strong> NotesDatabase<br /> <br /> <br /> <br /> <br /> Sub Initialize<br />  &nbsp; <strong>Dim</strong> thisDB <strong>As</strong> NotesDatabase<br />  &nbsp; <strong>Dim</strong> view <strong>As</strong> NotesView<br />  &nbsp; <strong>Dim</strong> doc <strong>As</strong> NotesDocument<br />  &nbsp; <strong>Dim</strong> col <strong>As</strong> NotesDocumentCollection<br />  &nbsp; <strong>Dim</strong> Email <strong>As</strong> <strong>String</strong><br />  &nbsp; <strong>Dim</strong> members() <strong>As</strong> <strong>String</strong><br />  &nbsp; <strong>Dim</strong> NoOfMembers <strong>As</strong> <strong>Integer</strong><br /> <br />  &nbsp; <strong>Set</strong> s = <strong>New</strong> NotesSession<br />  &nbsp; <strong>Set</strong> dbNAB = s.Addressbooks(0)<br />  &nbsp; <strong>Set</strong> thisDB = s.CurrentDatabase<br />  &nbsp; <strong>Set</strong> col = thisDB.UnprocessedDocuments<br />  &nbsp; <strong>Set</strong> doc = col.GetFirstDocument<br /> <br />  &nbsp; <strong>Redim</strong> members(col.Count-1)<br />  &nbsp; NoOfMembers = 0<br /> <br />  &nbsp; <strong>While</strong> <strong>Not</strong> doc <strong>Is</strong> <strong>Nothing</strong><br />  &nbsp; &nbsp; &nbsp; EMail = doc.MailAddress(0)<br />  &nbsp; &nbsp; &nbsp; <strong>If</strong> EMail <> "" <strong>Then</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; members(NoOFMembers) = doc.MailAddress(0)<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NoOfMembers = NoOfMembers + 1<br />  &nbsp; &nbsp; &nbsp; <strong>End</strong> <strong>If</strong><br />  &nbsp; &nbsp; &nbsp; <strong>Set</strong> doc = col.GetNextDocument (doc)<br />  &nbsp; <strong>Wend</strong><br /> <br />  &nbsp; <strong>Redim</strong> <strong>Preserve</strong> Members(NoOfMembers) <br />  &nbsp; &nbsp;<strong>Call</strong> AddUsersToGroup (Members)<br />  &nbsp; <strong>Print</strong> "Added " &amp; <strong>Cstr</strong>(NoOfMembers) &amp; " to local NAB"<strong><br /> End</strong> Sub<br /> Sub AddUsersToGroup (Members <strong>As</strong> <strong>Variant</strong>)<br /> <br />  &nbsp; <strong>Dim</strong> groupMainMembers <strong>As</strong> NotesItem<br />  &nbsp; <strong>Dim</strong> groupMainName <strong>As</strong> <strong>String</strong><br />  &nbsp; <strong>Dim</strong> subGroup <strong>As</strong> <strong>String</strong><br />  &nbsp; <strong>Dim</strong> groupNum <strong>As</strong> <strong>Integer</strong><br />  &nbsp; <strong>Dim</strong> groupSubDoc <strong>As</strong> NotesDocument<br />  &nbsp; <strong>Dim</strong> groupSubMembers <strong>As</strong> NotesItem<br />  &nbsp; <strong>Dim</strong> saveGroupMainDoc <strong>As</strong> <strong>Integer</strong><br /> <br />  &nbsp; groupNameIE = "Mail-Distribution-" &amp; <strong>Cstr</strong>(<strong>Today</strong>)<br /> <br />  &nbsp; <strong>Call</strong> dbNAB.<strong>Open</strong> ("", "")<br />  &nbsp; <strong>Set</strong> docGroup = dbNAB.CreateDocument<br />  &nbsp; <strong>Call</strong> docGroup.ReplaceItemValue("Form", "Group")<br />  &nbsp; <strong>Call</strong> docGroup.ReplaceItemValue("ListName", groupNameIE)<br />  &nbsp; <strong>Call</strong> docGroup.ReplaceItemValue("Members", &nbsp;Members)<br />  &nbsp; <strong>Call</strong> docGroup.ReplaceItemValue("GroupType", "0")<br />  &nbsp; <strong>Call</strong> docGroup.ReplaceItemValue("ListDescription","Do NOT edit this group manually, "_<br />  &nbsp; &amp; "it is updated via an agent!!!")<br />  &nbsp; <strong>Call</strong> docGroup.ReplaceItemValue("ListOwner", s.EffectiveUserName)<br />  &nbsp; <strong>Call</strong> docGroup.ComputeWithForm( <strong>False</strong>, <strong>False</strong> )<br /> <br />  &nbsp; &nbsp;<em>'Test to make sure new group was saved.</em><br />  &nbsp; ret = docGroup.Save(<strong>False</strong>, <strong>False</strong>)<br /> <br />  &nbsp; <strong>If</strong> (ret = <strong>True</strong>) <strong>Then</strong> <br />  &nbsp; &nbsp; &nbsp; &nbsp;retGroupStatus = <strong>True</strong><br />  &nbsp; <strong>Else</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>'status "Status", "Failed - group document not saved"</em><br />  &nbsp; &nbsp; &nbsp; <strong>Print</strong> |An <strong>error</strong> occured <strong>while</strong> creating your local group."| _<br />  &nbsp; &nbsp; &nbsp; &amp; groupNameIE &amp; |"|<br />  &nbsp; <strong>End</strong> <strong>If<br /> <br /> End</strong> Sub   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/agent-zur-zusammenfassung-von-mailadressen-aus-peronendokumenten-in-einem-gruppendokument.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/agent-zur-zusammenfassung-von-mailadressen-aus-peronendokumenten-in-einem-gruppendokument.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Pfeilsymbole für Ansichtskategorien im Web ersetzen</title>
<pubDate>Thu, 21 Aug 2003 21:51:34 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/pfeilsymbole-fuer-ansichtskategorien-im-web-ersetzen.htm</link>
<category>Webentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/pfeilsymbole-fuer-ansichtskategorien-im-web-ersetzen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/pfeilsymbole-fuer-ansichtskategorien-im-web-ersetzen.htm</guid>
<content:encoded><![CDATA[ Ab ND6 können die bisherigen "Twisties" (Notes Client: grüne Dreiecke; Web Client: blaue Dreiecke) in Ansichten ersetzt werden. Hierzu wird ein Grafik entsprechender Größe (2 Bilder horizontal durch 1 Pixel voneinander getrennt) benötigt. Um die üblichen Ordnersymbole (wie aus dem Windows Explorer bekannt) zu verwenden, kann die nachfolgende Grafik als Bildresource verwendet werden: <br />  <br /> <br /> Bei den Spaltenattributen einer kategorisierten Ansichtsspalte ist diese Grafik dann bei "Pfeilsymbol anzeigen wenn Zeile erweiterbar" anzugeben.  <ul> <li><a href="http://www.mmi-consult.de/FAQ/dx/Folder.gif/$file/Folder.gif" title="Folder.gif"Folder.gif/>Folder.gif</a></li></ul>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/pfeilsymbole-fuer-ansichtskategorien-im-web-ersetzen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/pfeilsymbole-fuer-ansichtskategorien-im-web-ersetzen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Bildressourcen einsetzen</title>
<pubDate>Thu, 21 Aug 2003 21:10:41 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/bildressourcen-einsetzen.htm</link>
<category>Grafiken</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/bildressourcen-einsetzen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/bildressourcen-einsetzen.htm</guid>
<content:encoded><![CDATA[ Es gibt zwei verschiedene Bildressourcensätze: horizontal und vertikal.  <p>Verwenden Sie einen horizontalen Bildressourcensatz, um ein Bild zu erstellen, das sich je nach Zustand zu ändern scheint. Wenn ein Benutzer beispielsweise mit der Maus auf das Bild zeigt, soll das Bild so aussehen, als ob es beleuchtet ist. Erstellen Sie für diesen Effekt ein zweites Bild in einem Bildressourcensatz und passen Sie die Hintergrundfarbe der Grafik an. Vielleicht möchten Sie das Bild dunkler erscheinen lassen, wenn der Benutzer darauf klickt, oder Sie möchten es abblenden, wenn einmal darauf geklickt wurde. &nbsp; <p>Verwenden Sie einen vertikalen Bildressourcensatz für Symbole, die Sie der Lesezeichenleiste im Notes, Designer und Administrations-Client hinzufügen. In der Lesezeichenleiste können kleine, mittelgroße und große Symbole angezeigt werden, vorausgesetzt, die Bildressourcen für diese Symbole sind Teil eines vertikalen Bildressourcensatzes. Ein vertikaler Bildressourcensatz enthält ein Symbol in drei verschiedenen Größen. Um die Größe für Symbole in der Lesezeichenleiste festzulegen, wählen Sie "Datei - Vorgaben - Benutzervorgaben". Wählen Sie unter "Lesezeichengröße" im Register "Allgemein" zwischen "Klein", "Mittel" oder "Groß" aus.  <p><strong>So verwenden Sie horizontale Bildressourcensätze</strong>  <p>&nbsp; 1. &nbsp; &nbsp; &nbsp; &nbsp;Kopieren Sie in einem Grafikprogramm ein Bild und ändern Sie es, um eine Reihe von Bildern in verschiedenen Zuständen zu erstellen.  <p>Die Bilder müssen alle gleich groß sein.  <p>&nbsp; 2. &nbsp; &nbsp; &nbsp; &nbsp;Ordnen Sie in einer GIF-, BMP- oder JPEG-Datei die Bilder horizontal an und trennen Sie die Bilder dabei durch einen Abstand/eine Linie von einem Pixel voneinander.  <p>&nbsp; 3. &nbsp; &nbsp; &nbsp; &nbsp;<a href=Notes:///80256C470038536B/57B669B13AEC7BA780256C250050B13E/99F3F05912FD43AB80256C4700386253><span style="text-decoration:underline">Erstellen Sie eine Bildressource</span></a> aus der Grafikdatei.  <p>&nbsp; 4. &nbsp; &nbsp; &nbsp; &nbsp;Doppelklicken Sie im Arbeitsfenster in der Liste der Bildressourcen auf die Bildressource.  <p>&nbsp; 5. &nbsp; &nbsp; &nbsp; &nbsp;Wählen Sie im Register "Allgemein" der InfoBox "Eigenschaften: Bildressource" die Anzahl der verwendeten Bilder aus.  <p>Diese Zahl entspricht der Anzahl der verschiedenen Zustände, die Sie darstellen möchten. Den vier Zuständen werden wie folgt vier Bilder zugeordnet:  <table border width=100%> <tr valign=top> <td width=50%><strong>Reihenfolge der Bilder/auszuwählenden Eigenschaft</strong>  <td width=17%><strong>Status</strong>  <td width=31%><strong>Position des verwendeten Bildes</strong>  <tr valign=top> <td>1  <td>Normales Bild  <td>Erste Position  <tr valign=top> <td>2  <td>Mauszeiger über Bild  <td>Zweite Position  <tr valign=top> <td>3  <td>Ausgewähltes Bild  <td>Dritte Position  <tr valign=top> <td>4  <td>Maus-Klick auf Bild  <td>Vierte Position</table> <br /> <br /><strong><br /> Hinweis </strong>&nbsp;Die Reihenfolge der Zustände ist festgelegt und kann nicht verändert werden. Wenn Sie jedoch nur zwei Zustände darstellen möchten, wenn Sie ein geändertes Bild nur im Normalzustand (die erste Position) verwenden möchten, kopieren Sie das zweite Bild zwei- oder dreimal, so dass das geänderte Bild an der ersten Position erscheint.  <p><img  alt="Image:Bildressourcen einsetzen" border="0" src="http://www.mmi-consult.de/FAQ/dx/bildressourcen-einsetzen.htm/content/M2?OpenElement" />&nbsp; &nbsp; &nbsp; &nbsp;  <p><strong>Vertikale Bildressourcensätze erstellen</strong>  <p>So erstellen Sie einen vertikalen Bildressourcensatz  <p>&nbsp; 1. &nbsp; &nbsp; &nbsp; &nbsp;Kopieren Sie in einem Grafikprogramm ein Bild und ändern Sie es, um eine Reihe von Bildern in verschiedenen Zuständen zu erstellen.  <p>Die Bilder müssen alle gleich groß sein.  <p>&nbsp; 2. &nbsp; &nbsp; &nbsp; &nbsp;Richten Sie in einer einzelnen GIF-, BMP- oder JPG-Datei die Bilder vertikal mit jeweils einem Pixel Abstand zwischen ihnen aus.  <p>&nbsp; 3. &nbsp; &nbsp; &nbsp; &nbsp;<span style="text-decoration:underline">Erstellen Sie eine Bildressource</span> aus der Grafikdatei.  <p>&nbsp; 4. &nbsp; &nbsp; &nbsp; &nbsp;Doppelklicken Sie im Arbeitsfenster in der Liste der Bildressourcen auf die Bildressource.  <p>&nbsp; 5. &nbsp; &nbsp; &nbsp; &nbsp;Wählen Sie im Register "Allgemein" der InfoBox "Eigenschaften: Bildressource" die Anzahl der verwendeten Bilder in "Bilder vertikal" aus.  <p>&nbsp; 6. &nbsp; &nbsp; &nbsp; &nbsp;Verwenden Sie außerdem einen rechteckigen Hintergrund für die Bilder, um ein Rechteck zu erstellen.  <p><img  alt="Image:Bildressourcen einsetzen" border="0" src="http://www.mmi-consult.de/FAQ/dx/bildressourcen-einsetzen.htm/content/M3?OpenElement" /> <p><strong>So verwenden Sie den Bildressourcensatz im Web</strong>  <p>Wenn Sie in einer Web-Anwendung einen horizontalen Bildressourcensatz verwenden, wählen Sie die Option "Web-Browser-kompatibel" im Register "Allgemein" in der InfoBox "Eigenschaften: Bildressource" aus. Die Option "Web-Browser-kompatibel" wird nur angezeigt, wenn die Anzahl der horizontalen Bilder (Register "Allgemein" der InfoBox "Eigenschaften: Bildressource") größer als 1 ist.  <p>Wenn Sie nicht mehrere Bilder in einer Web-Anwendung verwenden, deaktivieren Sie diese Option, um in Ihrer Anwendung Speicherplatz zu sparen.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/bildressourcen-einsetzen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/bildressourcen-einsetzen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Transactionlogging auf Notes Clients aktivieren !</title>
<pubDate>Tue, 12 Aug 2003 17:32:31 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/transactionlogging-auf-notes-clients-aktivieren-.htm</link>
<category>Transaction Logging</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/transactionlogging-auf-notes-clients-aktivieren-.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/transactionlogging-auf-notes-clients-aktivieren-.htm</guid>
<content:encoded><![CDATA[ Transaction Logging ist nicht nur für den Server möglich, sondern auch für Notes Clients. Dies kann für Power-User durchaus sinnvoll sein. <br /> Es gelten beim Client die gleichen Beschränkungen/Eigenschaften wie bei einem Domino Server. <br />  <br /> Einen entscheidenen Unterschied gibt es allerdings bei der Konfiguration. Beim Notes Client ist diese vollständing von Hand in der Notes.ini zu tätigen. <br /> Hier ein Beispiel. In diesem werden alle Daten in ein Transaktion Log Verzeichniss (translog) auf D gespeichert, das Log hat die zulässige Minimalgrösse von 192 MB. <br /> <br /> TRANSLOG_AutoFixup=1 <br /> TRANSLOG_UseAll=0 <br /> TRANSLOG_Style=0 <br /> TRANSLOG_Performance=1 <br /> TRANSLOG_Status=1 <br /> TRANSLOG_MaxSize=192 <br /> TRANSLOG_Path=d:\translog\   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/transactionlogging-auf-notes-clients-aktivieren-.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/transactionlogging-auf-notes-clients-aktivieren-.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Byte-Range Serving (unterstützung von Downloadmanagern)</title>
<pubDate>Fri, 1 Aug 2003 14:33:49 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/byte-range-serving-unterstuetzung-von-downloadmanagern.htm</link>
<category>Webadministration</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/byte-range-serving-unterstuetzung-von-downloadmanagern.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/byte-range-serving-unterstuetzung-von-downloadmanagern.htm</guid>
<content:encoded><![CDATA[ Ab Version 6.x verwendet der DominoServer Byte-Range Serving, das bedeutet, das mit z.b. FlashGet oder Getright ein Abbruch eines Downloads genau an der Stelle fortgesetzt werden kann, an welcher er unterbrochen wurde. Dadurch muss nicht mehr die komplette Datei neu geladen werden. <br /> <br /> Administrativ gibt es keine Konfigurationsmöglichkeit. <br />  <br /> ABER: <br /> <br /> um z.B. ein Attachment genau so dem WebUser anbieten zu können, darf dies beim Anhängen an das Dokument <strong>nicht</strong> "Compressed" werden. Nur dann ist der Domion Server in der Lange, die Datei im Byte-Range Modus den WebUsern zur Verfügung zu stellen. Ansonsten ist der Byte-Range Modus nicht verfügbar.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/byte-range-serving-unterstuetzung-von-downloadmanagern.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/byte-range-serving-unterstuetzung-von-downloadmanagern.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Lokale Rechte auf Datenbanken unter ND 6</title>
<pubDate>Mon, 21 Jul 2003 10:07:29 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/lokale-rechte-auf-datenbanken-unter-nd-6.htm</link>
<category>Bedienung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/lokale-rechte-auf-datenbanken-unter-nd-6.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/lokale-rechte-auf-datenbanken-unter-nd-6.htm</guid>
<content:encoded><![CDATA[ Bis Version R5.x hatte man als User auf lokale Repliken immer das Recht "Manager". Die einzige Ausnahme trat auf, wenn das Flag "Konsistente ACL" der Datenbank gesetzt war. Dann galt die ACL im vollen Umfang auch lokal. Dies war insbesondere für die Verwendung von lokalen Datenbanken mit Rollen notwendig. <br />  <br /> Unter ND6 gestaltet sich dieses allerdings anders. <br /> <br /> Wird von einer Server-Datenbank, eine lokale Replik erstellt, besitzt der User nicht mehr das Recht "Manager" auf die lokale Replik der Datenbank, sondern das jeweilige in der ACL diesem User zugeordnete Recht. Insofern ist unter ND6 die konsistente ACL nicht mehr für die Auswertung von Rollen lokaler Datenbanken notwendig. <br /> <br /> Die Datenbank jedoch als solches kann er weiterhin im Notesclient lokal löschen und auch lokal einen Volltextindex anlegen. <br /> <br /> Dies gilt wie oben aufgeführt, ausschließlich für das Erstellen eine lokalen Replik, nicht für das Erstellen eine lokalen Kopie einer Datenbank.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/lokale-rechte-auf-datenbanken-unter-nd-6.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/lokale-rechte-auf-datenbanken-unter-nd-6.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Manchmal start Lotus Notes mit einem leeren Bildschirm. Warum?</title>
<pubDate>Mon, 14 Jul 2003 15:07:25 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/manchmal-start-lotus-notes-mit-einem-leeren-bildschirm.-warum.htm</link>
<category>Benutzerbetreuung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/manchmal-start-lotus-notes-mit-einem-leeren-bildschirm.-warum.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/manchmal-start-lotus-notes-mit-einem-leeren-bildschirm.-warum.htm</guid>
<content:encoded><![CDATA[ Wenn Lotus Notes gleichzeitig mit anderen Programmen startet und darüber hinaus mit der Starteigenschaft "Ausführen: Minimiert" &nbsp;geladen wird, kann es vorkommen, dass statt der Startseite nur ein leerer Bildschirm erscheint. <br />  <br /> Diese kommt besonders dann vor, wenn mit der Vorgabestartseite gearbeitet wird und neben Lotus Notes gleichzeitig noch andere Programmen gestartet werden. <br /> <strong><br /> Beseitigung/Umgehung:</strong>  <ul> <li>Starteigenschaften für Lotus Notes (Windows-Eigenschaft für das Icon) nicht auf "Minimiert" stellen  </li><li>Abwarten bis alle Programme geladen sind, bevor Lotus Notes gestartet wird.  </li><li>Lotus Notes nicht über die Autostart-Gruppe von Windows laden</li></ul>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/manchmal-start-lotus-notes-mit-einem-leeren-bildschirm.-warum.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/manchmal-start-lotus-notes-mit-einem-leeren-bildschirm.-warum.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Undokumentierte Funktion in &#64;SetProfileField</title>
<pubDate>Fri, 11 Jul 2003 08:06:12 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/undokumentierte-funktion-in-setprofilefield.htm</link>
<category>Profile</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/undokumentierte-funktion-in-setprofilefield.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/undokumentierte-funktion-in-setprofilefield.htm</guid>
<content:encoded><![CDATA[ Folgende Funktion: <br /> <br /> @SetProfileField(&#91;NoPersist&#93;;"MyVariable";@username) <br />  <br /> findet sich leider nicht in der Dokumentation, weil Ihre einwandfreie Funktionalität bei Freigabe von Release 6.0 nicht garantiert werden konnte. Sie wird allerdings in Standardschablonen von Lotus verwendet...... <br /> <br /> Die Daten, welche in einem Profildokument abgelegt werden, sind nicht dauerhaft gespeichert (werden nach Beendigung der Session wieder verworfen). Somit eignet sie sich außerordentlich gut, z.B. Daten zwischen verschiedenen Frames oder anderen Elementen temporär auszutauschen.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/undokumentierte-funktion-in-setprofilefield.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/undokumentierte-funktion-in-setprofilefield.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Client Neustart nach Crash</title>
<pubDate>Fri, 20 Jun 2003 15:14:45 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/client-neustart-nach-crash.htm</link>
<category>Faultrecovery</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/client-neustart-nach-crash.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/client-neustart-nach-crash.htm</guid>
<content:encoded><![CDATA[ Wer kennt das nicht. Der Notes Client ist mal wieder abgestürzt und läßt sich nun beim besten Willen nicht mehr zu einem Neustart bewegen. Schuld daran sind Prozesse, die nach einem Absturz im Speicher verbleiben und den Neustart verhindern.<br /> Zwar gibt es bereits Tools auf dem Markt, die einem aus diesem Dilemma heraushelfen können. Aber in den meisten Fällen müssen diese Tools erst installiert und nach einem Crash erst aufgerufen werden.<br /> Daher habe ich dieses Tool (nkill.exe)geschrieben. Es läßt sich über eine Batch Datei vor dem Start des Notes Client starten.<br />  <br /> c:\Notes\nkill.exe<br /> c:\Notes\notes.exe<br /> <br /> Für die Interessierten ist der Quelltext beigefügt. Das Tool lauft unter Win9.x/WinME/Win NT 3.x/Win NT 4.0/ Win 2000 und XP <br /> <br /> <br /> <br /> Gefunden auf: http://www.eknori.de/tips/nkill.htm <br /> <br /> Danke an Ulrich Krause!  <table width=100%> <tr valign=top> <td width=100% bgcolor=white><br /> <br /> <br /> <br /> <br />  <br /><br />  <table width=100%> <tr> <td width=100% bgcolor=#efefef>#include <windows.h><br /> #include <tlhelp32.h><br /> #include <iostream.h><br /> #include <string.h><br /> <br /> #ifdef BORLANDC<br /> #include <string.h><br /> #include <ctype.h><br /> #endif<br /> <br /> int KILL_PROC_BY_NAME(const char *);<br /> <br /> int main(int argc,char *argv&#91;&#93;)<br /> {<br /> int iRes;<br /> char string&#91;&#93; = "ldapsearch.exe, nadminp.exe, naldaemn.exe, namgr.exe, napdaemn.exe, nchronos.exe, ncollect.exe, nconvert.exe, ndiiop.exe, ndyncfg.exe, nhldaemn.exe, nhttp.exe, nhttpcgi.exe, nimapcl.exe, nlnotes.exe, nlogasio.exe, nminder.exe, nnntpcl.exe, nnotesmm.exe, stringn.exe, npop3.exe, nupdall.exe, nupdate.exe, nweb.exe, nwrdaemn.exe, nxpcdmn.exe, rtfcnvt.exe, CLHAP32.EXE, ntaskldr.exe";<br /> char separator&#91;&#93; = ",";<br /> char *token;<br /> <br /> token = strtok(string, separator); <br /> while( token != NULL )<br /> {<br /> iRes=KILL_PROC_BY_NAME(token);<br /> cout << token << " Result code=" << iRes << endl; &nbsp; &nbsp;<br />  &nbsp;token = strtok(NULL, separator);<br /> }<br /> return 0;<br /> }<br /> <br /> int KILL_PROC_BY_NAME(const char *szToTerminate)<br /> // &nbsp; Return codes are as follows:<br /> // &nbsp; 0 &nbsp; = Process was successfully terminated<br /> // &nbsp; 603 = Process was not currently running<br /> // &nbsp; 604 = No permission to terminate process<br /> // &nbsp; 605 = Unable to load PSAPI.DLL<br /> // &nbsp; 602 = Unable to terminate process for some other reason<br /> // &nbsp; 606 = Unable to identify system type<br /> // &nbsp; 607 = Unsupported OS<br /> // &nbsp; 632 = Invalid process name<br /> // &nbsp; 700 = Unable to get procedure address from PSAPI.DLL<br /> // &nbsp; 701 = Unable to get process list, EnumProcesses failed<br /> // &nbsp; 702 = Unable to load KERNEL32.DLL<br /> // &nbsp; 703 = Unable to get procedure address from KERNEL32.DLL<br /> // &nbsp; 704 = CreateToolhelp32Snapshot failed<br /> {<br /> BOOL bResult,bResultm;<br /> DWORD aiPID&#91;1000&#93;,iCb=1000,iNumProc,iV2000=0;<br /> DWORD iCbneeded,i,iFound=0;<br /> char szName&#91;MAX_PATH&#93;,szToTermUpper&#91;MAX_PATH&#93;;<br /> HANDLE hProc,hSnapShot,hSnapShotm;<br /> OSVERSIONINFO osvi;<br /> HINSTANCE hInstLib;<br /> int iLen,iLenP,indx;<br /> HMODULE hMod;<br /> PROCESSENTRY32 procentry; &nbsp; &nbsp; &nbsp;<br /> MODULEENTRY32 modentry;<br /> <br /> iLenP=strlen(szToTerminate);<br /> if(iLenP<1 || iLenP>MAX_PATH) return 632;<br /> for(indx=0;indx<iLenP;indx++)<br /> szToTermUpper&#91;indx&#93;=toupper(szToTerminate&#91;indx&#93;);<br /> szToTermUpper&#91;iLenP&#93;=0;<br /> <br />  // PSAPI Function Pointers.<br />  BOOL (WINAPI *lpfEnumProcesses)( DWORD *, DWORD cb, DWORD * );<br />  BOOL (WINAPI *lpfEnumProcessModules)( HANDLE, HMODULE *,<br />  &nbsp; &nbsp;DWORD, LPDWORD );<br />  DWORD (WINAPI *lpfGetModuleBaseName)( HANDLE, HMODULE,<br />  &nbsp; &nbsp;LPTSTR, DWORD );<br /> <br />  &nbsp;// ToolHelp Function Pointers.<br />  &nbsp;HANDLE (WINAPI *lpfCreateToolhelp32Snapshot)(DWORD,DWORD) ;<br />  &nbsp;BOOL (WINAPI *lpfProcess32First)(HANDLE,LPPROCESSENTRY32) ;<br />  &nbsp;BOOL (WINAPI *lpfProcess32Next)(HANDLE,LPPROCESSENTRY32) ;<br />  &nbsp;BOOL (WINAPI *lpfModule32First)(HANDLE,LPMODULEENTRY32) ;<br />  &nbsp;BOOL (WINAPI *lpfModule32Next)(HANDLE,LPMODULEENTRY32) ;<br /> <br /> // First check what version of Windows we're in<br /> osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);<br /> bResult=GetVersionEx(&amp;osvi);<br /> if(!bResult) &nbsp; &nbsp; // Unable to identify system version<br />  &nbsp;return 606;<br /> <br /> if((osvi.dwPlatformId != VER_PLATFORM_WIN32_NT) &amp;&amp;<br /> (osvi.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS))<br /> return 607;<br /> <br /> if(osvi.dwPlatformId==VER_PLATFORM_WIN32_NT)<br /> {<br />  &nbsp; &nbsp; hInstLib = LoadLibraryA("PSAPI.DLL");<br />  &nbsp; &nbsp; if(hInstLib == NULL)<br />  &nbsp; &nbsp; &nbsp; &nbsp;return 605;<br /> <br />  &nbsp; &nbsp; // Get procedure addresses.<br />  &nbsp; &nbsp; lpfEnumProcesses = (BOOL(WINAPI *)(DWORD *,DWORD,DWORD*))<br />  &nbsp; &nbsp; &nbsp; &nbsp;GetProcAddress( hInstLib, "EnumProcesses" ) ;<br />  &nbsp; &nbsp; lpfEnumProcessModules = (BOOL(WINAPI *)(HANDLE, HMODULE *,<br />  &nbsp; &nbsp; &nbsp; &nbsp;DWORD, LPDWORD)) GetProcAddress( hInstLib,<br />  &nbsp; &nbsp; &nbsp; &nbsp;"EnumProcessModules" ) ;<br />  &nbsp; &nbsp; lpfGetModuleBaseName =(DWORD (WINAPI *)(HANDLE, HMODULE,<br />  &nbsp; &nbsp; &nbsp; &nbsp;LPTSTR, DWORD )) GetProcAddress( hInstLib,<br />  &nbsp; &nbsp; &nbsp; &nbsp;"GetModuleBaseNameA" ) ;<br /> <br />  &nbsp; &nbsp; if(lpfEnumProcesses == NULL ||<br />  &nbsp; &nbsp; &nbsp; &nbsp;lpfEnumProcessModules == NULL ||<br />  &nbsp; &nbsp; &nbsp; &nbsp;lpfGetModuleBaseName == NULL)<br />  &nbsp; &nbsp; &nbsp; &nbsp;{<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FreeLibrary(hInstLib);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 700;<br />  &nbsp; &nbsp; &nbsp; &nbsp;}<br />  <br /> bResult=lpfEnumProcesses(aiPID,iCb,&amp;iCbneeded);<br /> if(!bResult)<br /> {<br />  &nbsp;// Unable to get process list, EnumProcesses failed<br />  &nbsp; &nbsp; &nbsp; &nbsp;FreeLibrary(hInstLib);<br />  &nbsp;return 701;<br /> }<br /> <br /> // How many processes are there?<br /> iNumProc=iCbneeded/sizeof(DWORD);<br /> <br /> // Get and match the name of each process<br /> for(i=0;i<iNumProc;i++)<br /> {<br />  &nbsp;// Get the (module) name for this process<br /> <br />  &nbsp; &nbsp; &nbsp;strcpy(szName,"Unknown");<br />  &nbsp;// First, get a handle to the process<br />  &nbsp; &nbsp; &nbsp;hProc=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,<br />  &nbsp; &nbsp;aiPID&#91;i&#93;);<br />  &nbsp; &nbsp; &nbsp;// Now, get the process name<br />  &nbsp; &nbsp; &nbsp;if(hProc)<br />  &nbsp;{<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(lpfEnumProcessModules(hProc,&amp;hMod,sizeof(hMod),&amp;iCbneeded) )<br />  &nbsp; &nbsp; {<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;iLen=lpfGetModuleBaseName(hProc,hMod,szName,MAX_PATH);<br />  &nbsp; &nbsp; }<br />  &nbsp;}<br />  &nbsp; &nbsp; &nbsp;CloseHandle(hProc);<br />  &nbsp;// We will match regardless of lower or upper case<br /> #ifdef BORLANDC<br />  &nbsp; &nbsp; &nbsp; &nbsp;if(strcmp(strupr(szName),szToTermUpper)==0)<br /> #else<br />  &nbsp;if(strcmp(_strupr(szName),szToTermUpper)==0)<br /> #endif<br />  &nbsp;{<br />  &nbsp; &nbsp;// Process found, now terminate it<br />  &nbsp; &nbsp;iFound=1;<br />  &nbsp; &nbsp;// First open for termination<br />  &nbsp; &nbsp;hProc=OpenProcess(PROCESS_TERMINATE,FALSE,aiPID&#91;i&#93;);<br />  &nbsp; &nbsp;if(hProc)<br />  &nbsp; &nbsp;{<br />  &nbsp; &nbsp; &nbsp;if(TerminateProcess(hProc,0))<br />  &nbsp; &nbsp; &nbsp;{<br />  &nbsp; &nbsp; &nbsp; &nbsp;// process terminated<br />  &nbsp; &nbsp; &nbsp; &nbsp;CloseHandle(hProc);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FreeLibrary(hInstLib);<br />  &nbsp; &nbsp; &nbsp; &nbsp;return 0;<br />  &nbsp; &nbsp; &nbsp;}<br />  &nbsp; &nbsp; &nbsp;else<br />  &nbsp; &nbsp; &nbsp;{<br />  &nbsp; &nbsp; &nbsp; &nbsp;// Unable to terminate process<br />  &nbsp; &nbsp; &nbsp; &nbsp;CloseHandle(hProc);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FreeLibrary(hInstLib);<br />  &nbsp; &nbsp; &nbsp; &nbsp;return 602;<br />  &nbsp; &nbsp; &nbsp;}<br />  &nbsp; &nbsp;}<br />  &nbsp; &nbsp;else<br />  &nbsp; &nbsp;{<br />  &nbsp; &nbsp; &nbsp;// Unable to open process for termination<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FreeLibrary(hInstLib);<br />  &nbsp; &nbsp; &nbsp;return 604;<br />  &nbsp; &nbsp;}<br />  &nbsp;}<br /> }<br /> }<br /> <br /> if(osvi.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS)<br /> {<br /> // Win/95 or 98 or ME<br />  &nbsp;<br /> hInstLib = LoadLibraryA("Kernel32.DLL");<br /> if( hInstLib == NULL )<br />  &nbsp;return 702;<br /> <br /> lpfCreateToolhelp32Snapshot=<br />  &nbsp;(HANDLE(WINAPI *)(DWORD,DWORD))<br />  &nbsp;GetProcAddress( hInstLib,<br />  &nbsp;"CreateToolhelp32Snapshot" ) ;<br /> lpfProcess32First=<br />  &nbsp;(BOOL(WINAPI *)(HANDLE,LPPROCESSENTRY32))<br />  &nbsp;GetProcAddress( hInstLib, "Process32First" ) ;<br /> lpfProcess32Next=<br />  &nbsp;(BOOL(WINAPI *)(HANDLE,LPPROCESSENTRY32))<br />  &nbsp;GetProcAddress( hInstLib, "Process32Next" ) ;<br /> lpfModule32First=<br />  &nbsp;(BOOL(WINAPI *)(HANDLE,LPMODULEENTRY32))<br />  &nbsp;GetProcAddress( hInstLib, "Module32First" ) ;<br /> lpfModule32Next=<br />  &nbsp;(BOOL(WINAPI *)(HANDLE,LPMODULEENTRY32))<br />  &nbsp;GetProcAddress( hInstLib, "Module32Next" ) ;<br /> if( lpfProcess32Next == NULL ||<br />  &nbsp;lpfProcess32First == NULL ||<br />  &nbsp; &nbsp;lpfModule32Next == NULL ||<br />  &nbsp;lpfModule32First == NULL ||<br />  &nbsp;lpfCreateToolhelp32Snapshot == NULL )<br /> {<br />  &nbsp;FreeLibrary(hInstLib);<br />  &nbsp;return 703;<br /> }<br />  &nbsp;<br /> hSnapShot = lpfCreateToolhelp32Snapshot(<br />  &nbsp;TH32CS_SNAPPROCESS, 0 ) ;<br /> if( hSnapShot == INVALID_HANDLE_VALUE )<br /> {<br />  &nbsp;FreeLibrary(hInstLib);<br />  &nbsp;return 704;<br /> }<br /> <br />  &nbsp; &nbsp;// Get the first process' information.<br />  &nbsp; &nbsp;procentry.dwSize = sizeof(PROCESSENTRY32);<br />  &nbsp; &nbsp;bResult=lpfProcess32First(hSnapShot,&amp;procentry);<br /> <br />  &nbsp; &nbsp;// While there are processes, keep looping and checking.<br />  &nbsp; &nbsp;while(bResult)<br />  &nbsp; &nbsp;{<br />  &nbsp; &nbsp;// Get a handle to a Toolhelp snapshot of this process.<br />  &nbsp; &nbsp;hSnapShotm = lpfCreateToolhelp32Snapshot(<br />  &nbsp; &nbsp; &nbsp;TH32CS_SNAPMODULE, procentry.th32ProcessID) ;<br />  &nbsp; &nbsp;if( hSnapShotm == INVALID_HANDLE_VALUE )<br />  &nbsp;{<br />  &nbsp; &nbsp;CloseHandle(hSnapShot);<br />  &nbsp; &nbsp; &nbsp;FreeLibrary(hInstLib);<br />  &nbsp; &nbsp; &nbsp;return 704;<br />  &nbsp;}<br />  &nbsp;// Get the module list for this process<br />  &nbsp;modentry.dwSize=sizeof(MODULEENTRY32);<br />  &nbsp;bResultm=lpfModule32First(hSnapShotm,&amp;modentry);<br /> <br />  &nbsp;// While there are modules, keep looping and checking<br />  &nbsp;while(bResultm)<br />  &nbsp;{<br />  &nbsp; &nbsp; &nbsp; &nbsp;if(strcmp(modentry.szModule,szToTermUpper)==0)<br />  &nbsp; &nbsp;{<br />  &nbsp; &nbsp; &nbsp; &nbsp;// Process found, now terminate it<br />  &nbsp; &nbsp; &nbsp; &nbsp;iFound=1;<br />  &nbsp; &nbsp; &nbsp; &nbsp;// First open for termination<br />  &nbsp; &nbsp; &nbsp; &nbsp;hProc=OpenProcess(PROCESS_TERMINATE,FALSE,procentry.th32ProcessID);<br />  &nbsp; &nbsp; &nbsp; &nbsp;if(hProc)<br />  &nbsp; &nbsp; &nbsp;{<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(TerminateProcess(hProc,0))<br />  &nbsp; &nbsp; &nbsp; &nbsp;{<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// process terminated<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CloseHandle(hSnapShotm);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CloseHandle(hSnapShot);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CloseHandle(hProc);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FreeLibrary(hInstLib);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 0;<br />  &nbsp; &nbsp; &nbsp; &nbsp;}<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else<br />  &nbsp; &nbsp; &nbsp; &nbsp;{<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Unable to terminate process<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CloseHandle(hSnapShotm);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CloseHandle(hSnapShot);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CloseHandle(hProc);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FreeLibrary(hInstLib);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 602;<br />  &nbsp; &nbsp; &nbsp; &nbsp;}<br />  &nbsp; &nbsp; &nbsp;}<br />  &nbsp; &nbsp; &nbsp; &nbsp;else<br />  &nbsp; &nbsp; &nbsp;{<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Unable to open process for termination<br />  &nbsp; &nbsp; &nbsp; &nbsp;CloseHandle(hSnapShotm);<br />  &nbsp; &nbsp; &nbsp; &nbsp;CloseHandle(hSnapShot);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FreeLibrary(hInstLib);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 604;<br />  &nbsp; &nbsp; &nbsp;}<br />  &nbsp; &nbsp;}<br />  &nbsp; &nbsp;else<br />  &nbsp; &nbsp;{ &nbsp;// Look for next modules for this process<br />  &nbsp; &nbsp; &nbsp;modentry.dwSize=sizeof(MODULEENTRY32);<br />  &nbsp; &nbsp; &nbsp;bResultm=lpfModule32Next(hSnapShotm,&amp;modentry);<br />  &nbsp; &nbsp;}<br />  &nbsp;}<br /> <br />  &nbsp;//Keep looking<br />  &nbsp;CloseHandle(hSnapShotm);<br />  &nbsp; &nbsp; &nbsp; &nbsp;procentry.dwSize = sizeof(PROCESSENTRY32);<br />  &nbsp; &nbsp; &nbsp; &nbsp;bResult = lpfProcess32Next(hSnapShot,&amp;procentry);<br />  &nbsp; &nbsp;}<br /> CloseHandle(hSnapShot);<br /> }<br /> if(iFound==0)<br /> {<br /> FreeLibrary(hInstLib);<br /> return 603;<br /> }<br /> FreeLibrary(hInstLib);<br /> return 0;<br /> }  <ul> <li><a href="http://www.mmi-consult.de/FAQ/dx/psapi.dll/$file/psapi.dll" title="psapi.dll"psapi.dll/>psapi.dll</a>  </li><li><a href="http://www.mmi-consult.de/FAQ/dx/nkill.zip/$file/nkill.zip" title="nkill.zip"nkill.zip/>nkill.zip</a></li></ul></table> <br /></table> <br /> <br /><br /> <br /> <br /> <br /> <br /> <br />   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/client-neustart-nach-crash.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/client-neustart-nach-crash.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Agent zum Löschen von &quot;Orphan Documents&quot;</title>
<pubDate>Wed, 11 Jun 2003 08:03:12 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/agent-zum-loeschen-von-orphans.htm</link>
<category>Orphan Documents</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/agent-zum-loeschen-von-orphans.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/agent-zum-loeschen-von-orphans.htm</guid>
<content:encoded><![CDATA[ Wenn Hauptdokumente auf die Antwortdokumente existieren gelöscht werden, bleiben "Waisendokumente" (ohne Zuordnung zum Hauptdokument) zurück. Diese belasten (Größe und Performance) einer Datenbank. <br />  <br /> Um Waisendokumente zu löschen, eignet sich folgender Agent (Alternative zu <a href=Notes:///C12575D0002AED5C/8B54B8FC1D13170BC1256C13004C6960/76A5D583CD3ABFA8C1256ADD0038837D><span style="text-decoration:underline">Link</span></a>): <br /> <br /> Verwendung des Script im Abschnitt "Database Scripts" unter "Others": <br /> <br /> Sub Postdocumentdelete(Source <strong>As</strong> Notesuidatabase)<br />  <strong>Dim</strong> collCurrent <strong>As</strong> NotesDocumentCollection<br />  <strong>Dim</strong> collResp <strong>As</strong> NotesDocumentCollection<br />  <strong>Dim</strong> docCurrent <strong>As</strong> NotesDocument<br />  <br />  <em>'--- Get the current unprocessed documents for deletion</em><br />  <strong>Set</strong> collCurrent = Source.Documents<br />  <strong>If</strong> collCurrent.Count = 0 <strong>Then</strong> <strong>Exit</strong> Sub<br />  <br />  <em>'--- Set the first document from collection</em><br />  <em>'--- and loop through the collection</em><br />  <strong>Set</strong> docCurrent = collCurrent.GetFirstDocument<br />  <strong>While</strong> <strong>Not</strong> docCurrent <strong>Is</strong> <strong>Nothing</strong><br />  &nbsp; &nbsp; <strong>Set</strong> collResp = docCurrent.Responses<br />  &nbsp; &nbsp; <strong>If</strong> collResp.Count <> 0 <strong>Then</strong> <strong>Call</strong> RemoveResponses(collResp)<br />  &nbsp; &nbsp; <strong>Set</strong> docCurrent = collCurrent.GetNextDocument(docCurrent)<br />  <strong>Wend<br /> End</strong> Sub<em><br /> '--- === Hier die sich selbst aufrufende Unterroutine ===</em><br /> Sub RemoveResponses(collCurrent <strong>As</strong> NotesDocumentCollection)<br />  <strong>Dim</strong> collResp <strong>As</strong> NotesDocumentCollection<br />  <strong>Dim</strong> docCurrent <strong>As</strong> NotesDocument<br />  <br />  <em>'--- Set the first document from collection</em><br />  <em>'--- and loop through the collection</em><br />  <strong>Set</strong> docCurrent = collCurrent.GetFirstDocument<br />  <strong>While</strong> <strong>Not</strong> docCurrent <strong>Is</strong> <strong>Nothing</strong><br />  &nbsp; &nbsp; <strong>Set</strong> collResp = docCurrent.Responses<br />  &nbsp; &nbsp; <strong>If</strong> collResp.Count <> 0 <strong>Then</strong> <strong>Call</strong> RemoveResponses(collResp)<br />  &nbsp; &nbsp; <strong>Set</strong> docCurrent = collCurrent.GetNextDocument(docCurrent)<br />  <strong>Wend</strong><br />  <strong>Call</strong> collCurrent.RemoveAll(<strong>True</strong>)<strong><br /> End</strong> Sub   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/agent-zum-loeschen-von-orphans.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/agent-zum-loeschen-von-orphans.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Spaltenabstände von Webansichten vergößern</title>
<pubDate>Sat, 17 May 2003 14:58:11 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/spaltenabstaende-von-webansichten-vergoeßern.htm</link>
<category>Ansichtsgestaltung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/spaltenabstaende-von-webansichten-vergoeßern.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/spaltenabstaende-von-webansichten-vergoeßern.htm</guid>
<content:encoded><![CDATA[ Werden Ansichten im Web als HTML dargestellt, verringern sich die Spaltenabstände oft derart, dass sie ganz zusammenrücken. Um einen Abstand gewünschter Breite zu erhalten, ist eine leere Spalte mit gewünschter Breite eiinzufügen:  <table> <tr valign=top> <td>Spaltentitel:  <td>&#91;<td width="30">&#93;  <tr valign=top> <td>Spaltenformel:  <td>"&#91;<td width=\"30\">&#93;"</table> <br /> <br /><br />  <br /> um z.B. einen Abstand von 30 Pixeln zu erzeugen. <br /> <br /> ACHTUNG: <br /> <br /> Wichtig ist es, darauf zu achten, dass zwischen den eckigen und spitzen Klammern <strong>KEINE</strong> Leerzeichen oder sonstiges stehen!   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/spaltenabstaende-von-webansichten-vergoeßern.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/spaltenabstaende-von-webansichten-vergoeßern.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Listboxlänge im Web konfigurieren</title>
<pubDate>Wed, 23 Apr 2003 14:17:14 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/listboxlaenge-im-web-konfigurieren.htm</link>
<category>Webentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/listboxlaenge-im-web-konfigurieren.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/listboxlaenge-im-web-konfigurieren.htm</guid>
<content:encoded><![CDATA[ Um die Länge einer Listbox im Web zu beeinflussen ist Folgendes zu tun : <br />  <br /> Unter den Eigenschaften des ListBoxFelds den Tab ->HTML ->Style mit z.B. <br /> <strong><br /> .width=300</strong> <br /> <br /> bestücken. <br /> <br /> WICHTIG: Den Punkt vor "width" nicht vergessen!   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/listboxlaenge-im-web-konfigurieren.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/listboxlaenge-im-web-konfigurieren.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Query String in LotusScript auswerten</title>
<pubDate>Wed, 16 Apr 2003 19:43:00 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/query-string-in-lotusscript-auswerten.htm</link>
<category>Query String</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/query-string-in-lotusscript-auswerten.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/query-string-in-lotusscript-auswerten.htm</guid>
<content:encoded><![CDATA[ Nachfolgendes Script(z.B. einen WebQueryOpen-Agenten eingesetzt) extrahiert einen beliebigen Parameter aus dem Query-String der Browser URL. <strong><span style="text-decoration:underline"><br /> <br /> Vorgehensweise:</span></strong> <br /> 1. &nbsp; &nbsp; &nbsp; &nbsp;Zunächst ein Feld <strong>"Query_String"</strong>, Typ Text, Berechnet zu Anzeige, mit Wertfomel "Null" auf die Maske palzieren (sonst übergibt der Domino Server nicht den QueryString der URl an das neue Dokument. <br /> 2. &nbsp; &nbsp; &nbsp; &nbsp;Ein Feld "Value" auf die Maske plazieren &nbsp;<br /> 3. &nbsp; &nbsp; &nbsp; &nbsp;Einen WebQueryOpen Agenten (mit nachfolgenden Code) in die Maske aufnehmen: <strong><br /> <br /> Sub</strong> Initialize<br />  <strong>Dim</strong> s <strong>As</strong> <strong>New</strong> NotesSession<br />  <strong>Dim</strong> doc <strong>As</strong> NotesDocument<br />  <strong>Dim</strong> strQuery <strong>As</strong> <strong>String</strong><br />  <strong>Dim</strong> strValue <strong>As</strong> <strong>String</strong><br /> <br />  <strong>Set</strong> doc = s.DocumentContext()<br />  strQuery = doc.QUERY_STRING(0)<br />  strValue = GetParameter ( strQuery, "firstname" )<br />  doc.Value = strValue<strong><br /> End</strong> Sub <strong><br /> <br /> Function</strong> GetParameter ( <strong>Byval</strong> strQuery <strong>As</strong> <strong>String</strong>, <strong>Byval</strong> strParameter <strong>As</strong> <strong>String</strong> ) <strong>As</strong> <strong>String</strong><em><br /> ' This function allows you to pull various name-value pairs from the Query_String.</em><br />  <strong>Dim</strong> intStart <strong>As</strong> <strong>Integer</strong>, intStop <strong>As</strong> <strong>Integer</strong><br />  strQuery = |&amp;| &amp; strQuery &amp; |&amp;| &amp; strParameter &amp; |=&amp;|<br />  strParameter = <strong>Ucase</strong> ( |&amp;| &amp; strParameter &amp; |=| )<br />  intStart = Instr ( <strong>Ucase</strong> ( strQuery ), strParameter ) + <strong>Len</strong> ( strParameter )<br />  intStop = Instr ( intStart, strQuery, |&amp;| )<br />  GetParameter = <strong>Mid$</strong> ( strQuery, intStart, intStop-intStart )<strong><br /> End</strong> <strong>Function</strong> <strong><span style="text-decoration:underline"><br /> <br /> Test:</span></strong> <br /> <br /> Angenommen, die o.g. Formel ist in einer DB "Test.nsf" auf Maske "Person" verwendet worden, dann überträgt die URL  <div align=center> <br /><strong><br /> <br /> <br /> /Test.nsf/Person?OpenForm&amp;FirstName=Mickey</strong></div> <br /><br /> <br /> <br /> <br /> den Wert "Mickey" in das abhängige Feld.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/query-string-in-lotusscript-auswerten.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/query-string-in-lotusscript-auswerten.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Vermeiden von &quot;No Documents found&quot; bei eingebetteten Ansichten im Web</title>
<pubDate>Thu, 3 Apr 2003 21:15:31 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/vermeiden-von-no-documents-found-bei-eingebetteten-ansichten-im-web.htm</link>
<category>Webentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/vermeiden-von-no-documents-found-bei-eingebetteten-ansichten-im-web.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/vermeiden-von-no-documents-found-bei-eingebetteten-ansichten-im-web.htm</guid>
<content:encoded><![CDATA[ Eingebettete Ansichten erlauben die Darstellung von Ansichtsinhalten auf Seiten und Masken (z.B. für ViewTemplates). Wenn die Ansicht keine Dokumente enthält erscheint im Web stets die unschöne Meldung "No Documents found". <br />  <br /> Dieses kann durch "Verbergen wenn" Optionen für die eingebettete Ansicht vermieden werden: <br /> <strong><br /> Fall 1: Normale Ansicht</strong> <br /> <br /> _view := "($WebView)"; <br /> _col := 1; <br /> _res := @DbColumn("":"NoCache";@DbName; _view ; _col); <br /> @Trim(_res) <strong>=</strong> "" <br /> <strong><br /> Fall 2: Eingebette Ansicht mit "Einzelne Kategorie anzeigen"</strong> <br /> <br /> _view := "($WebView)"; <br /> _key := "Keyvalue"; <br /> _col := 1; <br /> _res := @Unique(@DbColumn("":"NoCache";@DbName; _view ; _col)); <strong><br /> !</strong>@IsMember(_key; _res) <br /> <br /> Um statt der eingebetteten Ansicht einen Ersatztext (separate Zeile unter der eingebetteten Ansicht) darzustellen, sind die "Verbergen wenn" Optionen für diesen Text invertiert zu setzen: <br /> <strong><br /> Fall 1: Normale Ansicht</strong> <br /> <br /> _view := "($WebView)"; <br /> _col := 1; <br /> _res := @DbColumn("":"NoCache";@DbName; _view ; _col); <br /> @Trim(_res) <strong>!=</strong> "" <br /> <strong><br /> Fall 2: Eingebette Ansicht mit "Einzelne Kategorie anzeigen"</strong> <br /> <br /> _view := "($WebView)"; <br /> _key := "Keyvalue"; <br /> _col := 1; <br /> _res := @Unique(@DbColumn("":"NoCache";@DbName; _view ; _col)); <br /> @IsMember(_key; _res)   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/vermeiden-von-no-documents-found-bei-eingebetteten-ansichten-im-web.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/vermeiden-von-no-documents-found-bei-eingebetteten-ansichten-im-web.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Attachments abhängen</title>
<pubDate>Thu, 13 Feb 2003 11:07:53 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/attachments-abhaengen.htm</link>
<category>Sonstiges</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/attachments-abhaengen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/attachments-abhaengen.htm</guid>
<content:encoded><![CDATA[ Notes Dokumente können Attachments enthalten. Um diese einfach von mehreren Dokumenten abzulösen (auf die Platte zu kopieren) kann ein Agent helfen, der aus allen markierten Dokumenten alle Attachments ablöst. <br /> <br /> Diese ist ggf. dahingehend zu erweitern, dass es möglich ist, Zielverzeichnisse anzugeben bzw. bestehende Dateien nicht direkt überschrieben werden. <strong><span style="text-decoration:underline"><br /> <br /> Lösung:</span></strong> <em><br /> <br /> 'Detach File(s):</em><br /> <br /> Sub Initialize<br />  <strong>Dim</strong> s <strong>As</strong> <strong>New</strong> NotesSession<br />  <strong>Dim</strong> col <strong>As</strong> NotesDocumentCollection<br />  <strong>Dim</strong> doc <strong>As</strong> NotesDocument<br /> <br />  <strong>Set</strong> col = s.CurrentDatabase.UnprocessedDocuments<br />  <strong>Set</strong> doc = col.GetfirstDocument<br /> <br />  <strong>If</strong> <strong>Not</strong> doc <strong>Is</strong> <strong>Nothing</strong> <strong>Then</strong><br />  &nbsp; &nbsp; i = DetachFile (doc, "")<br />  &nbsp; &nbsp; <strong>Set</strong> doc = col.GetNextDocument (doc)<br />  <strong>End</strong> <strong>If<br /> <br /> End</strong> Sub <strong><br /> <br /> Function</strong> DetachFile (doc <strong>As</strong> NotesDocument, strFilename <strong>As</strong> <strong>String</strong>) <strong>As</strong> <strong>Integer</strong><em><br /> <br /> '#############################################################<br /> ' Function DetachFile<br /> '..............................................................................................................................................<br /> ' Purpose: &nbsp;Detach Files to disk.<br /> ' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If document contains multiple attachments, only first will be processed when filename is specified<br /> ' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If disk file already exists, it will be overwritten<br /> '..............................................................................................................................................<br /> ' Input Values:<br /> ' &nbsp; doc: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NotesDocument conainting attachments<br /> ' &nbsp; strFilename: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FileName to Detach file<br /> '..............................................................................................................................................<br /> ' Return values:<br /> '..............................................................................................................................................</em><br />  <strong>Const</strong> errNoError &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>' okay</em><br />  <strong>Const</strong> errNoAttachments &nbsp;= 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>' No Attachments found in document<br /> '#############################################################</em><br /> <br />  <strong>Const</strong> GetFileNamesMacro$ = "@AttachmentNames"<br />  <strong>Const</strong> GetFileNumberMacro$ = "@Attachments"<br /> <br />  <strong>Dim</strong> embObj <strong>As</strong> NotesEmbeddedObject <br />  &nbsp;<strong>Dim</strong> rtItem <strong>As</strong> NotesRichTextItem<br /> <br />  <strong>Dim</strong> strNotesDataDirectory <strong>As</strong> <strong>String</strong><br />  <strong>Dim</strong> strSafeIDFile <strong>As</strong> <strong>String</strong><br />  <strong>Dim</strong> AttachmentsNames <strong>As</strong> <strong>Variant</strong><br />  <strong>Dim</strong> AttachmentsNumber <strong>As</strong> <strong>Variant</strong><br />  <strong>Dim</strong> strSearch <strong>As</strong> <strong>String</strong><br />  <strong>Dim</strong> intAttachNumber <strong>As</strong> <strong>Integer</strong><br /> <br />  <strong>On</strong> <strong>Error</strong> <strong>Goto</strong> ProcessError<br /> <br />  AttachmentsNames = Evaluate(getFileNamesMacro$, doc) <em>'Get the name(s) of the files attached in the current document</em><br />  AttachmentsNumber = Evaluate(getFileNumberMacro$, doc) <em>'Get the name(s) of the files attached in the current document</em><br /> <br />  <strong>If</strong> AttachmentsNumber(0) > 0 &nbsp;<strong>Then</strong><br />  &nbsp; &nbsp; <strong>If</strong> strFilename = "" <strong>Then</strong><br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp; <em>' We want to detach ALL attachments using their original names</em><br />  &nbsp; &nbsp; &nbsp; &nbsp; intAttachNumber = 0 <em>'Set the document file counter to 0 for each document</em><br />  &nbsp; &nbsp; &nbsp; &nbsp; <strong>Forall</strong> a <strong>In</strong> AttachmentsNames<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Set</strong> embObj = doc.GetAttachment(AttachmentsNames(intAttachNumber))<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>If</strong> <strong>Not</strong> (embObj <strong>Is</strong> <strong>Nothing</strong>) <strong>Then</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>If</strong> embObj.<strong>Type</strong> = EMBED_ATTACHMENT <strong>Then</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Err</strong> = 0<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>On</strong> <strong>Error</strong> Resume <strong>Next</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Call</strong> embObj.ExtractFile(embObj.Name)<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>On</strong> <strong>Error</strong> <strong>Goto</strong> ProcessError<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>End</strong> <strong>If</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>End</strong> <strong>If</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; intAttachNumber = intAttachNumber + 1 <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>End</strong> <strong>Forall</strong><br />  &nbsp; &nbsp; <strong>Else</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; <em>' We want to detach the first attachment under the given names</em><br />  &nbsp; &nbsp; &nbsp; &nbsp; <strong>Set</strong> embObj = doc.GetAttachment(AttachmentsNames(0))<br />  &nbsp; &nbsp; &nbsp; &nbsp; <strong>If</strong> <strong>Not</strong> (embObj <strong>Is</strong> <strong>Nothing</strong>) <strong>Then</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>If</strong> embObj.<strong>Type</strong> = EMBED_ATTACHMENT <strong>Then</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Err</strong> = 0<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>On</strong> <strong>Error</strong> Resume <strong>Next</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Call</strong> embObj.ExtractFile(strFilename)<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>On</strong> <strong>Error</strong> <strong>Goto</strong> ProcessError<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>End</strong> <strong>If</strong><br />  &nbsp; &nbsp; &nbsp; &nbsp; <strong>End</strong> <strong>If</strong><br />  &nbsp; &nbsp; <strong>End</strong> <strong>If</strong><br /> <br />  <strong>Else</strong><br />  &nbsp; &nbsp; <em>'Document has no attachments at all</em><br />  &nbsp; &nbsp; DetachFile = errNoAttachments<br /> <br />  <strong>End</strong> <strong>If</strong><br /> <br /> SingleExit:<br /> <br />  <em>'Special operations required</em><br /> <br />  <strong>Exit</strong> <strong>Function</strong><br /> <br /> ProcessError:<br /> <br />  detachFile = <strong>Err</strong><br />  Resume SingleExit<strong><br /> <br /> End</strong> <strong>Function</strong>   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/attachments-abhaengen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/attachments-abhaengen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>URLs für das Web berechnen</title>
<pubDate>Sun, 9 Feb 2003 11:51:53 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/urls-fuer-das-web-berechnen.htm</link>
<category>Webentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/urls-fuer-das-web-berechnen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/urls-fuer-das-web-berechnen.htm</guid>
<content:encoded><![CDATA[ Um berechnete relative URLs auf z.B. andere Datenbanken der eigenen Site (z.B. im gleichen Unterverzeichnis wie die aktuelle DB) zu erstellen, ist eine "saubere" URL notwendig. Diese darf weder unerlaubte Zeichen noch hardcodierten Pfade beinhalten. <br /> <br /> Sinnvollerweise wären die Targets noch z.B. aus Konfigurations- oder Profildokumenten abzuleiten, statt in den Formeln hard zu codieren. <br /> <strong><span style="text-decoration:underline"><br /> Gestaltungselemente der eigenen DB aufrufen:</span></strong> &nbsp;<br /> <br /> _target := "/News?openView"; <br /> _webDBName := @ReplaceSubstring(@ReplaceSubstring(@Subset(@DbName; -1);" ";"+");"\\";"/"); <br /> <br /> _webDBName + _target <br /> <strong><span style="text-decoration:underline"><br /> Gestaltungselemente einer anderen DB (im gleichen Unterverzeichnis) aufrufen:</span></strong> <br /> <br /> _target := "/News.nsf/News?openView"; <br /> _webDBName := @ReplaceSubstring(@ReplaceSubstring(@Subset(@DbName; -1);" ";"+");"\\";"/"); <br /> _webFolder := @LeftBack(_webDBName; "/"); <br /> <br /> _webFolder + _target   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/urls-fuer-das-web-berechnen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/urls-fuer-das-web-berechnen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Query String einer URL mit Formelsprache auswerten</title>
<pubDate>Sun, 9 Feb 2003 11:43:25 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/query-string-einer-url-mit-formelsprache-auswerten.htm</link>
<category>Query String</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/query-string-einer-url-mit-formelsprache-auswerten.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/query-string-einer-url-mit-formelsprache-auswerten.htm</guid>
<content:encoded><![CDATA[ Bei der Erstellung von Webanwendungen werden im Rahmen von Redirections oftmals Werte an eine Maske zu übergeben sein. Notes legt diese (sofern vorhanden) in einem Feld mit dem reservierten Namen "Query_String" ab. Um in anderen Feldern oder berechneten Texten darauf zugreifen zu können, sind die übergebenen Argumente zu separaieren. <br /> <strong><span style="text-decoration:underline"><br /> Vorgehensweise:</span></strong>  <br />1. &nbsp; &nbsp; &nbsp; &nbsp;Zunächst ein Feld <strong>"Query_String"</strong>, Typ Text, Berechnet zu Anzeige, mit Wertfomel "Null" auf die Maske palzieren (sonst übergibt der Domino Server nicht den QueryString der URl an das neue Dokument. <br />2. &nbsp; &nbsp; &nbsp; &nbsp;Berechnete Texte oder Felder mit folgender Formel füllen, um einen einzelnen Parameter aus dem Query_String zu extrahieren:  <br /><br /> REM "Definiere Filter für URL Parameter: "; <br /> REM " &nbsp; .... kann beliebig angepaßt werden......."; <br /> _searchFor := "firstname"; <br /> <br /> REM "Wir wollen nicht nach Groß-/Kleinschreibung unterscheiden..."; <br /> _qs := @LowerCase(Query_String); <br /> <br /> REM "Separiere alle Parameter, definiert mit &nbsp;\'&amp;\' "; <br /> _scannedparams := @Explode(_qs; "&amp;"); <br /> <br /> REM "Extrahiere den/die gesuchten Parameter"; <br /> _paramsfound := @Right (_scannedparams; @LowerCase(_searchFor)+"="); <br /> <br /> REM "Lösche alle anderen (unzutreffenden) Parameter"; <br /> @Trim (_paramsfound) <br /> <br /> <strong><span style="text-decoration:underline"><br /> Test:</span></strong> <br /> <br /> Angenommen, die o.g. Formel ist in einer DB "Test.nsf" auf Maske "Person" verwendet worden, dann überträgt die URL  <div align=center> <br /><strong><br /> /Test.nsf/Person?OpenForm&amp;FirstName=Mickey</strong></div> <br /><br /> <br /> den Wert "Mickey" in das abhängige Feld.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/query-string-einer-url-mit-formelsprache-auswerten.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/query-string-einer-url-mit-formelsprache-auswerten.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Profildokumente nutzen (undokumentierte Funktion)</title>
<pubDate>Sat, 8 Feb 2003 12:35:27 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/profildokumente-nutzen-undokumentierte-funktion.htm</link>
<category>Profile</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/profildokumente-nutzen-undokumentierte-funktion.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/profildokumente-nutzen-undokumentierte-funktion.htm</guid>
<content:encoded><![CDATA[ Eine (noch nicht) dokumentierte Funktion in R6 erlaubt es, temporär Werte in Profilen anzulegen. Diese sind nach Beendigung der Session wieder verloren. So können einfach (und sehr schnell) Werte z.B. aus einem Agenten an einen anderen, Werte zwischen Dialogboxen oder Frames ausgetauscht werden. &nbsp;<strong><span style="text-decoration:underline"><br /> <br /> Aufruf:</span></strong> <br /> <br /> @SetProfileField(&#91;NoPersist&#93;;"MyVariable";@username)   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/profildokumente-nutzen-undokumentierte-funktion.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/profildokumente-nutzen-undokumentierte-funktion.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Versteckte Elemente (z.b. HTML Tags) in einem Dokument wieder sichtbar machen</title>
<pubDate>Wed, 15 Jan 2003 17:23:17 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/versteckte-elemente-z.b.-html-tags-in-einem-dokument-wieder-sichtbar-machen.htm</link>
<category>Sonstiges</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/versteckte-elemente-z.b.-html-tags-in-einem-dokument-wieder-sichtbar-machen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/versteckte-elemente-z.b.-html-tags-in-einem-dokument-wieder-sichtbar-machen.htm</guid>
<content:encoded><![CDATA[ Prolog: <br /> <br /> In einigen Dokumenten werden höndisch ab und an gerne HTML Tags eingefügt. Damit diese nicht in Notes Sichtbar sind, sondern nur im WebBrowser, werden diese häufig vor NotesClients verborgen. <br /> Danach ist allerdings eine Änderung des HMTL Tags nicht mehr möglich, da dieses ja nun in Notes verborgen ist ,-) <br /> <br /> Lösung: <br /> <br /> Den gesamten Bereich <strong>Ausschneiden </strong>in die Zwischenablage kopieren, danach wieder Einfügen. Schon sind alle verborgenen Elemente im Text wieder sichtbar.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/versteckte-elemente-z.b.-html-tags-in-einem-dokument-wieder-sichtbar-machen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/versteckte-elemente-z.b.-html-tags-in-einem-dokument-wieder-sichtbar-machen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Selbsterzeugte SSL Certifier in den IE übernehmen</title>
<pubDate>Mon, 2 Dec 2002 09:17:04 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/selbsterzeugte-ssl-certifier-in-den-ie-uebernehmen.htm</link>
<category>Bedienung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/selbsterzeugte-ssl-certifier-in-den-ie-uebernehmen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/selbsterzeugte-ssl-certifier-in-den-ie-uebernehmen.htm</guid>
<content:encoded><![CDATA[ Ab Version 5 des Internet Explorers hat sich die Einbettung von selbstsignierten SSL Zertifikaten in den Browser geändert. <br /> Ziel soll die Verhinderung der allgemeinen Anzeige sein. &nbsp;<br /> <img  alt="Image:Selbsterzeugte SSL Certifier in den IE übernehmen" border="0" src="http://www.mmi-consult.de/FAQ/dx/selbsterzeugte-ssl-certifier-in-den-ie-uebernehmen.htm/content/M2?OpenElement" /><br /> <br /> In diesem Fall auf Zertifikat anzeigen klicken, danach auf Zertizizierungspfad. <br /> Nun erscheint nicht nur das Serverzertifikat, sonder auch die CA .. <br /> <img  alt="Image:Selbsterzeugte SSL Certifier in den IE übernehmen" border="0" src="http://www.mmi-consult.de/FAQ/dx/selbsterzeugte-ssl-certifier-in-den-ie-uebernehmen.htm/content/M3?OpenElement" /><br /> Durch einen Doppelklick auf das Trusted Root Zertifikat erscheint folgendes Fenster. <br /> <br /> <br /> <img  alt="Image:Selbsterzeugte SSL Certifier in den IE übernehmen" border="0" src="http://www.mmi-consult.de/FAQ/dx/selbsterzeugte-ssl-certifier-in-den-ie-uebernehmen.htm/content/M4?OpenElement" /><br /> Hier nun einfach "Zertifikat installieren" klicken, danach 2 x "Weiter" und 1x Fertigstellen. <br /> Jetzt frägt der Internet Explorer, ob er das Zertifikat in seinen Stammspeicher übernehmen soll. <br /> <br /> <br /> <img  alt="Image:Selbsterzeugte SSL Certifier in den IE übernehmen" border="0" src="http://www.mmi-consult.de/FAQ/dx/selbsterzeugte-ssl-certifier-in-den-ie-uebernehmen.htm/content/M5?OpenElement" /><br /> Dieses mit "Ja" bestätigen. <br /> <br /> Von nun an kommt kein Dialog mit "als nicht vertrauenswürdig eingestuft", da das Trusted Root Zertifikat nun im Stammspeicher des IE als vertrauenswürdig angesehen wird.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/selbsterzeugte-ssl-certifier-in-den-ie-uebernehmen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/selbsterzeugte-ssl-certifier-in-den-ie-uebernehmen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>JavaScript Klassen Poster</title>
<pubDate>Mon, 2 Dec 2002 09:09:37 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/javascript-klassen-poster.htm</link>
<category>Webentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/javascript-klassen-poster.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/javascript-klassen-poster.htm</guid>
<content:encoded><![CDATA[ Eine komplette Klassenstruktur in JavaScript findet sich auf der Seite : &nbsp;<br /> <br /> http://www.dannyg.com/ref/jsquickref.html <br /> <br /> hier die Datei als Booklet und als Poster:  <ul> <li><a href="http://www.mmi-consult.de/FAQ/dx/JSB4RefBooklet.zip/$file/JSB4RefBooklet.zip" title="JSB4RefBooklet.zip"JSB4RefBooklet.zip/>JSB4RefBooklet.zip</a>  </li><li><a href="http://www.mmi-consult.de/FAQ/dx/JSB4RefPoster.zip/$file/JSB4RefPoster.zip" title="JSB4RefPoster.zip"JSB4RefPoster.zip/>JSB4RefPoster.zip</a></li></ul>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/javascript-klassen-poster.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/javascript-klassen-poster.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Felder in Kalenderdokumenten</title>
<pubDate>Fri, 8 Nov 2002 15:29:05 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/felder-in-kalenderdokumenten.htm</link>
<category>Kalender</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/felder-in-kalenderdokumenten.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/felder-in-kalenderdokumenten.htm</guid>
<content:encoded><![CDATA[  <div align=center><strong>Calendar and Scheduling</strong></div> <br /><br /> <br /> <strong><br /> Components of Calendar and Scheduling</strong> &nbsp; <ul> <li><strong>Appointment:</strong></li></ul><br /> The following items comprise an appointment note in a User's schedule maintained in the User's mail database. &nbsp; &nbsp; <table border=3 width=100%> <tr valign=top> <td width=0%> <td width=16%> <td width=0%> <td width=60%> <td width=0%> <td width=20%> <td width=0%> <tr valign=top> <td> <td bgcolor=#d2d2d2> <div align=center><strong><span style="text-decoration:underline">Item Name</span></strong></div> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <div align=center><strong><span style="text-decoration:underline">Description</span></strong></div> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <div align=center><strong><span style="text-decoration:underline">Constant</span></strong></div> <td> <tr valign=top> <td> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td> <tr valign=top> <td> <td><strong>$Alarm </strong> <td> <td>Alarm is on  <td> <td> <td> <tr valign=top> <td> <td><strong>$AlarmDescription</strong>  <td> <td>Shows up when alarm rings  <td> <td> <td> <tr valign=top> <td> <td><strong>$AlarmOffset</strong>  <td> <td>x minutes before or after StartDateTime  <td> <td> <td> <tr valign=top> <td> <td><strong>$BusyName</strong>  <td> <td>Fully distinguished username of person that is busy  <td> <td>MAIL_APPT_BUSYNAME_ITEM  <td> <tr valign=top> <td> <td><strong>$BusyPriority</strong>  <td> <td>Tells scheduler if time is busy or free  <td> <td>MAIL_APPT_BUSYNAME_ITEM  <td> <tr valign=top> <td> <td><strong>$CSVersion</strong>  <td> <td>&nbsp;This item is used to determine what version a cs &nbsp; &nbsp; &nbsp; document was created in  <td> <td> <td> <tr valign=top> <td> <td><strong>$NoPurge</strong>  <td> <td>End date/time (prevents note from being purged)  <td> <td>FIELD_NOPURGE  <td> <tr valign=top> <td> <td><strong>$PublicAccess</strong>  <td> <td>Private or public accessible  <td> <td> <td> <tr valign=top> <td> <td><strong>_ViewIcon</strong>  <td> <td>Scheduled event Icon displayed  <td> <td> <td> <tr valign=top> <td> <td><strong>AppointmentType</strong>  <td> <td>Type of scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>apptUNID</strong>  <td> <td>UNID of the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>Body</strong>  <td> <td>Detailed description of the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>BookFreeTime</strong>  <td> <td>Correspond to the "Pencil in" check box in the Notes UI  <td> <td> <td> <tr valign=top> <td> <td><strong>CalendarDateTime</strong>  <td> <td>Causes appointment to show up in Calendar View  <td> <td> <td> <tr valign=top> <td> <td><strong>CHAIR</strong>  <td> <td>Fully distinguished name of the mail file owner  <td> <td> <td> <tr valign=top> <td> <td><strong>EndDate</strong>  <td> <td>End date/time of the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>EndDateTime</strong>  <td> <td>End date/time of the scheduled event  <td> <td>MAIL_APPT_ENDTIME_ITEM  <td> <tr valign=top> <td> <td><strong>EndTime</strong>  <td> <td>End date/time of the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>ExcludeFromView</strong>  <td> <td>Prevents non sent appts from showing up in drafts view  <td> <td> <td> <tr valign=top> <td> <td><strong>From</strong>  <td> <td>Fully distinguished username  <td> <td>MAIL_FROM_ITEM  <td> <tr valign=top> <td> <td><strong>Form</strong>  <td> <td>What form to display  <td> <td>FIELD_FORM  <td> <tr valign=top> <td> <td><strong>ORGTABLE</strong>  <td> <td>Set for the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>Principal</strong>  <td> <td>Fully distinguished name of the mail file owner  <td> <td> <td> <tr valign=top> <td> <td><strong>SEQUENCENUM</strong>  <td> <td>Keeps the scheduled event ordered  <td> <td>MAIL_APPT_SEQUENCE_ITEM  <td> <tr valign=top> <td> <td><strong>StartDate</strong>  <td> <td>Start date/time of the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>StartDateTime</strong>  <td> <td>Start date/time of the scheduled event  <td> <td>MAIL_APPT_STARTTIME_ITEM  <td> <tr valign=top> <td> <td><strong>StartTime</strong>  <td> <td>Start date/time of the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>Subject</strong>  <td> <td>Brief description of the scheduled event  <td> <td>MAIL_SUBJECT_ITEM  <td> <tr valign=top> <td> <td> <td> <td> <td> <td> <td></table> <br /> <br /><br /> <br /> Use NSFItemAppend<strong> </strong>API to add each item to the appointment note.  <br /> <ul> <li><strong>Meeting Invitation:</strong> </li><li>Established meeting invitation note: </li></ul><br /> To create an invitation without sending the invitation notice, use:  <ul> <li>The items described above for creating an Appointment note, and  </li><li>The following items. <table border=3 width=100%> <tr valign=top> <td width=0%> <td width=18%> <td width=0%> <td width=64%> <td width=0%> <td width=13%> <td width=0%> <tr valign=top> <td> <td bgcolor=#d2d2d2> <div align=center><strong><span style="text-decoration:underline">Item Name</span></strong></div> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <div align=center><strong><span style="text-decoration:underline">Description</span></strong></div> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <div align=center><strong><span style="text-decoration:underline">Constant</span></strong></div> <td> <tr valign=top> <td> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td> <tr valign=top> <td> <td><strong>CopyTo </strong> <td> <td>Fully distinguished name(s) of the Optional invitee(s)  <td> <td> <td> <tr valign=top> <td> <td><strong>SendTo</strong>  <td> <td>Fully distinguished name(s) of the Primary invitee(s)  <td> <td> <td> <tr valign=top> <td> <td><strong>BlindCopyTo</strong>  <td> <td>Fully distinguished name(s) of FYI invitee(s)  <td> <td> <td></table></li></ul> <br /><br /> <br /> Use NSFItemAppend<strong> </strong>API to add each item to the meeting invitation note. <br />  <ul> <li>Meeting invitation event note:</li></ul><br /> Once the meeting invitation is initiated, one or more of the following events will take place:  <ul> <li>Meeting invitation originator <strong>sends</strong> the meeting invitation to invitees  </li><li>Invitee <strong>counters </strong>the meeting time  </li><li>Meeting invitation originator <strong>re-schedules </strong>the meeting  </li><li>Invitee <strong>accepts </strong>the meeting invitation  </li><li>Invitee <strong>declines </strong>the meeting invitation  </li><li>Invitee <strong>delegate </strong>the meeting invitation  </li><li>Meeting invitation originator <strong>confirms </strong>the meeting  </li><li>Meeting invitation originator <strong>cancels </strong>the meeting</li></ul><br /> For each event, the "event owner" creates/updates the current message note, and sends out a responding message note. &nbsp; Item to be included in either kind of the notes are:  <ul> <li>The items described above for creating an Appointment note,  </li><li>The items described above for creating an established meeting invitation note, and  </li><li>The following items.</li></ul>&nbsp; <br /> See the <em>Summary of Invitation Event Note Items</em>section for summarized information. &nbsp;  <table border=3 width=100%> <tr valign=top> <td width=0%> <td width=17%> <td width=0%> <td width=71%> <td width=0%> <td width=8%> <td width=0%> <tr valign=top> <td> <td bgcolor=#d2d2d2> <div align=center><strong><span style="text-decoration:underline">Item Name</span></strong></div> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <div align=center><strong><span style="text-decoration:underline">Description</span></strong></div> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <div align=center><strong><span style="text-decoration:underline">Constant</span></strong></div> <td> <tr valign=top> <td> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td bgcolor=#d2d2d2> <td> <tr valign=top> <td> <td>$CSFlags  <td> <td>Mainly used for repeating entries; Determines what type of repeating entry a document is.  <td> <td> <td> <tr valign=top> <td> <td><strong>_ViewIcon2</strong>  <td> <td>Secondary icon to display in a view column  <td> <td> <td> <tr valign=top> <td> <td><strong>Delegator</strong>  <td> <td>Fully distinguished name of the delegator  <td> <td> <td> <tr valign=top> <td> <td><strong>Delegee</strong>  <td> <td>Fully distinguished name of the person being delegated to  <td> <td> <td> <tr valign=top> <td> <td><strong>FormToUse</strong>  <td> <td>Only used by UI when sending a notice with additional comments  <td> <td> <td> <tr valign=top> <td> <td><strong>NewEndDate</strong>  <td> <td>New End date/time of the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>NewEndTime</strong>  <td> <td>New End date/time of the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>NewStartDate</strong>  <td> <td>New Start date/time of the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>NewStartTime</strong>  <td> <td>New Start date/time of the scheduled event  <td> <td> <td> <tr valign=top> <td> <td><strong>NoticeType</strong>  <td> <td>Type of the notice  <td> <td> <td> <tr valign=top> <td> <td><strong>OptionalAttendees</strong>  <td> <td>Fully distinguished name(s) of the Optional invitee(s)  <td> <td> <td> <tr valign=top> <td> <td><strong>Recipients</strong>  <td> <td>Complete list of invitees  <td> <td> <td> <tr valign=top> <td> <td><strong>Requiredattendees</strong>  <td> <td>Fully distinguished name(s) of thePrimary invitee(s)  <td> <td> <td> <tr valign=top> <td> <td><strong>StatusUpdate</strong>  <td> <td>Details of the event status  <td> <td> <td> <tr valign=top> <td> <td> <td> <td> <td> <td> <td></table> <br /> <br /><br /> <br /> <br />  &nbsp; <ul> <li><strong>Summary of Invitation Event Note Items </strong></li></ul><br /> The following 2 tables document different item values required for a specific meeting invitation event: <strong>Invitation</strong>, <strong>Countering</strong>, <strong>Re-scheduling</strong>, <strong>Accepting</strong>,<strong> Declining</strong>, <strong>Delegating</strong>, <strong>Cancelled </strong>and <strong>Confirmed.</strong>  <table border> <tr valign=top> <td><strong><sup>Legend:</sup></strong> <br /> <strong><sup><br /> (1) </sup></strong><sup>denotes a note to be modified or created for the current "event owner" when the given event occurs.</sup> <strong><sup><br /> (2)</sup></strong><sup> denotes a message note to be sent out when the given event occurs.</sup> <strong><sup><br /> (3)</sup></strong><sup> denotes a message note to be sent to meeting invitation originator when the delegating event occurs.</sup> <strong><sup><br /> (4)</sup></strong><sup> denotes a message note to be sent to delegee when the delegating event occurs.</sup> <strong><br /> --</strong><sup> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- indicates the item is not required for the given event.</sup> <strong><em><br /> italic font</em></strong><sup> - indicates the description of the item value.</sup> <strong><br /> NULL</strong><sup> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- indicates a NULL value.</sup> <strong><br /> helv font<sup> &nbsp; </sup></strong><sup>- indicates the text string of the item value.</sup></table> <br /> <br /><br />  <table border=3 width=100%> <tr valign=top> <td width=18%> <td width=13% bgcolor=#e1e1e1> <div align=center><strong>Invita-</strong> <strong><br /> tion</strong></div> <td width=7% bgcolor=#e1e1e1> <td width=14% bgcolor=#e1e1e1> <div align=center><strong>Counter- ing</strong></div> <td width=7% bgcolor=#e1e1e1> <td width=11% bgcolor=#e1e1e1> <div align=center><strong>Re-</strong> <strong><br /> schedule</strong></div> <td width=12% bgcolor=#e1e1e1> <div align=center><strong>Accept-</strong> <strong><br /> ing</strong></div> <td width=13% bgcolor=#e1e1e1> <tr valign=top> <td> <td> <div align=center>&nbsp;<strong><sup> </sup></strong><strong><sup>(1)</sup></strong></div> <td> <div align=center>&nbsp;<strong><sup> </sup></strong><strong><sup>(2)</sup></strong></div> <td> <div align=center>&nbsp;<strong><sup>(1)</sup></strong></div> <td> <div align=center>&nbsp; <strong><sup>(2)</sup></strong></div> <td> <div align=center>&nbsp;<sup> </sup><strong><sup>(2)</sup></strong></div> <td> <div align=center><strong><sup>(1)</sup></strong></div> <td> <div align=center>&nbsp;<strong><sup>(2)</sup></strong></div> <tr valign=top> <td>$BusyName  <td><em>current &nbsp;user</em>  <td>--  <td><em>current user</em>  <td>--  <td>--  <td><em>current user</em>  <td>--  <tr valign=top> <td>$BusyPriority  <td>1  <td>--  <td>2  <td>--  <td>--  <td>1  <td>--  <tr valign=top> <td>$CSFlags  <td>--  <td>--  <td>--  <td>w  <td>w  <td>--  <td>w  <tr valign=top> <td>$REF  <td>--  <td>--  <td>--  <td><em>yes</em>  <td><em>yes</em>  <td>--  <td><em>yes</em>  <tr valign=top> <td>_ViewIcon  <td>158  <td>133  <td>39  <td>39  <td>33  <td>158  <td>83  <tr valign=top> <td>_ViewIcon2  <td> <td> <td> <td> <td> <td> <td>11  <tr valign=top> <td>CopyTo  <td>NULL  <td><em>yes</em>  <td><em>yes</em>  <td><em>yes</em>  <td><em>yes</em>  <td><em>yes</em>  <td><em>yes</em>  <tr valign=top> <td>Delegator  <td>--  <td>--  <td>--  <td>--  <td>--  <td>--  <td>--  <tr valign=top> <td>Delegee  <td>--  <td>--  <td><em>yes</em>  <td>--  <td>--  <td>--  <td>--  <tr valign=top> <td>Form  <td>appointment  <td>notice  <td>notice  <td>notice  <td>notice  <td>notice  <td>appointment  <tr valign=top> <td>FormToUse  <td> <td> <td> <td> <td> <td> <td>notice  <tr valign=top> <td>NewEndDate  <td>--  <td>--  <td><em>yes</em>  <td><em>yes</em>  <td>--  <td>--  <td>--  <tr valign=top> <td>NewEndTime  <td>--  <td>--  <td><em>yes</em>  <td><em>yes</em>  <td>--  <td>--  <td>--  <tr valign=top> <td>NewStartDate  <td>--  <td>--  <td><em>yes</em>  <td><em>yes</em>  <td>--  <td>--  <td>--  <tr valign=top> <td>NewStartTime  <td>--  <td>--  <td><em>yes</em>  <td><em>yes</em>  <td>--  <td>--  <td>--  <tr valign=top> <td>NoticeType  <td>--  <td>I  <td>T  <td>T  <td>U  <td>A  <td>A  <tr valign=top> <td>Recipients  <td><em>yes</em>  <td>--  <td>--  <td>--  <td>--  <td>--  <td>--  <tr valign=top> <td>SEQUENCENUM  <td>1  <td>1  <td>1  <td>1  <td>3  <td>1  <td>3  <tr valign=top> <td>StatusUpdate  <td>--  <td>--  <td><em>yes</em>  <td>-  <td>-  <td><em>yes</em>  <td><em>yes</em>  <tr valign=top> <td> <td> <div align=center><strong><sup>(1)</sup></strong></div> <td> <div align=center>&nbsp;<strong><sup>(2)</sup></strong></div> <td> <div align=center><sup>&nbsp;</sup><strong><sup>(1)</sup></strong></div> <td> <div align=center><sup>&nbsp;</sup><strong><sup>(2)</sup></strong></div> <td> <div align=center>&nbsp;<sup> </sup><strong><sup>(2)</sup></strong></div> <td> <div align=center>&nbsp;<strong><sup>(1)</sup></strong></div> <td> <div align=center>&nbsp;<sup> </sup><strong><sup>(2)</sup></strong></div> <tr valign=top> <td> <td bgcolor=#e1e1e1> <div align=center><strong>Invita-</strong> <strong><br /> tion</strong></div> <td bgcolor=#e1e1e1> <td bgcolor=#e1e1e1> <div align=center><strong>Counter- ing</strong></div> <td bgcolor=#e1e1e1> <td bgcolor=#e1e1e1> <div align=center><strong>Re-</strong> <strong><br /> schedule</strong></div> <td bgcolor=#e1e1e1> <div align=center><strong>Accept-</strong> <strong><br /> ing</strong></div> <td bgcolor=#e1e1e1></table> <br /> <br /><br />  <table border=3 width=100%> <tr valign=top> <td width=18%> <td width=12% bgcolor=#e1e1e1> <div align=center><strong>Declin- ing</strong></div> <td width=7% bgcolor=#e1e1e1> <td width=12% bgcolor=#e1e1e1> <td width=14% bgcolor=#e1e1e1> <div align=center><strong>Delegat- ing</strong></div> <td width=7% bgcolor=#e1e1e1> <td width=14% bgcolor=#e1e1e1> <div align=center><strong>Cancelled</strong></div> <td width=13% bgcolor=#e1e1e1> <div align=center><strong>Confirm- ed</strong></div> <tr valign=top> <td>
 <td> <div align=center><sup>&nbsp;</sup><strong><sup>(1)</sup></strong></div> <td> <div align=center>&nbsp;<sup> </sup><strong><sup>(2)</sup></strong></div> <td> <div align=center>&nbsp;<sup> </sup><strong><sup>(1)</sup></strong></div> <td> <div align=center>&nbsp;<strong><sup>(3)</sup></strong></div> <td> <div align=center>&nbsp;<sup> </sup><strong><sup>(4)</sup></strong></div> <td> <div align=center><strong>&nbsp;</strong><strong><sup>(2)</sup></strong></div> <td> <div align=center>&nbsp;<strong> </strong><strong><sup>(2)</sup></strong></div> <tr valign=top> <td>$BusyName  <td><em>current &nbsp;user</em>  <td>--  <td><em>current user</em>  <td>--  <td>--  <td><em>--</em>  <td>--  <tr valign=top> <td>$BusyPriority  <td>2  <td>--  <td>2  <td>--  <td>--  <td>--  <td>--  <tr valign=top> <td>$CSFlags  <td>--  <td>w  <td>--  <td>w  <td>w  <td>w  <td>w  <tr valign=top> <td>$REF  <td>--  <td><em>yes</em>  <td>--  <td><em>yes</em>  <td><em>--</em>  <td><em>yes</em>  <td><em>yes</em>  <tr valign=top> <td>_ViewIcon  <td>84  <td>84  <td>84  <td>84  <td>133  <td>81  <td>10  <tr valign=top> <td>_ViewIcon2  <td> <td> <td> <td> <td> <td>11  <td>11  <tr valign=top> <td>CopyTo  <td><em>yes</em>  <td><em>yes</em>  <td><em>yes</em>  <td><em>yes</em>  <td><em>yes</em>  <td><em>yes</em>  <td><em>yes</em>  <tr valign=top> <td>Delegator  <td>--  <td>--  <td>--  <td>--  <td><em>yes</em>  <td>--  <td>--  <tr valign=top> <td>Delegee  <td><em>yes</em>  <td>--  <td><em>yes</em>  <td><em>yes</em>  <td>--  <td>--  <td>--  <tr valign=top> <td>Form  <td>notice  <td>notice  <td>notice  <td>notice  <td>notice  <td>(ReplyNotice)  <td>notice  <tr valign=top> <td>FormToUse  <td>--  <td>--  <td>--  <td>--  <td>--  <td>notice  <td>notice  <tr valign=top> <td>NewEndDate  <td><em>yes</em>  <td>--  <td><em>yes</em>  <td>--  <td>--  <td>--  <td>--  <tr valign=top> <td>NewEndTime  <td><em>yes</em>  <td>--  <td><em>yes</em>  <td>--  <td>--  <td>--  <td>--  <tr valign=top> <td>NewStartDate  <td><em>yes</em>  <td>--  <td><em>yes</em>  <td>--  <td>--  <td>--  <td>--  <tr valign=top> <td>NewStartTime  <td><em>yes</em>  <td>--  <td><em>yes</em>  <td>--  <td>--  <td>--  <td>--  <tr valign=top> <td>NoticeType  <td>R  <td>R  <td>D  <td>D  <td>L  <td>C  <td>N  <tr valign=top> <td>Recipients  <td>--  <td>--  <td>--  <td>--  <td>--  <td>--  <td>--  <tr valign=top> <td>SEQUENCENUM  <td>1  <td>1  <td>1  <td>1  <td>1  <td>3  <td>3  <tr valign=top> <td>StatusUpdate  <td><em>yes</em>  <td>--  <td><em>yes</em>  <td>--  <td>--  <td><em>yes</em>  <td><em>yes</em>  <tr valign=top> <td> <td> <div align=center>&nbsp;<sup> </sup><strong><sup>(1)</sup></strong></div> <td> <div align=center><sup>&nbsp;</sup><strong><sup>(2)</sup></strong></div> <td> <div align=center>&nbsp;<strong><sup>(1)</sup></strong></div> <td> <div align=center>&nbsp; <strong><sup>(3)</sup></strong></div> <td> <div align=center><sup>&nbsp;</sup><strong><sup>(4)</sup></strong></div> <td> <div align=center><strong><sup>(2)</sup></strong></div> <td> <div align=center><sup>&nbsp;</sup><strong><sup>(2)</sup></strong></div> <tr valign=top> <td> <td bgcolor=#e1e1e1> <div align=center><strong>Declin- ing</strong></div> <td bgcolor=#e1e1e1> <td bgcolor=#e1e1e1> <td bgcolor=#e1e1e1> <div align=center><strong>Delegat- ing</strong></div> <td bgcolor=#e1e1e1> <td bgcolor=#e1e1e1> <div align=center><strong>Cancelled</strong></div> <td bgcolor=#e1e1e1> <div align=center><strong>Confirm-</strong> <strong><br /> ed</strong></div></table> <br /> <br /><br /> <br /> <br /> <br /> <br /> <br /> The following sections describe each of the items alphabetically. <br /> <strong><br /> $Alarm</strong> <br /> The $Alarm item is of type TYPE_NUMBER and indicates the alarm is on. &nbsp;Set this value to 1. <br /> <strong><br /> $AlarmOffset</strong> <br /> The $AlarmOffset item is of type TYPE_NUMBER and indicates when the alarm should ring (negative = x minutes before StartDateTime or positive = x minutes after). <br /> <strong><br /> $BusyName</strong> <br /> The $BusyName item is of type TYPE_TEXT and contains the fully distinguished username of the person that is busy in that timeslot (ex. CN=Jane Doe/OU&Ecirc;M/O=Lotus) . <br /> <strong><br /> $BusyPriority</strong> <br /> The $BusyPriority item is of type TYPE_TEXT and tells the scheduler whether this schedule event should be considered busy or free time: <br /> <br /> "<strong>1</strong>" = &nbsp;Busy Value <br /> "<strong>2</strong>" = &nbsp;Not Busy &nbsp; &nbsp; <br /> <br />  <strong>$CSFlags</strong> <br /> The $CSFlags item is of type TYPE_TEXT. <br /> <br /> "<strong>m</strong>"= R5 repeat message <br /> "<strong>i</strong>" &nbsp; = R5 repeat instance <br />  &nbsp;<strong><br /> $CSVersion</strong> <br /> The $CSVersion item is of type TYPE_TEXT. <br />  &nbsp;<br /> Non existent for 4.5/4.6 documents <br /> "<strong>2</strong>" = &nbsp;R5 documents <br /> <strong><br /> $NoPurge</strong> <br /> The $NoPurge item is of type TYPE_TIME and contains the ending date/time. &nbsp;This item prevents the note from being purged by replication before the schedule event has occurred. &nbsp;Use ConvertTextToTIMEDATE for the ending time string (ex. "03/16/2000 05:00 pm"). <br /> <strong><br /> $PublicAccess</strong> <br /> The $PublicAccess item is of type TYPE_TEXT and indicates if this scheduled event can be viewed by public: <br /> <br /> "<strong>1</strong>" indicates this scheduled event can be viewed by the public <strong><br /> Skip this item</strong> to mark it as Private <br /> <strong><br /> _ViewIcon</strong> <br /> The _ViewIcon item is of type TYPE_NUMBER and indicates what view icon to use. &nbsp;When creating an appointment, set this value to 160. &nbsp;See the <em>Summary of Invitation Event Note Items</em>section for the used value when creating a meeting invitation. <br /> <strong><br /> _ViewIcon2</strong> <br /> The _ViewIcon2 item is of type TYPE_NUMBER. &nbsp;It is the secondary icon to display in a view column.<strong> </strong>See the <em>Summary of Invitation Event Note Items</em>section for the used value when creating a meeting invitation. <br /> <strong><br /> AppointmentType</strong> <br /> The AppointmentType item is of type TYPE_TEXT and can be one of the following values: <br /> <br /> "<strong>0</strong>" = Personal Appointment <br /> "<strong>1</strong>" = Anniversary <br /> "<strong>2</strong>" = Event <br /> "<strong>3</strong>" = Meeting Invitation <br /> "<strong>4</strong>" = Reminder  <br /><br /> <strong><br /> apptUNID </strong><br /> The apptUNID item is of type TYPE_TEXT and contains the Universal NoteID of the scheduled event. <br /> <strong><br /> Body</strong> <br /> The Body item is of type TYPE_COMPOSITE and contains the scheduled event's detailed description. <br /> <strong><br /> BookFreeTime</strong> <br /> The BookFreeTime item is of type TYPE_TEXT. &nbsp;It is the "Pencil in" check box in the Notes UI: <br /> <br /> "" &nbsp; &nbsp;= &nbsp;the not checked "Pencil in" check box <br /> "1" &nbsp;= &nbsp;the checked "Pencil in" check box <br /> <strong><br /> CalendarDateTime</strong> <br /> The CalendarDateTime is of type TYPE_TIME and contains the start date/time of the appointment. &nbsp;Adding this item to the note causes the scheduled time to show up in the calendar view. &nbsp;Use ConvertTextToTIMEDATE for CalendarDateTime string (ex. "03/16/2000 09:00 am"). &nbsp; <br /> <strong><br /> CHAIR</strong> <br /> The CHAIR item is of type TYPE_TEXT and contains the fully distinguished username of the owner of the mail database that created the calendar entry (ex. CN=Jane Doe/OU&Ecirc;M/O=Lotus) . <br /> <strong><br /> CopyTo </strong><br /> The CopyTo item is of type TYPE_TEXT or TYPE_TEXTLIST and contains the scheduled event's optional invitee(s). <br /> <strong><br /> Delegator</strong> <br /> The Delegator item is of type TYPE_TEXT and contains the fully distinguished username of the<strong> </strong>person delegating the event. <br /> <strong><br /> Delegee</strong> <br /> The Delegee item is of type TYPE_TEXT and contains the fully distinguished username of the<strong> </strong>person the event is delegated to. <br /> <strong><br /> EndDate </strong><br /> The EndDate is of &nbsp;type TYPE_TIME and is the end date/time of the scheduled event. &nbsp;Use ConvertTextToTIMEDATE for CalendarDateTime string (ex. "03/16/2000 05:00 pm"). &nbsp;It is mainly used in the UI to display a single instance of a value from a multi-valued EndDateTime item. &nbsp;It is also used in some of the Calendar view display columns. &nbsp; <br /> <strong><br /> EndDateTime</strong> <br /> The EndDateTime is of type TYPE_TIME or TYPE_TIME_RANGE and contains the end date/time of the scheduled event. &nbsp;Use ConvertTextToTIMEDATE for EndDateTime string (ex. "03/16/2000 05:00 pm"). <br />  &nbsp; &nbsp;<strong><br /> EndTime </strong><br /> The EndTime is of &nbsp;type TYPE_TIME and contains the end date/time of the scheduled event. &nbsp;Use ConvertTextToTIMEDATE for CalendarDateTime string (ex. "03/16/2000 05:00 pm"). &nbsp;It is mainly used in the UI to display a single instance of a value from a multi-valued EndDateTime item. &nbsp;It is also used in some of the Calendar view display columns. &nbsp; &nbsp; <br /> <strong><br /> ExcludeFromView</strong> <br /> The ExcludeFromView item is of type TYPE_TEXT and prevents the scheduled events that are not sent from showing up in the drafts view. &nbsp;The value of this item is "D". <br /> <strong><br /> Form</strong> <br /> The Form item is of type TYPE_TEXT and determines what form to display. &nbsp;Set this value to "Appointment" when creating an appointment. &nbsp;When creating a meeting invitation, see the <em>Summary of Invitation Event Note Items</em>sectionfor the required value. <br /> <strong><br /> FormToUse</strong> <br /> The FormToUse item is of type TYPE_TEXT. <br /> <strong><br /> From</strong> <br /> The From item is of type TYPE_TEXT and contains the fully distinguished username who created or sent it (ex. CN=Jane Doe/OU&Ecirc;M/O=Lotus). <br /> <strong><br /> NewEndDate</strong> <br /> The NewEndDate is of &nbsp;type TYPE_TIME and is the new end date/time of the scheduled event. &nbsp; <br /> <strong><br /> NewEndTime</strong> <br /> The NewEndTime is of &nbsp;type TYPE_TIME and is the new end date/time of the scheduled event. &nbsp; <br /> <strong><br /> NewStartDate</strong> <br /> The NewStartDate is of &nbsp;type TYPE_TIME and is the new start date/time of the scheduled event. &nbsp; <br /> <strong><br /> NewStartTime</strong> <br /> The NewStartTime is of &nbsp;type TYPE_TIME and is the new start date/time of the scheduled event. &nbsp; <br /> <strong><br /> NoticeType</strong> <br /> The NoticeType item is of type TYPE_TEXT and can be one of the following values: <br /> <br /> "<tt><strong>I</strong></tt>" = Invitation <br /> "<tt><strong>U</strong></tt>" = Rescheduled <br /> "<tt><strong>C</strong></tt>" = Cancelled <br /> "<tt><strong>N</strong></tt>" = Confirmed <br /> "<tt><strong>A</strong></tt>" = Accepted <br /> "<tt><strong>R</strong></tt>" = Declined <br /> "<tt><strong>T</strong></tt>" = Countered <br /> "<tt><strong>D</strong></tt>" = Delegated <br /> "<tt><strong>L</strong></tt>" = Delegate Invited <br /> <strong><br /> OptionalAttendees</strong> <br /> The OptionalAttendees item is of type TYPE_TEXT and contains the fully distinguished username of the Optional invitees (ex. CN=Jane Doe/OU&Ecirc;M/O=Lotus). <br /> <strong><br /> ORGTABLE</strong> <br /> The ORGTABLE item is of type TYPE_TEXT. &nbsp;It is set to "C0" for Calendar. <br /> <strong><br /> Principal</strong> <br /> The Principal item is of type TYPE_TEXT and contains the fully distinguished username of the owner of the mail database (ex. CN=Jane Doe/OU&Ecirc;M/O=Lotus). <br /> <strong><br /> Recipients</strong> <br /> The Recipients item is of type TYPE_TEXT or TYPE_TEXTLIST and contains the fully distinguished username(s) of all the invitees (ex. CN=Jane Doe/OU&Ecirc;M/O=Lotus). <br /> <strong><br /> RequiredAttendees</strong> <br /> The RequiredAttendees item is of type TYPE_TEXT and contains the fully distinguished username of the Primary invitees (ex. CN=Jane Doe/OU&Ecirc;M/O=Lotus). <br /> <strong><br /> SendTo </strong><br /> The SendTo item is of type TYPE_TEXT or TYPE_TEXTLIST and contains the scheduled event's primary invitee(s). <br /> <strong><br /> SEQUENCENUM</strong> <br /> The SEQUENCENUM item is of type TYPE_NUMBER and keeps the scheduled events ordered. &nbsp;Set this value to 1 initially. <br /> <strong><br /> StartDate</strong> <br /> The StartDate is of &nbsp;type TYPE_TIME and is the start date/time of the scheduled event. &nbsp;Use ConvertTextToTIMEDATE for CalendarDateTime string (ex. "03/16/2000 09:00 am"). &nbsp; It is mainly used in the UI to display a single instance of a value from a multi-valued StartDateTime item. &nbsp;It is also used in some of the Calendar view display columns. &nbsp; &nbsp; &nbsp; <br /> <strong><br /> StartDateTime</strong> <br /> The StartDateTime is of type TYPE_TIME or TYPE_TIME_RANGE and contains the start date/time of the scheduled event. &nbsp;Use ConvertTextToTIMEDATE for StartDateTime string (ex. "03/16/2000 09:00 am"). &nbsp;  <br /><strong><br /> StartTime</strong> <br /> The StartTime is of &nbsp;type TYPE_TIME and is the start date/time of the scheduled event. &nbsp;Use ConvertTextToTIMEDATE for CalendarDateTime string (ex. "03/16/2000 09:00 am"). &nbsp; It is mainly used in the UI to display a single instance of a value from a multi-valued StartDateTime item. &nbsp;It is also used in some of the Calendar view display columns. &nbsp; &nbsp; &nbsp; <br /> <strong><br /> StatusUpdate</strong> <br /> The StatusUpdate item is of type TYPE_COMPOSITE and contains the scheduled event's status description. <br /> <strong><br /> Subject</strong> <br /> The Subject item is of type TYPE_TEXT and contains the scheduled event's brief description. <br /> <br />  <br /><strong><br /> Adding a Scheduled Event to a User's Schedule</strong> <br /> <br /> This section describes how to use the C API to add an appointment &nbsp;or a meeting invitation to a User's schedule. &nbsp;Following are the basic steps and the corresponding API functions to perform this task. &nbsp;For details, refer to the AddSchedule() routine in the <strong>SCHEDULE</strong> sample program in the misc\schedule directory. <br /> <br /> Note: &nbsp;The specified scheduled event time must be within a day's boundary. <br /> <br /> 1. Open the mail database (as specified on the command line) for a specified User. (NSFDbOpen) <br /> <br /> 2. Create a Note in the database (NSFNoteCreate).<br /> <br /> 3. Set the NOTE CLASS to NOTE_CLASS_DOCUMENT (NSFNoteSetInfo). <br /> <br /> 4. Allocate a buffer for data to copy each item's value to (OSMemAlloc). <br /> <br /> 5. &nbsp;Add each of the appropriate Items mentioned in the <em>Components of Calendar and Scheduling</em> section<strong> </strong>to the Note (NSFItemAppend). <br /> <br /> 6. Update the Note (NSFNoteUpdate). <br /> <br /> 7. &nbsp;Free the data buffer (OSMemFree). <br /> <br /> 8. &nbsp;Close the Note and the Database.  <br /><br /> <br /> <strong><br /> Deleting a Scheduled Event from a User's Schedule</strong> <br /> <br /> This section describes how to use the C API to delete a scheduled event from a User's schedule. &nbsp;Following are the basic steps and the corresponding API functions to perform this task. &nbsp;For details, refer to the ScheduleTask() routine in the <strong>SCHEDULE</strong> sample program in the misc\schedule directory. <br /> <br /> 1. Create an empty text list data structure. (ListAllocate). <br /> <br /> 2. Add the current user to the list (ListAddEntry).<br /> <br /> 3. Retrieve the user's schedule container (SchRetrieve). <br /> <br /> 4. Get the first schedule in the container (SchContainer_GetFirstSchedule). <br /> <br /> 5. &nbsp;Get the busy time information from the schedule (Schedule_ExtractBusyTimeRange). <br /> <br /> 6. &nbsp;Attempt to find the "scheduled event to delete" time in the data returned. <br /> <br /> 7. &nbsp;If the time is found get the schedule list of the user (Schedule_ExtractSchedList). <br /> <br /> 8. Attempt to find the scheduled event time in the schedule list returned. <br /> <br /> 9. &nbsp;If the entry is found delete the note. <br /> <br /> <strong><br /> Query a User's Busy/Free Time Information</strong> <br /> <br /> This section describes how to use the C API to query a user's busy/free time information. &nbsp;Following are the basic steps and the corresponding API functions to perform this task. &nbsp;For details, refer to the ScheduleTask() routine in the <strong>SCHEDULE</strong> sample program in the misc\schedule directory. <br />  &nbsp;<br /> Note: &nbsp;The specified time range may extend past a day's boundary. <br /> <br /> 1. Create an empty text list data structur (ListAllocate). <br /> <br /> 2. Add the current user to the list (ListAddEntry).<br /> <br /> 3. Retrieve the user's schedule container (SchRetrieve). <br /> <br /> 4. Get the first schedule in the container (SchContainer_GetFirstSchedule). <br /> <br /> 5. Get the free time information from the schedule (Schedule_ExtractFreeTimeRange). <br /> <br /> 6. &nbsp;Get the busy time information from the schedule (Schedule_ExtractBusyTimeRange).  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/felder-in-kalenderdokumenten.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/felder-in-kalenderdokumenten.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Vorschaufenster im R5 Mailfile einsetzen</title>
<pubDate>Fri, 8 Nov 2002 15:26:06 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/vorschaufenster-im-r5-mailfile-einsetzen.htm</link>
<category>Mailfile</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/vorschaufenster-im-r5-mailfile-einsetzen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/vorschaufenster-im-r5-mailfile-einsetzen.htm</guid>
<content:encoded><![CDATA[ In R4 konnten Benutzer die Dokumentvorschau permanent aktivieren. In R5 fehlt diese Funktion. Um Sie dennoch nutzen zu können, fügen Sie Ihrem Mailtemplate folgende Design-Elemente hinzu: <br /> <strong><span style="text-decoration:underline"><br /> 1. Agent zum Ein-/Ausschalten</span></strong> <br /> <strong><br /> Name:</strong> &nbsp; &nbsp; &nbsp; &nbsp;"Enable/Disable Preview Pane" <strong><br /> Typ:</strong> &nbsp; &nbsp; &nbsp; &nbsp;"Shared Agent" <strong><br /> Wann soll der Agent laufen:</strong> "Manuell aus der Liste der Aktionen" <strong>&nbsp;<br /> Welche Dokumente soll der Agent bearbeiten:</strong> "Einmal ausführen (@Commands können verwendet werden)" <br /> <br /> Formel <br /> <br /> _isOnMsg := "Preview Pane is currently ENABLED. Should it be disabled?"; <br /> _isOffMsg := "Preview Pane is currently DISABLED. Should it be enabled?"; <br /> <br /> _actualmode := @GetProfileField("(Preferences)"; "PreviewPane"); <br /> <br /> _continue := @If (_actualmode = ""; @Do(@SetProfileField("(Preferences)"; "PreviewPane"; 0);@Return(""));""); <br /> <br /> _response := @If (_actualmode=0 ; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;@Prompt(&#91;YESNO&#93;; "Tools"; _isOffMsg); <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;@Prompt(&#91;YESNO&#93;; "Tools"; _isOnMsg)); <br /> <br /> _newMode:= @If (_actualmode=0; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;@If(_response; 1; 0); <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;@If(_response; 0; 1)); <br /> <br /> @SetProfileField("(Preferences)"; "PreviewPane"; _newMode); <br /> @Command(&#91;ShowHidePreviewPane&#93;; @Text(_newMode)) <br /> <strong><span style="text-decoration:underline"><br /> 2. Datenbankscript zum aktivieren/deaktivieren</span></strong> <strong><br /> Event: &nbsp; &nbsp; &nbsp; &nbsp;</strong>Postopen <br /> <br /> Formel <br /> <br /> _actualMode := @GetProfileField("(Preferences)"; "PreviewPane"); <br /> _Mode := @If (_actualMode = ""; 0; _actualMode); <br /> @Command(&#91;ShowHidePreviewPane&#93;; @Text(_Mode))   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/vorschaufenster-im-r5-mailfile-einsetzen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/vorschaufenster-im-r5-mailfile-einsetzen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Fehlermeldungen von LotusScript Laufzeitfehlern</title>
<pubDate>Thu, 11 Jul 2002 17:44:44 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/fehlermeldungen-von-lotusscript-laufzeitfehlern.htm</link>
<category>Fehlerbehandlung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/fehlermeldungen-von-lotusscript-laufzeitfehlern.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/fehlermeldungen-von-lotusscript-laufzeitfehlern.htm</guid>
<content:encoded><![CDATA[ Um Laufzeitfehler von LotuScript Funktionen (Agenten, Masken, Buttons) abzufangen und analysieren zu können dient nachfolgende DB. Diese ist als Mail-In DB einzurichten und empfängt die Fehlermeldungen aus Ihren Anwendungen. Hierzu müssen in den Anwendungen jeweils die vorbereitetet Script Bibliothek eingebaut werden und im Rahmen Ihres Error-Handlers die beigefügt Error-Routine gerufen werden. Einzelnheiten finden sich im "About-Document" der Datenbank. <br />  <br /> <br /> Diese Datenbank als zentrales Meldeziel für alle Ihre Anwendungen einbauen..... Der Aufwand für die Analyse und Beseitigung Ihrer (vielleicht sporadisch) auftretenden Laufzeitfehler sink erheblich. Bei Interaktiver Nutzung sind wir so auch nicht mehr auf (vielleicht) unvollständige und aussagelose Fehlerbescreibungen von Anwendern angewiesen....  <ul> <li><a href="http://www.mmi-consult.de/FAQ/dx/LSErrors.exe/$file/LSErrors.exe" title="LSErrors.exe"LSErrors.exe/>LSErrors.exe</a></li></ul>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/fehlermeldungen-von-lotusscript-laufzeitfehlern.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/fehlermeldungen-von-lotusscript-laufzeitfehlern.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Dynamische Tabellen erstellen</title>
<pubDate>Thu, 11 Jul 2002 17:16:52 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/dynamische-tabellen-erstellen.htm</link>
<category>Tabellen</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/dynamische-tabellen-erstellen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/dynamische-tabellen-erstellen.htm</guid>
<content:encoded><![CDATA[ Um mehrere Werte zu erfassen und zu verwalten eignen sich Tabellen mit Feldern. Wenn die Anzahl der Eingabefelder nicht festgelegt werden kann, eignen sich dynamische Tabellen. Hierbei werden z.B. über Dialogboxen Werte erfaßt und im Dokument gespeichert. Diese werden dann in einer Tabelle mit einer festen Anzahl von Spalten und einer dynamischen Anzahl von Zeilen dargestellt. (Siehe hierzu Beispiel "Dynamische Tabelle"). <br />  <br /> Man kann aber eine Liste für die Erstellung/Änderung/Löschung der Einträge verwenden und die Werte im Dokument (versteckt) halten. So lassen sich auch komplexere Strukuren abbilden. <strong><span style="text-decoration:underline"><br /> <br /> ACHTUNG:</span></strong> In der Variante "Dynamische Tabelle" dürfen Feldinhalte (Eingabedaten) nicht zu lang werden, um einen fehlerhaften Zeilenumbrurch zu vermeiden. Hierzu müßten dann die Inhalte der für Tabellenanzeige berechneten Felder ggf. auf eine maximale Länge "getrimmt" werden. <br /> P.S.: &nbsp; &nbsp; &nbsp; &nbsp;Lösungsbeispiele sind vollständig in Formelsprache implementiert  <ul> <li><a href="http://www.mmi-consult.de/FAQ/dx/DynTable.exe/$file/DynTable.exe" title="DynTable.exe"DynTable.exe/>DynTable.exe</a></li></ul>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/dynamische-tabellen-erstellen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/dynamische-tabellen-erstellen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Selektierte Dokumente neu &quot;rechnen&quot;</title>
<pubDate>Mon, 17 Jun 2002 13:49:15 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/selektierte-dokumente-neu-rechnen.htm</link>
<category>Bedienung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/selektierte-dokumente-neu-rechnen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/selektierte-dokumente-neu-rechnen.htm</guid>
<content:encoded><![CDATA[ Um selektierte Dokumente in z.B. einer Ansicht neu berechnen zu lassen, einfach ein SmartIcon mit folgender Formel schreiben : <br /> <strong> <br /> @Command(&#91;ToolsRefreshSelectedDocs&#93;) </strong><br /> <br /> Danach einfach auf das SmartIcon klicken.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/selektierte-dokumente-neu-rechnen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/selektierte-dokumente-neu-rechnen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Automatische Aktionen und Entscheidungspunkte</title>
<pubDate>Fri, 24 May 2002 11:39:05 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/automatische-aktionen-und-entscheidungspunkte.htm</link>
<category>DWF</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/automatische-aktionen-und-entscheidungspunkte.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/automatische-aktionen-und-entscheidungspunkte.htm</guid>
<content:encoded><![CDATA[ Wenn in DWF auf eine automatische Aktion ein Entscheidungspunkt folgt, müssen Bedingungen der Entscheidung stets mit Formeln belegt werden. "Sonst" führt zu Laufzeitfehlern. &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/automatische-aktionen-und-entscheidungspunkte.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/automatische-aktionen-und-entscheidungspunkte.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Debug-Modes für Anwendungen</title>
<pubDate>Fri, 17 May 2002 20:07:43 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/debug-modes-fuer-anwendungen.htm</link>
<category>Fehlerbehandlung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/debug-modes-fuer-anwendungen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/debug-modes-fuer-anwendungen.htm</guid>
<content:encoded><![CDATA[ Um Laufzeitprobleme in größeren Anwendungen im laufenden Betrieb zu analysieren, ist es hilfreich diese gleich mit Debugging Hilfen programmiert zu haben.Um diese im Bedarfsfall zu aktivieren, eignen sich folgende Funktionen: <br /> <span style="text-decoration:underline"><br /> Masken oder Ansichtsaktionen zum Aktivieren/Deaktivieren:</span>  <table border width=100%> <tr valign=top> <td width=21%><strong>Bedeutung Aktion</strong>  <td width=43%><strong>Code</strong>  <td width=34%><strong>Verbergen wenn..</strong>  <tr valign=top> <td>Debug On  <td>@SetProfileField("Debug"; "Mode"; @True); <br /> @Command(&#91;RefreshHideFormulas&#93;)  <td>@GetProfileField("Debug"; "Mode")  <tr valign=top> <td>Debug Off &nbsp;  <td>@SetProfileField("Debug"; "Mode"; @False); <br /> @Command(&#91;RefreshHideFormulas&#93;)  <td>!@GetProfileField("Debug"; "Mode")</table> <br /> <br /><br /> <span style="text-decoration:underline"><br /> LotusScript Code um Debugging-Informationen zur Laufzeit auszugeben:</span> <br /> <br /> .... Handle zum Datenbank-Object "db" ermitteln... <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Set profileDoc = db.GetProfileDocument("Debug") <br />  &nbsp; &nbsp; &nbsp; &nbsp;If profileDoc.Mode(0) Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;...... <br />  &nbsp; &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;......   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/debug-modes-fuer-anwendungen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/debug-modes-fuer-anwendungen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Design-Client: Instant-Installation</title>
<pubDate>Wed, 15 May 2002 14:28:31 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/design-client-instant-installation.htm</link>
<category>Arbeitsplatzeinrichtung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/design-client-instant-installation.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/design-client-instant-installation.htm</guid>
<content:encoded><![CDATA[ Um den Designclient in eine bestehende Notes Installation nachzuinstallieren, reicht es aus im Notes-Programmverzeichnis eine Kopie der 'notes.exe' anzulegen. <br /> Die Kopie wird in 'designer.exe' umbenannt und öffnet bei Aufruf den Design-Client. &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/design-client-instant-installation.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/design-client-instant-installation.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Indirekte Adressierung</title>
<pubDate>Wed, 8 May 2002 09:51:26 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/indirekte-adressierung.htm</link>
<category>Arrays</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/indirekte-adressierung.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/indirekte-adressierung.htm</guid>
<content:encoded><![CDATA[ Ein Beispiel für indirekte Adressierung in Lotusscript. &nbsp;<br /> Auf einer Maske sind zwei Listenfelder. In Abhängigkeit eines dritten Feldes (zB. Optionsschaltflächen) soll eine der beiden Listen ausgewertet werden. <br /> <br /> Felder: <br /> selectField - Feld zur Auswahl der beiden Listenfelder; Beinhaltet den Namen des auszuwählenden Feldes (zB. "oneField"). <br /> oneField, twoField... - weitere Felder mit Listen <br /> <br /> <br /> Script-Code: <br /> Sub Click(Source As Button) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim workspace As New NotesUIWorkspace <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim uidoc As NotesUIDocument <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim item As NotesItem <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim doc As notesdocument <br />  &nbsp; &nbsp; &nbsp; &nbsp;Set uidoc = workspace.CurrentDocument <br />  &nbsp; &nbsp; &nbsp; &nbsp;Set doc = uidoc.document <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Set item = New NotesItem( doc, doc.selectField(0), "xxx" ) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Forall v In item.Values <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Messagebox( v ) <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Forall &nbsp; &nbsp; &nbsp; &nbsp; <br /> End Sub   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/indirekte-adressierung.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/indirekte-adressierung.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Mail direkt in der Mail.Box &quot;zusammenbauen&quot;</title>
<pubDate>Mon, 8 Apr 2002 15:50:43 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/mail-direkt-in-der-mail.box-zusammenbauen.htm</link>
<category>Mailrouting</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/mail-direkt-in-der-mail.box-zusammenbauen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/mail-direkt-in-der-mail.box-zusammenbauen.htm</guid>
<content:encoded><![CDATA[ Man kann eine Mail ist mit Hilfe von Lotusscript direkt in der "Mail.box" generieren. Hierbei kann man Absenderinformationen beliebig setzen (werden nicht mehr durch den Mailer der Workstation bestimmt). Diese Mail wird aber nur dann verschickt, wenn ein Feld "Recipients" enthalten ist: <br />  <br /> mdoc.Recipients="jdoe@customer.com" <br /> <br /> Der Versand erfolgt lediglich an die Empfänger, die in diesem Feld notiert wurden. Die zusätzlichen Felder "SendTo", "CopyTo" und "BlindCopyTo" dienen somit lediglich zur Visualisierung für den Benutzer. Recipients wird somit in der Regel die Summe aller Inhalte aus diesen drei Feldern beinhalten.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/mail-direkt-in-der-mail.box-zusammenbauen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/mail-direkt-in-der-mail.box-zusammenbauen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Java 1.4 Domino applets mit Domino und IE HOWTO</title>
<pubDate>Mon, 8 Apr 2002 13:09:46 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/java-1.4-domino-applets-mit-domino-und-ie-howto.htm</link>
<category>Webadministration</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/java-1.4-domino-applets-mit-domino-und-ie-howto.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/java-1.4-domino-applets-mit-domino-und-ie-howto.htm</guid>
<content:encoded><![CDATA[ Der DominoServer verwendet *.cab files im Direcotry data\domino\java. Diese werden von Java 1.4 runtime nicht mehr supportet. insofern ist folgendes auf dem server zu tun:  <ul> <li>verschieben der &nbsp;*.cabs aus &nbsp;data\domino\java  </li><li>alle *.cabs (oder *.jars) in entsprechende verzeichnisse (com, lotus, org ) entpacken .. ueberschreiben einzelner Datein ist kein Problem  </li><li>die 3 erstellten verzeichnisse ins &nbsp;data\domino\java directory kopieren.  </li><li>Requestet der Internet Explorer nun cab files wird automatisch ein failover auf die entpakten files erfolge.</li></ul>Das funktioniert auch lokal mit dem Domino Designer (preview IE). &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/java-1.4-domino-applets-mit-domino-und-ie-howto.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/java-1.4-domino-applets-mit-domino-und-ie-howto.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Automatische Weiterleitung einer URL</title>
<pubDate>Fri, 15 Feb 2002 14:39:59 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/automatische-weiterleitung-einer-url.htm</link>
<category>Webentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/automatische-weiterleitung-einer-url.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/automatische-weiterleitung-einer-url.htm</guid>
<content:encoded><![CDATA[ Um von einer Seite automatisch auf eine andere umzuleiten, genügt es, folgenden Code einzubauen: <br /> <br /> <pre>&lt;meta http-equiv="refresh" content="0; url=http://ihre.direkte.url"&gt;</pre> <br /> <br /> wobei die "0" bedeutet, dass 0 sekunden gewartet werden soll!   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/automatische-weiterleitung-einer-url.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/automatische-weiterleitung-einer-url.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Ansichten in XML ausgeben</title>
<pubDate>Tue, 5 Feb 2002 19:57:31 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/ansichten-in-xml-ausgeben.htm</link>
<category>Webentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/ansichten-in-xml-ausgeben.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/ansichten-in-xml-ausgeben.htm</guid>
<content:encoded><![CDATA[ Um Ansichten einer Notes Datenbank in andere Webanwendungen zu integrieren eignet sich gelegentlich die Übertragung der Daten im XML Format. <br /> <br /> Hierzu ist der URL das Kommando &nbsp; <div align=center> <br /><br /> "?ReadViewEntries"</div> <br /><br /> anzufügen.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/ansichten-in-xml-ausgeben.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/ansichten-in-xml-ausgeben.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Dynamische Banner</title>
<pubDate>Thu, 17 Jan 2002 09:36:03 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/dynamische-banner.htm</link>
<category>Webentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/dynamische-banner.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/dynamische-banner.htm</guid>
<content:encoded><![CDATA[ <strong><br /> <br /> form dspAdvertising</strong> <br /> <br /> This is the form, wich is displayed in the browser. To call it anonymous use the URL - extension '?ReadForm'. <br /> The form has five hidden fields. 'pathDB', 'logoList', 'timeIntervall', 'randomNumber' and 'SaveOptions' <br /> And two images. The first image is called 'logo' (On the 'HTML' - Tab -> Name) and represents the image to be displayed. The second image is a 'bling.gif'. This image contains just one invisible pixel. It is needed to start the JavaScript <strong>after</strong> loading the form. Insert on the property box -> HTML -> Other: onLoad='startUp();' <strong><br />  <br /> 'pathDB'</strong> calculates the path to the current database or reads it from a profile document <br /> eg.: thisDB := "/" + @ReplaceSubstring(@ReplaceSubstring(@Subset(@DbName; -1);" ";"+");"\\";"/"); thisDB <strong><br /> <br /> 'logoList'</strong> gets a list of all logo's from a profile document <br /> eg.: @GetProfileField("Profile";"allLogos") <strong><br /> <br /> 'timeIntervall'</strong> is the time between the switches in milliseconds. It gets its value from a profile document. (JavaScript only knows data type 'text') <br /> eg.: @Text(@GetProfileField("Profile";"timeIntervall")) <strong><br /> <br /> 'randomNumber'</strong> is a random number. It calculates a random number between zero and the number of images from 'logoList' <br /> eg.: @Text(@Round((@Elements(logoList)-1)*@Random)) <strong><br /> <br /> 'SaveOptions'</strong> prohibites saving of the document. The default value has to be '0' <strong><br /> <br /> <br /> JS - Header:</strong> <br /> <br /> var timeInt, i, aktiv; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// global variables <br /> <br /> function startUp() { <br /> // Read values from Form <br /> timeInt = document.forms&#91;0&#93;.timeIntervall.value; <br /> if (timeInt == 0) <br /> { <br /> i = document.forms&#91;0&#93;.randomNumber.value; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// get random number <br /> switchOnce(); <br /> } <br /> else <br /> { <br /> aktiv = setInterval("switchLogo()",timeInt); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // calls function 'switchLogo()' every 'timeInt' milliseconds <br /> i = 0; <br /> } <br /> } <br /> <br /> function switchLogo() { <br /> // this function switches between all graphics after a while <br /> <br /> var f = document.forms&#91;0&#93;; <br /> var pic = f.logoList&#91;i&#93;.value; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// field 'logoList' contains a list of images <br /> var pathDB = f.pathDB.value; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// database path <br /> <br /> alt0 = new Image(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// preload Image for title-bar <br /> alt0.src = pathDB + "/($LookupBanner)/" + pic + "/$File/" + pic; &nbsp; &nbsp; &nbsp; &nbsp;// get image from document <br /> document.images&#91;'logo'&#93;.src = alt0.src; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// switch image in browser <br /> <br /> i = i + 1; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// set counter for next image <br /> if(i == f.logoList.length) <br />  i = 0; <br /> } <br /> <br /> function switchOnce() { <br /> // this function switches once to a random image after reload <br /> <br /> var f = document.forms&#91;0&#93;; <br /> var pic = f.logoList&#91;i&#93;.value; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// field 'logoList' contains a list of images <br /> var pathDB = f.pathDB.value; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// database path <br /> <br /> alt0 = new Image(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// preload Image for title-bar <br /> alt0.src = pathDB + "/($LookupBanner)/" + pic + "/$File/" + pic; &nbsp; &nbsp; &nbsp; &nbsp;// get image from document <br /> document.images&#91;'logo'&#93;.src = alt0.src; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// switch image in browser <br /> } <strong><br /> <br /> <br /> onUnload</strong> <br /> <br /> if (timeInt) <br /> window.clearInterval(aktiv);   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/dynamische-banner.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/dynamische-banner.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Schliesen einer Datenbank in LotusScript (Win)</title>
<pubDate>Thu, 3 Jan 2002 11:47:09 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/schliesen-einer-datenbank-in-lotusscript-win.htm</link>
<category>API</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/schliesen-einer-datenbank-in-lotusscript-win.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/schliesen-einer-datenbank-in-lotusscript-win.htm</guid>
<content:encoded><![CDATA[ Um eine Datenbank per LotusScript im Backend zu schliesen (nur unter Windows), funktioniert folgender Workouround per API <br /> <br /> Declarations: <br /> <br /> Declare Sub keybd_event Lib "user32.dll" (Byval bVk As Integer, Byval bScan As Integer, Byval dwFlags As Integer,Byval dwExtraInfo As Integer) <br />  <br /> <br /> In den Code, um das Fenster zu schliessen : <br /> <br /> keybd_event &amp;h11,0,0,0 ' Ctrl key down <br /> keybd_event &amp;h73,0,0,0 ' F4 key down <br /> keybd_event &amp;h73,0,2,0 ' F4 key up <br /> keybd_event &amp;h11,0,2,0 ' Ctrl key up   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/schliesen-einer-datenbank-in-lotusscript-win.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/schliesen-einer-datenbank-in-lotusscript-win.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>&#64;ReplaceSubstring in LotusScript</title>
<pubDate>Fri, 14 Dec 2001 16:45:30 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/replacesubstring-in-lotusscript.htm</link>
<category>Äquivalent zu Makroformeln</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/replacesubstring-in-lotusscript.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/replacesubstring-in-lotusscript.htm</guid>
<content:encoded><![CDATA[ Function searchReplace(startString As String, searchString As String, replaceString As String) As String <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> 'just in case a non-string value was passed <br />  &nbsp; &nbsp; &nbsp; &nbsp;On Error Resume Next <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> 'dim strings used to reassemble final product <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim sPart1 As String <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim sPart2 As String <br /> 'dim iPos for use with Instr <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim iPos As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp; <br /> 'dump incoming string into searchReplace in order to <br /> 'fulfill function's output even if searchstring isn't found <br />  &nbsp; &nbsp; &nbsp; &nbsp;searchReplace = startString <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> 'if startStrng or searchString were empty, then exit <br />  &nbsp; &nbsp; &nbsp; &nbsp;If searchReplace ="" Or searchString ="" Then Exit Function <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> 'Use Instr to determine if startString actually contains searchstring. <br /> 'We will care where it actually is located, but it's also a quick "Contains" type of check. <br />  &nbsp; &nbsp; &nbsp; &nbsp;iPos = Instr(searchReplace, searchString) <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> 'If Contains, then iPos will be a value higher than zero and the Do loop executes, <br /> 'but if not contains, then a zero is returned and we never enter Do loop. <br />  &nbsp; &nbsp; &nbsp; &nbsp;Do Until iPos = 0 <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> 'Get everything to the left of the startstring <br /> 'iPos minus 1 will be all characters to the left of, but not including, searchstring <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sPart1 = Left$(searchReplace, iPos-1) <br /> 'Get number of characters to the right of the searchstring: <br /> 'Total length of the string minus ((iPos-1) plus length of searchstring) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sPart2 = Right$(searchReplace, Len(searchReplace)-((iPos-1)+Len(searchString))) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> 'Reassemble searchReplace with parts 1 and 2 surrounding the replacement value <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;searchReplace sPart1 &amp; replaceString &amp; sPart2 <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> 'Check to see if there is another occurance of the searchString, <br /> 'and if so, keep the loop going until no more occurances are found. <br /> 'Start looking after the last occurrance, plus the length of the replaceString <br /> 'in order to prevent something like search for "&amp;" and replace with "&amp;" from going into an infinite loop <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;iPos = Instr((iPos-1)+Len(replaceString), searchReplace, searchString) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Loop <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/replacesubstring-in-lotusscript.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/replacesubstring-in-lotusscript.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>DECS: Fehlermeldung beim Anlegen einer Aktivität</title>
<pubDate>Thu, 29 Nov 2001 18:24:58 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/decs-fehlermeldung-beim-anlegen-einer-aktivitaet.htm</link>
<category>DECS</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/decs-fehlermeldung-beim-anlegen-einer-aktivitaet.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/decs-fehlermeldung-beim-anlegen-einer-aktivitaet.htm</guid>
<content:encoded><![CDATA[ Beim Erzeugen der notwendigen "Aktivitätsdokumente" für DECS erhält man manchmal die Fehlermeldung <br />  &nbsp; &nbsp;<strong><br /> "Notes Error: Sie sind zur Durchführung dieser Operation nicht berechtigt"</strong> &nbsp;<br />  &nbsp;<br /> wenn man die Liste der Serverdatenbanken auswählen möchte. <br /> <br /> Dieses trift dann zu, wenn in der ACL die Rechte für "<strong>-Default-</strong>" auf weniger als "<strong>Editor</strong>" herabgesetzt wurden (was durchaus zu empfehlen ist!!). Man kann entweder die Rechte heraufsetzen, oder zur Umgehung den Benutzer "<strong>Lotus Notes Template Development/Lotus Notes</strong>" aufnehmen und diesem mindestens "<strong>Editor" -</strong> Recht geben.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/decs-fehlermeldung-beim-anlegen-einer-aktivitaet.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/decs-fehlermeldung-beim-anlegen-einer-aktivitaet.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Schlüssellängen in Notes/Domino ab 5.03</title>
<pubDate>Sun, 25 Nov 2001 18:57:04 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/schluessellaengen-in-notesdomino-ab-5.03.htm</link>
<category>Sicherheit</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/schluessellaengen-in-notesdomino-ab-5.03.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/schluessellaengen-in-notesdomino-ab-5.03.htm</guid>
<content:encoded><![CDATA[ Auf Grund der lockerungen der Exportrestriktion der amerikanischen Behörden ist es nunmehr (seit Produktversion 5.0.3) möglich weltweit mit der gleichen starken Verschlüsselung zu arbeiten: <br /> <strong><br /> Schlüssel und Verschlüsselung</strong> &nbsp;<br /> <br /> - &nbsp; &nbsp; &nbsp; &nbsp;630 bit RSA Key für Notes Protokolle <br /> - &nbsp; &nbsp; &nbsp; &nbsp;1024 bit RSA Key bei Verwendung von Web Protokollen (SSL und S/MIME) <br /> - &nbsp; &nbsp; &nbsp; &nbsp;128 bit Verschlüsselung (SSL und S/MIME) <br /> - &nbsp; &nbsp; &nbsp; &nbsp;64 bit Verschlüsselung in den Notes Protokollen (Mail, Dokumentenschlüssel, Sitzungsschlüssel für Kanalverschlüsselung, etc)   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/schluessellaengen-in-notesdomino-ab-5.03.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/schluessellaengen-in-notesdomino-ab-5.03.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>HTTP Status Codes</title>
<pubDate>Mon, 5 Nov 2001 19:06:13 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/http-status-codes.htm</link>
<category>Webentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/http-status-codes.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/http-status-codes.htm</guid>
<content:encoded><![CDATA[ &nbsp;  <table> <tr> <td bgcolor=#c0c0c0><strong>HTTP StatusCodes</strong><br /> (aus Self HTML http://selfhtml.teamone.de) <br />  <br /><br />  <table> <tr> <td bgcolor=#eeeeee><strong>Statuscode</strong> <td bgcolor=#eeeeee><strong>zugehörige Meldung</strong>  <td bgcolor=#eeeeee><strong>Bedeutung</strong>  <tr valign=top> <td bgcolor=#ffffe0><tt>100</tt>  <td bgcolor=#ffffe0><tt>Continue</tt>  <td bgcolor=#e4eeff>Fortfahren. Wird derzeit noch nicht verwendet.  <tr valign=top> <td bgcolor=#ffffe0><tt>101</tt>  <td bgcolor=#ffffe0><tt>Switching Protocols</tt>  <td bgcolor=#e4eeff>Protokoll wechseln. Wird derzeit noch nicht verwendet.  <tr valign=top> <td bgcolor=#ffffe0><tt>200</tt>  <td bgcolor=#ffffe0><tt>OK</tt>  <td bgcolor=#e4eeff>Der Server kann die angeforderten Daten wie gewünscht versenden. Dies ist der Normalfall, wenn keine Probleme auftauchen. Der größere Anteil aller Anfragen an den Web-Server sollte mit diesem Statuscode enden - ansonsten stimmt etwas nicht.  <tr valign=top> <td bgcolor=#ffffe0><tt>201</tt>  <td bgcolor=#ffffe0><tt>Created</tt>  <td bgcolor=#e4eeff>Ein Objekt (z.B. eine Datei oder ein Verzeichnis) wurde auf dem Server erfolgreich angelegt. Das kann vorkommen, wenn die Anfrage des Browsers an den Server mit einer der HTTP-Übertragungsmethoden <tt>post</tt> oder <tt>put</tt> erfolgte und eine Anweisung zum Erstellen des entsprechenden Objekts enthielt.  <tr valign=top> <td bgcolor=#ffffe0><tt>202</tt>  <td bgcolor=#ffffe0><tt>Accepted</tt>  <td bgcolor=#e4eeff>Der Server hat die Anfrage des Browsers akzeptiert, liefert aber keine Daten als Antwort. Der Server schreibt die Daten statt sie zu senden in eine Datei und teilt in der Meldung mit, wo die Daten später zu finden sein werden. Diese Meldung sagt nichts darüber aus, ob der Server die Anfrage erfolgreich behandeln kann. Er hat sie einfach nur akzeptiert und die Abarbeitung auf einen späteren Zeitpunkt verschoben.  <tr valign=top> <td bgcolor=#ffffe0><tt>203</tt>  <td bgcolor=#ffffe0><tt>Non-Authoritative Information</tt>  <td bgcolor=#e4eeff>Dieser Statuscode sollte von einem Server anstelle von <tt>200</tt> zurückgegeben werden, wenn es sich nicht um den Original-Server handelt, sondern beispielsweise um einen Proxy-Server. Der Web-Browser erfährt auf diese Weise, dass die Daten erfolgreich gesendet werden konnten, aber nicht vom Original-Server kommen und daher keine Garantie auf deren Aktualität besteht.  <tr valign=top> <td bgcolor=#ffffe0><tt>204</tt>  <td bgcolor=#ffffe0><tt>No Content</tt>  <td bgcolor=#e4eeff>Der Server hat die Anfrage erhalten, sendet jedoch keine Daten zurück. Gut verwendbar ist dieser Statuscode bei Verwendung in CGI-Scripts, die zwar etwas auf dem Server erledigen, aber keinen neuen HTML-Code an den aufrufenden Browser senden wollen. Aus Sicht des Anwenders bleibt der alte Bildschirminhalt bestehen.  <tr valign=top> <td bgcolor=#ffffe0><tt>205</tt>  <td bgcolor=#ffffe0><tt>Reset Content</tt>  <td bgcolor=#e4eeff>Der angegebene Server existiert nicht bzw. der Server, der diese Antwort gibt, ist nicht der angefragte Server und kann den angefragten Server nicht finden. Die angeforderten Daten können deshalb nicht versendet werden.  <tr valign=top> <td bgcolor=#ffffe0><tt>206</tt>  <td bgcolor=#ffffe0><tt>Partial Content</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten werden in mehreren Portionen versendet (das hat aber nichts mit TCP/IP-Paketen zu tun, sondern passiert auf HTTP-Protokollebene). Mit Angaben zu <tt>content-length</tt> (z.B.: <tt>1024</tt>) und <tt>content-range</tt> (z.B.: <tt>bytes 0-1023/1024</tt>) wird angegeben, wie viele Bytes von dem angeforderten Inhalt geliefert werden, und welcher Teil der Gesamtdaten.  <tr valign=top> <td bgcolor=#ffffe0><tt>300</tt>  <td bgcolor=#ffffe0><tt>Multiple Choices</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten sind unter mehreren verschiedenen URIs vorhanden (Mirror). Anstelle der Daten werden die verfügbaren URIs als Liste übertragen. Der Web-Browser kann den Anwender anschließend in einem Dialog einen URI auswählen lassen.  <tr valign=top> <td bgcolor=#ffffe0><tt>301</tt>  <td bgcolor=#ffffe0><tt>Moved Permanently</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten befinden sich nicht mehr unter dem URI, sie wurden dauerhaft auf eine andere Adresse verschoben. In der Statusmeldung wird angegeben, unter welchem URI sich die Daten jetzt befinden. Ein Web-Browser, der diese Antwort vom Server erhält, kann beispielsweise gleich die neue Adresse anfordern.  <tr valign=top> <td bgcolor=#ffffe0><tt>302</tt>  <td bgcolor=#ffffe0><tt>Moved Temporarialy</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten wurden vorübergehend zu einem anderen URI verschoben. In der Statusmeldung wird angegeben, unter welcher Adresse sich die Daten derzeit befinden. Ein Web-Browser, der diese Antwort erhält, kann beispielsweise gleich die temporär gültige Adresse anfordern.  <tr valign=top> <td bgcolor=#ffffe0><tt>303</tt>  <td bgcolor=#ffffe0><tt>See Other</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten sind unter einem angegebenen URI verfügbar und sollte von dort mit Hilfe der <tt>get</tt>-Methode angefordert werden. Dieser Statuscode ist für CGI-Scripts gedacht, die mit der <tt>post</tt>-Methode aufgerufen wurden und den Browser auf eine andere Ressource lenken wollen, die mit der <tt>get</tt>-Methode angefordert werden soll.  <tr valign=top> <td bgcolor=#ffffe0><tt>304</tt>  <td bgcolor=#ffffe0><tt>Not Modified</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten haben sich seit dem angegebenen Zeitpunkt nicht geändert und werden deshalb nicht gesendet. Dieser Statuscode ist neben dem Code <tt>200</tt> einer der häufigsten in der Praxis. Er wird verursacht durch Web-Browser, die aufgrund ihrer Cache-Einstellungen Daten erst wieder nach einer bestimmten Zeit vom Original-Server laden. Davor fragen sie nur mit dem Zeitpunkt, zu dem die Daten zuletzt geladen wurden, an, ob die Daten auf dem Server seitdem geändert wurden.  <tr valign=top> <td bgcolor=#ffffe0><tt>305</tt>  <td bgcolor=#ffffe0><tt>Use Proxy</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten sollen statt von diesem Server von dem in der Statusmeldung angegebenen Proxy-Server angefordert werden.  <tr valign=top> <td bgcolor=#ffffe0><tt>306</tt>  <td bgcolor=#ffffe0><tt>&#91;Unused&#93;</tt>  <td bgcolor=#e4eeff>Reserviert. Wird derzeit aber nicht verwendet.  <tr valign=top> <td bgcolor=#ffffe0><tt>307</tt>  <td bgcolor=#ffffe0><tt>Temporary Redirect</tt>  <td bgcolor=#e4eeff>Wie Statuscode <tt>302</tt>. Gedacht für Fehlreaktionen einiger Browser auf <tt>302</tt>.  <tr valign=top> <td bgcolor=#ffffe0><tt>400</tt>  <td bgcolor=#ffffe0><tt>Bad Request</tt>  <td bgcolor=#e4eeff>Die Anfrage enthält Syntaxfehler. Der Server kann die Anfrage deshalb nicht bearbeiten. Das kann beispielsweise vorkommen, wenn die Anfrage dadurch zustande kam, dass ein Anwender versuchte, einen URI händisch in die Adresszeile des Browsers einzugeben und dabei ungültige Zeichen verwendete.  <tr valign=top> <td bgcolor=#ffffe0><tt>401</tt>  <td bgcolor=#ffffe0><tt>Unauthorized</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten sind zugangsgeschützt. Der Server kann die Daten nur senden, wenn eine gültige Zugangskennung, bestehend aus Benutzername und Passwort, bei der Anfrage mit gesendet wird. Das passiert in der Praxis immer dann, wenn eine Adresse aufgerufen wird, die zugangsgeschützt ist. Der Web-Browser zeigt dann, nachdem er diesen Statuscode erhalten hat, einen Dialog zum Eingeben von Benutzername und Kennwort an. Mit den eingegebenen Daten startet er dann eine neue Anfrage an den Server.  <tr valign=top> <td bgcolor=#ffffe0><tt>402</tt>  <td bgcolor=#ffffe0><tt>Payment Required</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten sind kostenpflichtig. Der Server kann die Daten nur senden, wenn eine Bestätigung der Zahlung für die Daten bei der Anfrage mitgesendet wird. Derzeit wird dies aufgrund fehlender einheitlicher technischer Grundlagen für Micropayment noch nicht verwendet.  <tr valign=top> <td bgcolor=#ffffe0><tt>403</tt>  <td bgcolor=#ffffe0><tt>Forbidden</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten sind zugangsgeschützt. Die angegebenen Daten, mit denen der Zugang erlaubt werden soll, sind ungültig. Das kann z.B. vorkommen, wenn zuvor der Statuscode <tt>401</tt> zurückgeliefert worden war und der Browser nun die nächste Anfrage mit den Zugangsdaten gestartet hat, die er vom Anwender im Dialog abgefragt hat, und diese Daten aber ungültig sind. Manche Web-Browser wiederholen den Dialog zum Eingeben der Zugangsdaten dann noch zwei mal, und nach der dritten Falscheingabe wird dem Anwender die Fehlermeldung "Forbidden" ausgegeben.  <tr valign=top> <td bgcolor=#ffffe0><tt>404</tt>  <td bgcolor=#ffffe0><tt>Not Found</tt>  <td bgcolor=#e4eeff>Der angeforderte URI existiert nicht. Dies ist neben den Statuscodes <tt>200</tt> und <tt>304</tt> einer der häufigsten Fälle in der Praxis. Er tritt immer dann ein, wenn ein Verweis auf eine nicht oder nicht mehr existierende Adresse auf dem Server führt, oder wenn der Anwender versucht hat, eine Adresse auf dem Server durch händisches Eintippen in der Adresszeile des Browsers aufzurufen, und diese Adresse aber nicht existiert.  <tr valign=top> <td bgcolor=#ffffe0><tt>405</tt>  <td bgcolor=#ffffe0><tt>Method Not Allowed</tt>  <td bgcolor=#e4eeff>Die angegebene Übertragungsmethode ist auf dem Server nicht erlaubt. Die Daten werden deshalb nicht übertragen. Das kann beispielsweise vorkommen, wenn in der Konfiguration des Web-Servers außer der <tt>get</tt>-Methode keine weitere Methode erlaubt ist, ein HTML-Formular aber einen CGI-Aufruf mit der <tt>post</tt>-Methode enthält.  <tr valign=top> <td bgcolor=#ffffe0><tt>406</tt>  <td bgcolor=#ffffe0><tt>Not Acceptable</tt>  <td bgcolor=#e4eeff>Die Anfrage ist in dieser Form nicht akzeptabel. Die Daten werden deshalb nicht übertragen.  <tr valign=top> <td bgcolor=#ffffe0><tt>407</tt>  <td bgcolor=#ffffe0><tt>Proxy Authentication Required</tt>  <td bgcolor=#e4eeff>Der anfragende Client ist ein Proxy-Server. Die Daten werden an diesen Server nur übertragen, wenn er sich als gültiger Proxy-Server ausweist. Dieser Statuscode findet derzeit noch keine Verwendung. Damit soll auf die Dauer ein ähnliches Handling wie mit dem Statuscode <tt>401</tt> etabliert werden, jedoch nicht für anfragende Browser, sondern für anfragende Proxy-Server. Auf diese Weise könnte es Web-Anbietern möglich werden, in der Serverkonfiguration unerwünschte Proxy-Server vom Zwischenspeichern der eigenen Daten auszusperren.  <tr valign=top> <td bgcolor=#ffffe0><tt>408</tt>  <td bgcolor=#ffffe0><tt>Request Timeout</tt>  <td bgcolor=#e4eeff>Der Server hat eine erwartete Anfrage nicht innerhalb des dafür festgelegten Maximalzeitraums erhalten. Die Verbindung zum anfragenden Browser wird deshalb abgebaut. Angeforderte Daten werden nicht übertragen.  <tr valign=top> <td bgcolor=#ffffe0><tt>409</tt>  <td bgcolor=#ffffe0><tt>Conflict</tt>  <td bgcolor=#e4eeff>Der Server kann die angeforderten Daten nicht senden, weil ein Konflikt mit einem anderen Prozess aufgetaucht ist. Das kann beispielsweise passieren, wenn ein anderer Prozess eine angeforderte Datei gerade mit einem exklusiven File-Locking (keinerlei Dateizugriff für andere Prozesse nicht erlaubt) versehen hat.  <tr valign=top> <td bgcolor=#ffffe0><tt>410</tt>  <td bgcolor=#ffffe0><tt>Gone</tt>  <td bgcolor=#e4eeff>Die angeforderten Daten wurden zu einem anderen URI verschoben. Dem Server ist aber nicht bekannt, wohin. Deshalb kann er sie nicht senden - andernfalls würde ein Statuscode <tt>301</tt> oder <tt>302</tt> gesendet worden.  <tr valign=top> <td bgcolor=#ffffe0><tt>411</tt>  <td bgcolor=#ffffe0><tt>Length Required</tt>  <td bgcolor=#e4eeff>Die Daten werden nicht gesendet. Sie können nur gesendet werden, wenn die Anfrage eine Angabe zu <tt>content-length</tt> enthält. Der Browser kann versuchen, die Anfrage neu zu formulieren und dabei die Länge der an den Server gesendeten Anfragedaten mit zu übermitteln.  <tr valign=top> <td bgcolor=#ffffe0><tt>412</tt>  <td bgcolor=#ffffe0><tt>Precondition Failed</tt>  <td bgcolor=#e4eeff>Eine oder mehrere Bedingungen, die bei der Anfrage gestellt wurden, treffen nicht zu. Die angeforderten Daten werden deshalb nicht übertragen.  <tr valign=top> <td bgcolor=#ffffe0><tt>413</tt>  <td bgcolor=#ffffe0><tt>Request Entity Too Large</tt>  <td bgcolor=#e4eeff>Der Server kann die Anfrage nicht bearbeiten, weil diese zu viele Zeichen enthält. Die angeforderten Daten werden deshalb nicht übertragen.  <tr valign=top> <td bgcolor=#ffffe0><tt>414</tt>  <td bgcolor=#ffffe0><tt>Request-URL Too Long</tt>  <td bgcolor=#e4eeff>Der Server kann die Anfrage nicht bearbeiten, weil die angeforderte Adresse zu viele Zeichen enthält. Die angeforderten Daten werden deshalb nicht übertragen.  <tr valign=top> <td bgcolor=#ffffe0><tt>415</tt>  <td bgcolor=#ffffe0><tt>Unsupported Media Type</tt>  <td bgcolor=#e4eeff>Der Server kann die Anfrage nicht bearbeiten, weil er keinen MediaType für den angeforderten Datentyp kennt. Die angeforderten Daten werden deshalb nicht übertragen.  <tr valign=top> <td bgcolor=#ffffe0><tt>416</tt>  <td bgcolor=#ffffe0><tt>Requested Range Not Satisfiable</tt>  <td bgcolor=#e4eeff>Die Anfrage enthält Angaben, welcher Byte-Bereich von dem angeforderten URI übertragen werden soll. Sowohl der Anfangswert als auch der Endwert des angegebenen Bereichs liegen außerhalb des verfügbaren Bytebereichs, z.B. wenn ein Bytebereich von 1000 bis 2000 angegeben wird, die Ressource aber nur 500 Byte hat. Die angeforderten Daten werden deshalb nicht übertragen.  <tr valign=top> <td bgcolor=#ffffe0><tt>417</tt>  <td bgcolor=#ffffe0><tt>Expectation Failed</tt>  <td bgcolor=#e4eeff>Die Anfrage enthält im <tt>expect</tt>-Feld bestimmte Wünsche, die der Server nicht erfüllen kann. Die angeforderten Daten werden deshalb nicht übertragen.  <tr valign=top> <td bgcolor=#ffffe0><tt>500</tt>  <td bgcolor=#ffffe0><tt>Internal Server Error</tt>  <td bgcolor=#e4eeff>Der Server kann die angeforderten Daten nicht senden, weil auf dem Server ein Fehler aufgetreten ist. Beispielsweise konnte das aufgerufene CGI-Script nicht gestartet werden.  <tr valign=top> <td bgcolor=#ffffe0><tt>501</tt>  <td bgcolor=#ffffe0><tt>Not Implemented</tt>  <td bgcolor=#e4eeff>Die Anfrage enthält Anforderungen, die der Server nicht bearbeiten kann, weil die Voraussetzunen dazu nicht implementiert sind. Die angeforderten Daten können deshalb nicht gesendet werden.  <tr valign=top> <td bgcolor=#ffffe0><tt>502</tt>  <td bgcolor=#ffffe0><tt>Bad Gateway</tt>  <td bgcolor=#e4eeff>Zum Bearbeiten der Anfrage musste der Server einen anderen Server aufrufen, erhielt dabei jedoch eine Fehlermeldung. Die angeforderten Daten können deshalb nicht gesendet werden.  <tr valign=top> <td bgcolor=#ffffe0><tt>503</tt>  <td bgcolor=#ffffe0><tt>Service Unavailable</tt>  <td bgcolor=#e4eeff>Der Server kann die Anfrage wegen Überlastung nicht bearbeiten. Die angeforderten Daten können deshalb nicht gesendet werden. In der Statusmeldung kann stehen, wann die Anfrage frühestens wieder bearbeitet werden kann. Im Gegensatz zum Statuscode <tt>202</tt> verarbeitet der Server die Daten nicht, sobald er wieder Kapazitäten hat.  <tr valign=top> <td bgcolor=#ffffe0><tt>504</tt>  <td bgcolor=#ffffe0><tt>Gateway Timeout</tt>  <td bgcolor=#e4eeff>Zum Bearbeiten der Anfrage musste der Server einen anderen Server aufrufen, erhielt dabei jedoch nach einem festgelegten Maximalzeitraum keine Antwort. Die angeforderten Daten können deshalb nicht gesendet werden.  <tr valign=top> <td bgcolor=#ffffe0><tt>505</tt>  <td bgcolor=#ffffe0><tt>HTTP Version Not Supported</tt>  <td bgcolor=#e4eeff>Der Server unterstützt die im HTTP-Header der Anfrage angegebene HTTP-Version nicht. Die angeforderten Daten werden deshalb nicht gesendet.</table> <br /> <br /><br /> </table> <br /> <br /><br />   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/http-status-codes.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/http-status-codes.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>&quot;Tooltip&quot; bei Einträgen im Web anzeigen</title>
<pubDate>Sun, 28 Oct 2001 11:54:18 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/tooltip-bei-eintraegen-im-web-anzeigen.htm</link>
<category>Webentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/tooltip-bei-eintraegen-im-web-anzeigen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/tooltip-bei-eintraegen-im-web-anzeigen.htm</guid>
<content:encoded><![CDATA[ Man kann im Browser "Tooltipps" (kleine Pop-Up Fenster, die erscheinen, wenn man den Cursor über das Element positioniert und einfach stehen läßt) verwenden, wenn man z.B. bei Tabellenzellen über die Eigenschaften den Zellen-HTML-Tag Titel (erreichbar über den letzten Reiter der Infobox) setzt. &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/tooltip-bei-eintraegen-im-web-anzeigen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/tooltip-bei-eintraegen-im-web-anzeigen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Einige bekannte Limitationen in Notes/Domino</title>
<pubDate>Sat, 6 Oct 2001 19:58:34 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/einige-bekannte-limitationen-in-notesdomino.htm</link>
<category>Sonstiges</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/einige-bekannte-limitationen-in-notesdomino.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/einige-bekannte-limitationen-in-notesdomino.htm</guid>
<content:encoded><![CDATA[ The follow list contains some of the known limitations of Notes and Domino 5.x:  <table border width=100%> <tr valign=top> <td width=27%><strong>Feature Test</strong>  <td width=72%><strong>Limit</strong>  <tr valign=top> <td>What is the maximum size of a database?  <td>The maximum OS file size limit - (up to 64GB)  <tr valign=top> <td>What is the maximum size of text fields?  <td>15KB (storage); 15KB displayed in a view's column  <tr valign=top> <td>What is the maximum size of a rich text field?  <td>Limited only by available disk space up to 1GB  <tr valign=top> <td>What is the maximum size of a single paragraph in a rich text field?  <td>64KB &nbsp;  <tr valign=top> <td>How many levels of responses in a hierarchical view; how many documents at each level?  <td>31 levels; 300,000 documents  <tr valign=top> <td>How many characters are allowed in names for views, forms, and so on?  <td>Database Title: 96 bytes <br /> Filenames: <br /> On Windows and Unix platforms minimum of 255 and/or OS limits; <br /> on local Macintosh workstation 31 <br /> Field names: &nbsp;32 <br /> View names: 64 <br /> Form names: 32 <br /> Macro names: &nbsp;32  <tr valign=top> <td>How many fields in a database?  <td>~ 3000 (limited to ~ 64K total length for all field names). You can enable the database property "Allow more fields in database" to get up to 22,800 uniquely-named fields in the database.  <tr valign=top> <td>How many columns can be included in one table?  <td>64  <tr valign=top> <td>How many rows can be included in one table?  <td>255  <tr valign=top> <td>How many views can be added to a database?  <td>No limit; however, as the number of views increases, the length of time to display other views also increases  <tr valign=top> <td>How many forms can be added to a database?  <td>Limited only by database size.  <tr valign=top> <td>How many columns are allowed in a view?  <td>289 ten-character columns; dependent upon # or characters per column  <tr valign=top> <td>How many documents can be imported into a view?  <td>Documents totaling at least 350K  <tr valign=top> <td>How many cascading views are allowed in a database?  <td>200  <tr valign=top> <td>What is the maximum value (in inches) you can enter for margin size?  <td>46  <tr valign=top> <td>What is the maximum value (in inches) you can enter for page size cropping?  <td>46  <tr valign=top> <td>What is the maximum point size you can select/print?  <td>250  <tr valign=top> <td>How many documents are allowed in one view?  <td>R4.x databases have a 512 MB limit on the size of the container which does limit the size of the view. &nbsp; <br /> <br /> View containers in R5 databases (ODS 31) do not have a container size limit. &nbsp;The view size limit is now determined by the maximum number of pages that can be created which is 16,777,214. &nbsp;A page holds 8 KB so that means the maximum size for a view is 137,438,937,088 bytes (128 GB).  <tr valign=top> <td>What is the maximum number of documents that can be exported to Tabular Text?  <td>Limited only by available disk space  <tr valign=top> <td>What is the maximum number of entries in an Access Control List?  <td>~950 names (ACL size is limited to 32767 bytes)  <tr valign=top> <td>What is the maximum number of roles in an Access Control List?  <td>75 Roles  <tr valign=top> <td>What's the maximum password length allowed on an ID?  <td>63 characters  <tr valign=top> <td>What is the maximum number of users to have authorized passwords on a multiple password ID?  <td>8 users  <tr valign=top> <td>How many outline entries can an outline have?  <td>~21,000 entries</table> <br /> <br /><br /> <br />   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/einige-bekannte-limitationen-in-notesdomino.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/einige-bekannte-limitationen-in-notesdomino.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Vermeiden der Enstehung von Orphan Documents</title>
<pubDate>Sat, 6 Oct 2001 16:42:06 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/vermeiden-der-enstehung-von-orphan-documents.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/vermeiden-der-enstehung-von-orphan-documents.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/vermeiden-der-enstehung-von-orphan-documents.htm</guid>
<content:encoded><![CDATA[ Um die Entstehung von Waisendokumenten zu vermeiden, kann eine Ansicht (ausschließlich mit Antwortdokumenten) und ein Datenbankscript helfen. <br /> <br /> Erstellen Sie eine Ansicht "(ResponseDocs)", mit der Selektionsformel "SELECT @IsResponseDoc" und einer Spalte mit der Spaltenformel "@Text($Ref)" auf- oder absteitgend sortiert. <br /> <br /> Das nachfolgende Datenbankscript sucht fortan beim Löschen eines Dokumentes nach möglichen abhängigen Dokumenten zu den zu löschenden Dokumenten. Diese werden dann automatisch mitgelöscht. <br /> <br />  &nbsp;<br /> <br /> Sub Postdocumentdelete(Source As Notesuidatabase) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim db As NotesDataBase <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim col As NotesDocumentCollection <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim doc As NotesDocument <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim RespCol As NotesDocumentCollection <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim RespView As NotesView <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim Count As Long <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Print "Deleting response documents..." <br />  &nbsp; &nbsp; &nbsp; &nbsp;Count = 0 <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Set db = Source.Database <br />  &nbsp; &nbsp; &nbsp; &nbsp;Set RespView = db.GetView("(ResponseDocs)") <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> ' &nbsp; &nbsp; &nbsp; &nbsp;Get the collection of deleted documents <br />  &nbsp; &nbsp; &nbsp; &nbsp;Set col = Source.Documents <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Set doc = col.GetFirstDocument <br />  &nbsp; &nbsp; &nbsp; &nbsp;While Not (doc Is Nothing) <br /> ' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Find all Responses to given deleted document from "(ResponseDocs)"-View <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set RespCol = RespView.GetAllDocumentsByKey(Cstr(doc.Universalid)) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If RespCol.count>0 Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Count = Count + RespCol.count &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call RespCol.removeall(True) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set doc = col.GetNextDocument (doc) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Wend <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Print "Deleted " &amp; Cstr(Count) &amp; " documents" <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> End Sub   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/vermeiden-der-enstehung-von-orphan-documents.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/vermeiden-der-enstehung-von-orphan-documents.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Agent zum Löschen von &quot;Orphan Documents&quot;</title>
<pubDate>Sat, 6 Oct 2001 12:17:16 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/agent-zum-loeschen-von-orphan-documents.htm</link>
<category>Orphan Documents</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/agent-zum-loeschen-von-orphan-documents.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/agent-zum-loeschen-von-orphan-documents.htm</guid>
<content:encoded><![CDATA[ Wenn Hauptdokumente auf die Antwortdokumente existieren gelöscht werden, bleiben "Waisendokumente" (ohne Zuordnung zum Hauptdokument) zurück. Diese belasten (Größe und Performance) einer Datenbank. <br /> <br /> Um Waisendokumente zu löschen, eignet sich folgender Agent (siehe auch <a href=Notes:///C12575D0002AED5C/AD00CA88015A9484C1256A240042B206/AD6AF51DE1893C60C1256D4200214087><span style="text-decoration:underline">Link</span></a>): &nbsp;<br /> <br />  &nbsp; &nbsp; &nbsp;Dim session As New notessession <br />  &nbsp; &nbsp; &nbsp;Dim db As notesdatabase <br />  &nbsp; &nbsp; &nbsp;Dim col As notesdocumentcollection <br />  &nbsp; &nbsp; &nbsp;Dim respcol As notesdocumentcollection <br />  &nbsp; &nbsp; &nbsp;Dim cdoc As notesdocument <br />  &nbsp; &nbsp; &nbsp;Dim cdocnext As notesdocument &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp;Dim pdoc As notesdocument <br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;Set db=session.currentdatabase <br />  &nbsp; &nbsp; &nbsp;maybemoreorphans=True <br /> <br />  &nbsp; &nbsp; &nbsp;While maybemoreorphans <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;maybemoreorphans=False <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set col=db.alldocuments <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set cdoc=col.getfirstdocument <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;While Not (cdoc Is Nothing) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set cdocnext = col.getnextdocument(cdoc) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If cdoc.isresponse Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set pdoc=db.getdocumentbyUNID(cdoc.parentdocumentUNID) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If pdoc.size = 0 Then &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set respcol=cdoc.responses <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If respcol.count>0 Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call respcol.removeall(True) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;maybemoreorphans=True <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call cdoc.remove(True) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set cdoc=cdocnext <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Wend <br />  &nbsp; &nbsp; &nbsp;Wend   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/agent-zum-loeschen-von-orphan-documents.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/agent-zum-loeschen-von-orphan-documents.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>R5 LotusScipt - &#64;Formel äquivalenzen</title>
<pubDate>Sat, 29 Sep 2001 13:17:12 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/r5-lotusscipt-formel-aequivalenzen.htm</link>
<category>Äquivalent zu Makroformeln</category>
<dc:creator>Admin Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/r5-lotusscipt-formel-aequivalenzen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/r5-lotusscipt-formel-aequivalenzen.htm</guid>
<content:encoded><![CDATA[  <table width=100%> <tr valign=top> <td width=100%><br />  <table border width=100%> <tr valign=top> <td width=42% bgcolor=#f1f1b4> <div align=center><tt><strong>Formelsprache</strong></tt></div> <td width=57% bgcolor=#f1f1b4> <div align=center><tt><strong>LotusScript</strong></tt></div> <tr valign=top> <td><tt>@Trim(Array)</tt>  <td><tt>FullTrim(Array)</tt>  <tr valign=top> <td><tt>@Trim(String)</tt>  <td><tt>FullTrim(String)</tt>  <tr valign=top> <td><tt>("A" = "B":"A")</tt>  <td><tt>(StrGetIndex(L,S)=Null)</tt>  <tr valign=top> <td><tt>@Left("ABC";"B")</tt>  <td><tt>STRLeft</tt>  <tr valign=top> <td><tt>@Right("ABC";"B")</tt>  <td><tt>STRRight</tt>  <tr valign=top> <td><tt>@RightBack</tt> &nbsp; <td><tt>STRRightBack</tt>  <tr valign=top> <td> <td></table> <br /> <br /></table> <br /> <br />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/r5-lotusscipt-formel-aequivalenzen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/r5-lotusscipt-formel-aequivalenzen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Antwortseiten im Web</title>
<pubDate>Wed, 29 Aug 2001 16:22:38 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/antwortseiten-im-web.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/antwortseiten-im-web.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/antwortseiten-im-web.htm</guid>
<content:encoded><![CDATA[ Um im Web auf eine Antwortseite umzuleiten, z.B. nach einem @Command(&#91;FileSave&#93;) muß man im Ereignis 'WebQuerySave' der Maske einen Agenten starten. <br /> Der Agent enthält folgenden Code: <br /> <br /> Sub Initialize <br />  &nbsp; dbname = Evaluate (|@ReplaceSubstring(@ReplaceSubstring(@Subset(@DbName; -1); "\\"; "/"); " "; "+")|) <br />  &nbsp; Print "&#91;/" + dbname(0) + "/<strong>Antwortseite</strong>?OpenPage&#93;" <br /> End Sub <br />  <br /> Durch diesen Code entfallen die hardcodierten Pfade auf die Seite.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/antwortseiten-im-web.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/antwortseiten-im-web.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Profildokumente einer Datenbank auflisten</title>
<pubDate>Thu, 23 Aug 2001 10:39:36 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/profildokumente-einer-datenbank-auflisten.htm</link>
<category>Profile</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/profildokumente-einer-datenbank-auflisten.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/profildokumente-einer-datenbank-auflisten.htm</guid>
<content:encoded><![CDATA[ Folgender Script - Agent sucht in einer Datenbank nach Profildokumenten. &nbsp; &nbsp;<br /> <br /> Gesammelte Informationen werden in der Statuszeile ausgegeben. <br /> <br /> Sub Initialize <br />  &nbsp; &nbsp; &nbsp; Dim session As New NotesSession <br />  &nbsp; &nbsp; &nbsp; Dim db As NotesDatabase <br />  &nbsp; &nbsp; &nbsp; Dim col As NotesDocumentCollection <br />  &nbsp; &nbsp; &nbsp; Dim doc As NotesDocument <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; Set db= session.CurrentDatabase <br />  &nbsp; &nbsp; &nbsp; Set col = db.AllDocuments <br />  &nbsp; &nbsp; &nbsp; Msgbox "Anzahl der Dokumente: " &amp; col.count <br />  &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; Set doc = col.GetFirstDocument <br />  &nbsp; &nbsp; &nbsp; Print "Suche nach Profildokumenten..." <br />  &nbsp; &nbsp; &nbsp; While Not (doc Is Nothing) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If doc.IsProfile Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Print "Profile name: " &amp; doc.NameOfProfile &amp; _ <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Chr(10) &amp; _ <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "User name (key): " &amp; doc.Key,, doc.NameOfProfile <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set doc = col.GetnextDocument(doc) <br />  &nbsp; &nbsp; &nbsp; Wend <br />  &nbsp; &nbsp; &nbsp; Print "Suche beendet." <br /> End Sub   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/profildokumente-einer-datenbank-auflisten.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/profildokumente-einer-datenbank-auflisten.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Wie kann ich eine Maske zur Eingabe eines Kennwortes über das Web erstellen?</title>
<pubDate>Sat, 11 Aug 2001 12:30:36 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-eine-maske-zur-eingabe-eines-kennwortes-ueber-das-web-erstellen.htm</link>
<category>Passwort</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-eine-maske-zur-eingabe-eines-kennwortes-ueber-das-web-erstellen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-eine-maske-zur-eingabe-eines-kennwortes-ueber-das-web-erstellen.htm</guid>
<content:encoded><![CDATA[ Kennwörter können in Webanwendungen verdeckt abgefragt werden, wenn die Eingabemaske ein Text Feld enthält, daß in der Feldhilfe den Durchgangs-HTML-Code <br /> <br /> &#91;<TYPE="password">&#93; &nbsp;<br /> <br /> enthält!   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/wie-kann-ich-eine-maske-zur-eingabe-eines-kennwortes-ueber-das-web-erstellen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-eine-maske-zur-eingabe-eines-kennwortes-ueber-das-web-erstellen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Validierung von Anhängen im Web</title>
<pubDate>Sun, 5 Aug 2001 17:20:19 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/validierung-von-anhaengen-im-web.htm</link>
<category>Webentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/validierung-von-anhaengen-im-web.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/validierung-von-anhaengen-im-web.htm</guid>
<content:encoded><![CDATA[ Um neben Feldern auch geforderte Anhänge zu prüfen, hilft folgendes kleines JavaScript z.B. im "onSubmit" Event der Maske: <br />  <br /> <br /> function validateFileUpload () {<br /> for(i=0;i<document.forms&#91;0&#93;.elements.length;++i)<br /> {<br />  var elem = document.forms&#91;0&#93;.elements&#91;i&#93;;<br />  if (elem.type == "file") {<br />  &nbsp; alert ("Element-Value: " + elem.value);<br />  &nbsp; if (elem.value == "") {<br />  &nbsp; &nbsp; &nbsp; alert ("please attach you file");<br />  &nbsp; &nbsp; &nbsp; return ("");<br />  &nbsp; }<br />  }<br /> }<br /> }   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/validierung-von-anhaengen-im-web.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/validierung-von-anhaengen-im-web.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Berechnung der Anzahl der Arbeitstage (abzüglich Wochenende und Feiertage)</title>
<pubDate>Sun, 8 Jul 2001 21:29:12 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/berechnung-der-anzahl-der-arbeitstage-abzueglich-wochenende-und-feiertage.htm</link>
<category>Datumsfunktionen</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/berechnung-der-anzahl-der-arbeitstage-abzueglich-wochenende-und-feiertage.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/berechnung-der-anzahl-der-arbeitstage-abzueglich-wochenende-und-feiertage.htm</guid>
<content:encoded><![CDATA[ REM "Array holding holidays (date values)"; <br /> _hols := Holidays; <br />  <br /> REM "Date variables holding start and end dates"; <br /> _start := StartDate; <br /> _end := EndDate; <br /> <br /> REM "Calculate Working days (excluding weekends and holidays)"; <br /> _duration:=@TextToTime(@Explode(@TextToTime(@Text(_start)+"-"+@Text(_end)))); <br /> _datelist := @Trim(@Replace(@Text(_duration);@Text(_hols);NULL)); <br /> _weekdays:=@Text(@Weekday(@TextToTime(_datelist))); <br /> <br /> @Elements(@Trim(@Replace(_weekdays;"1":"7";NULL)))   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/berechnung-der-anzahl-der-arbeitstage-abzueglich-wochenende-und-feiertage.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/berechnung-der-anzahl-der-arbeitstage-abzueglich-wochenende-und-feiertage.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Dynamisches Hide-When im Web</title>
<pubDate>Tue, 22 May 2001 11:47:24 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/dynamisches-hide-when-im-web.htm</link>
<category>Webentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/dynamisches-hide-when-im-web.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/dynamisches-hide-when-im-web.htm</guid>
<content:encoded><![CDATA[ Um eine dynamische Hide-When Logik, welche äquivalent zum Notes Client ist, im Web abzubilden, ist es nur nötig, die Datenbankeingenschaft <strong>Web Acces: Use Javascript when generating pages</strong> zu aktivieren. Danach wird die gleiche Logik, welche in Notes anzutreffen ist, auch im Web funktionieren. <br /> Möchte man die Aktualisierung jedoch händisch durchführen (Buttons, beim Verlassen eines Feldes, usw.) ist dies mit folgendem Codebeispiel zu bewerkstelligen: <strong>&nbsp;<br /> _doClick ('$Refresh', this, null, null)</strong>.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/dynamisches-hide-when-im-web.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/dynamisches-hide-when-im-web.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Doclinks vom Web erstellen</title>
<pubDate>Tue, 22 May 2001 11:04:32 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/doclinks-vom-web-erstellen.htm</link>
<category>Webentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/doclinks-vom-web-erstellen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/doclinks-vom-web-erstellen.htm</guid>
<content:encoded><![CDATA[ Um einen Doclink per Mail von einem Dokument aus, welches im Browser erstellt wird, zu erzeugen, muss man einfach nur folgendes tun. <br /> Ein berechnetes <strong>$$Return </strong>Feld mit folgendem Code: <strong><br /> @If(@IsDocBeingSaved;@MailSend("User Test/Test";"";"";"Follow this link";"";"";&#91;IncludeDoclink&#93;);"") </strong><br /> versendet bei jemdem speichern eine Mail an den <strong>Test User/Test</strong>. &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/doclinks-vom-web-erstellen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/doclinks-vom-web-erstellen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Eine numerierte Liste wählbarer Länge erstellen</title>
<pubDate>Mon, 16 Apr 2001 10:50:15 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/eine-numerierte-liste-waehlbarer-laenge-erstellen.htm</link>
<category>Listenhandling</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/eine-numerierte-liste-waehlbarer-laenge-erstellen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/eine-numerierte-liste-waehlbarer-laenge-erstellen.htm</guid>
<content:encoded><![CDATA[ In zahlreichen Fällen (z.B. Dialogbox mit zusätzlicher nummerierter Auswahlliste) werden aufsteigend (fortlaufend) numerierte Listen wählbarer Länge benötigt. <br /> <br /> Die nachfolgende Formel liefert diese: <br /> <br /> _numElements := ListLength; <br /> _numbers := "0" : "1" : "2" : "3" : "4" : "5" : "6" : "7" : "8" : "9"; <br /> @If (_numElements != Null; @Subset(@Subset( @Text(@TextToNumber(_numbers *+ _numbers)); -99); _numElements); "") <br />  <br /> Wird nun für "_numElements" die Länge einer entsprechenden Auswahlliste angegeben ("@Elements(Liste)") dann kann dieses auch zu einer entsprechenden Positionsnummer Z.B. bei dynamischen Tabellen verwendet werden.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/eine-numerierte-liste-waehlbarer-laenge-erstellen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/eine-numerierte-liste-waehlbarer-laenge-erstellen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Alle Felder einer Datenbank auflisten</title>
<pubDate>Fri, 13 Apr 2001 13:52:09 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/alle-felder-einer-datenbank-auflisten.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/alle-felder-einer-datenbank-auflisten.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/alle-felder-einer-datenbank-auflisten.htm</guid>
<content:encoded><![CDATA[ Wie kann ich programmtechnisch an die Liste <strong>aller </strong>Felder einer Datenbank herankommen? <br /> <br /> ....mit folgendem Code...  <div align=center> <br /><br /> NotesDatabase.getFields(False) </div>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/alle-felder-einer-datenbank-auflisten.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/alle-felder-einer-datenbank-auflisten.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Feldwertübernahme ausschalten</title>
<pubDate>Fri, 13 Apr 2001 13:50:41 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/feldwertuebernahme-ausschalten.htm</link>
<category>Benutzung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/feldwertuebernahme-ausschalten.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/feldwertuebernahme-ausschalten.htm</guid>
<content:encoded><![CDATA[ Will man bei Dokumenten, die über den Mechanismus der Feldwertübernahme Daten aus Bezugsdokumenten übernehmen, die Übername deaktivieren, so ist ... <br /> <br /> <Ctrl> Taste drücken, während ein Dokument mit dem "Erstellen"-Menü angelegt wird. &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/feldwertuebernahme-ausschalten.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/feldwertuebernahme-ausschalten.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>DB Icons zum Desktop hinzufügen/löschen</title>
<pubDate>Fri, 13 Apr 2001 13:46:38 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/db-icons-zum-desktop-hinzufuegenloeschen.htm</link>
<category>Sonstiges</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/db-icons-zum-desktop-hinzufuegenloeschen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/db-icons-zum-desktop-hinzufuegenloeschen.htm</guid>
<content:encoded><![CDATA[ Nachfolgender Code (z.B. in einem Button o.ä.) löscht ein Datenbank-Icon von dem Arbeitsbereich des Benutzers: <br /> <br /> @Command(&#91;WindowWorkspace&#93;); <br /> @Command(&#91;FileOpenDatabase&#93;;........); <br /> @Command(&#91;FileCloseWindow&#93;); <br /> @PostedCommand(&#91;EditClear&#93;); <br /> @PostedCommand(&#91;FileOpenDatabase&#93;;.......)   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/db-icons-zum-desktop-hinzufuegenloeschen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/db-icons-zum-desktop-hinzufuegenloeschen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Wie kann man Agenten im Web verbergen?</title>
<pubDate>Thu, 5 Apr 2001 09:57:27 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/wie-kann-man-agenten-im-web-verbergen.htm</link>
<category>Webentwicklung</category>
<dc:creator>Michael Siegrist</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/wie-kann-man-agenten-im-web-verbergen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/wie-kann-man-agenten-im-web-verbergen.htm</guid>
<content:encoded><![CDATA[ Bei einer Datenbank im Web können Agenten mittels URL - Aufruf ".../AgentName?OpenAgent" gestartet werden. &nbsp;<br /> <br /> Um einen Agenten vor Web - Aufrufen zu schützen öffnet man im Designer das Eigenschaftsfenster des entsprechenden Agenten. Auf dem dritten Reiter ist die Option 'Gestaltung->Gestaltungselement verbergen vor->Web Browser' zu aktivieren. <br /> <br /> Um einen Agenten unter dem Namen des jeweilig authentifizierten Web - Benutzers laufen zu lassen ist bei den Eigenschaften 'Web - Zugriff->Agenten als Web Benutzer ausführen' zu aktivieren.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/wie-kann-man-agenten-im-web-verbergen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/wie-kann-man-agenten-im-web-verbergen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>AddToKeyWordList</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/addtokeywordlist.htm</link>
<category>Listenhandling</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/addtokeywordlist.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/addtokeywordlist.htm</guid>
<content:encoded><![CDATA[ Function AddToKeyWordList (Value As Variant, ValueList As Variant) &nbsp; &nbsp;<br />  &nbsp; &nbsp;Dim tmpValueList As Variant &nbsp; <br />  &nbsp; &nbsp; <br />  &nbsp; &nbsp;' This will return a 1 based value if the position in the list &nbsp; <br />  &nbsp; &nbsp;EntryInList = 0 &nbsp; <br />  &nbsp; &nbsp;i = 1 &nbsp; <br />  &nbsp; &nbsp;Forall Entries In ValueList &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Entries = Value Then &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;EntryInList = i &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Exit Forall &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i = i + 1 &nbsp; <br />  &nbsp; &nbsp;End Forall &nbsp; <br />  &nbsp; &nbsp; <br />  &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' Load the array element by element so that the datatype is preserved &nbsp; <br />  &nbsp; &nbsp;Redim tmpValueList(Ubound(ValueList)) &nbsp; <br />  &nbsp; &nbsp;For i = 0 To Ubound(ValueList) &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tmpValueList(i) = ValueList(i) &nbsp; <br />  &nbsp; &nbsp;Next &nbsp; <br />  &nbsp; &nbsp; <br />  &nbsp; &nbsp;If EntryInList = 0 Then &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' Determine if we are dealing with a new list, if absolutely no values in the first entry, then add new value to 0 &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Ubound(tmpValueList) = 0 And Cstr(tmpValueList(0)) = "" Then &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x = 0 &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x = Ubound(tmpValueList) + 1 &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Redim Preserve tmpValueList(x) &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tmpValueList(x) = Value &nbsp; <br />  &nbsp; &nbsp;End If &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; <br />  &nbsp; &nbsp;AddToKeyWordList = tmpValueList &nbsp; <br />  &nbsp; &nbsp; <br /> End Function &nbsp; <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/addtokeywordlist.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/addtokeywordlist.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>AddToList</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/addtolist.htm</link>
<category>Arrays</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/addtolist.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/addtolist.htm</guid>
<content:encoded><![CDATA[ Function AddToList (Value As Variant, ValueList As Variant) &nbsp;<br />  &nbsp; &nbsp; &nbsp;Dim tmpValueList As Variant <br />  &nbsp; &nbsp; &nbsp;' Load the array element by element so that the datatype is preserved <br />  &nbsp; &nbsp; &nbsp;Redim tmpValueList(Ubound(ValueList)) <br />  &nbsp; &nbsp; &nbsp;For i = 0 To Ubound(ValueList) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tmpValueList(i) = ValueList(i) <br />  &nbsp; &nbsp; &nbsp;Next <br />  &nbsp; &nbsp; &nbsp;' Determine if we are dealing with a new list, if absolutely no <br />  &nbsp; &nbsp; &nbsp;values in the first entry, then add new value to 0 <br />  &nbsp; &nbsp; &nbsp;If Ubound(tmpValueList) = 0 And Cstr(tmpValueList(0)) = "" Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x = 0 <br />  &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x = Ubound(tmpValueList) + 1 <br />  &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp;Redim Preserve tmpValueList(x) <br />  &nbsp; &nbsp; &nbsp;tmpValueList(x) = Value <br />  &nbsp; &nbsp; &nbsp;AddToList = tmpValueList <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/addtolist.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/addtolist.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Copy, Move, Delete, Rename -- Explorer like</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/copy-move-delete-rename-explorer-like.htm</link>
<category>Dateihandling</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/copy-move-delete-rename-explorer-like.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/copy-move-delete-rename-explorer-like.htm</guid>
<content:encoded><![CDATA[ Type SHFILEOPSTRUCT &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;hWnd As Long <br />  &nbsp; &nbsp; &nbsp; &nbsp;wFunc As Long <br />  &nbsp; &nbsp; &nbsp; &nbsp;pFrom As String <br />  &nbsp; &nbsp; &nbsp; &nbsp;pTo As String <br />  &nbsp; &nbsp; &nbsp; &nbsp;fFlags As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;fAborted As Long <br />  &nbsp; &nbsp; &nbsp; &nbsp;hNameMaps As Long <br />  &nbsp; &nbsp; &nbsp; &nbsp;sProgress As String <br /> End Type <br /> <br /> Const INVALID_HANDLE_VALUE = -1 <br /> Const MAX_PATH = 260 <br /> <br /> Type FILETIME <br />  &nbsp; &nbsp; &nbsp; &nbsp;dwLowDateTime As Long <br />  &nbsp; &nbsp; &nbsp; &nbsp;dwHighDateTime As Long <br /> End Type <br /> <br /> Type WIN32_FIND_DATA <br />  &nbsp; &nbsp; &nbsp; &nbsp;dwFileAttributes As Long ' Dateiattribute <br />  &nbsp; &nbsp; &nbsp; &nbsp;ftCreationTime As FILETIME ' Erstellungsdatum <br />  &nbsp; &nbsp; &nbsp; &nbsp;ftLastAccessTime As FILETIME ' Letzter Zugriff <br />  &nbsp; &nbsp; &nbsp; &nbsp;ftLastWriteTime As FILETIME ' Letzte Speicherung <br />  &nbsp; &nbsp; &nbsp; &nbsp;nFileSizeHigh As Long ' Größe (Hi) <br />  &nbsp; &nbsp; &nbsp; &nbsp;nFileSizeLow As Long ' Größe (Lo) <br />  &nbsp; &nbsp; &nbsp; &nbsp;dwReserved0 As Long ' bedeutungslos <br />  &nbsp; &nbsp; &nbsp; &nbsp;dwReserved1 As Long ' bedeutungslos <br />  &nbsp; &nbsp; &nbsp; &nbsp;cFileName As String * MAX_PATH ' Dateiname <br />  &nbsp; &nbsp; &nbsp; &nbsp;cAlternate As String * 14 ' 8.3-Dateiname <br /> End Type <br /> <br /> Type SYSTEMTIME <br />  &nbsp; &nbsp; &nbsp; &nbsp;wYear As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;wMonth As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;wDayOfWeek As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;wDay As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;wHour As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;wMinute As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;wSecond As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;wMilliseconds As Integer <br /> End Type <br /> <br /> Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (Byval lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long <br /> Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (Byval hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long <br /> Declare Function FindClose Lib "kernel32" (Byval hFindFile As Long) As Long <br /> Declare Function SHFileOperation Lib "shell32.dll" (lpFileOp As SHFILEOPSTRUCT) As Long <br /> Declare Function SHEmptyRecycleBin Lib "shell32" Alias "SHEmptyRecycleBinA" (Byval hwnd As Long, Byval pszRootPath As String, Byval dwFlags As Long) As Long <br /> <br /> ' Konstanten für lpFileOp.wFunc - erwünschte Aktion <br /> Const FO_MOVE = &amp;H1 ' Move <br /> Const FO_COPY = &amp;H2 ' Copy <br /> Const FO_DELETE = &amp;H3 ' Delete (Recycle Bin) <br /> Const FO_RENAME = &amp;H4 ' Rename <br /> <br /> ' Konstanten für lpFileOp.fFlags - diverse Optionen <br /> Const FOF_MULTIDESTFILES = &amp;H1 ' pTo gibt für jedes Element in pFrom einen Zielpfad an <br /> Const FOF_SILENT = &amp;H4 ' Keine Dialoge anzeigen <br /> Const FOF_RENAMEONCOLLISION = &amp;H8 ' Bei Namenskollisionen automatisch umbenennen <br /> Const FOF_NOCONFIRMATION = &amp;H10 ' Keine Bestätigungen durch den Benutzer - alle Fragen werden mit "Ja" beantwortet <br /> Const FOF_ALLOWUNDO = &amp;H40 ' Falls möglich werden Undo-Informationen gesichert <br /> Const FOF_FILESONLY = &amp;H80 ' Bei Angabe von WildCards (*.*) sollen nur Dateien - nicht Verzeichnisse - berücksichtigt werden <br /> Const FOF_SIMPLEPROGRESS = &amp;H100 ' Einfacher Fortschrittsbalken - keine Dateinamen anzeigen <br /> Const FOF_NOCONFIRMMKDIR = &amp;H200 ' Erzeugung von Verzeichnissen nicht bestätigen lassen <br /> Const FOF_NOERRORUI = &amp;H400 <br /> <br /> Class DiskFile <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Declare Private Function ExistFileDirDrive(FilePathName As String) As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;Declare Private Function DoIt(SHFO) As Long <br />  &nbsp; &nbsp; &nbsp; &nbsp;Declare Private Function IsSingleFile(FileName As String) As Variant <br />  &nbsp; &nbsp; &nbsp; &nbsp;Declare Private Function IsDriveAvailable(drivNam$) As Variant <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Public Function CopyFile(SourceFile As String, DestFile As String, AFlag As Integer) As Long <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim SHFO As SHFILEOPSTRUCT <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.wFunc = FO_COPY <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.pFrom = SourceFile &amp; vbNullChar <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.pTo = DestFile &amp; vbNullChar <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.fFlags = AFlag <br />  &nbsp; &nbsp; &nbsp; &nbsp;If IsSingleFile (SourceFile) Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CopyFile = SHFileOperation(SHFO) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If ExistFileDirDrive(SourceFile) Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CopyFile = SHFileOperation(SHFO) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CopyFile = -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Function <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Public Function MoveFile(SourceFile As String, DestFile As String, AFlag As Integer) As Long <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim SHFO As SHFILEOPSTRUCT <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.wFunc = FO_MOVE <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.pFrom = SourceFile &amp; vbNullChar <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.pTo = DestFile &amp; vbNullChar <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.fFlags = AFlag <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;If ExistFileDirDrive(SourceFile) Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MoveFile = SHFileOperation(SHFO) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MoveFile = -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Function <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Public Function RenameFile(SourceFile As String, DestFile As String, AFlag As Integer) As Long <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim SHFO As SHFILEOPSTRUCT <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.wFunc = FO_RENAME <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.pFrom = SourceFile &amp; vbNullChar <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.pTo = DestFile &amp; vbNullChar <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.fFlags = AFlag <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;If ExistFileDirDrive(SourceFile) Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;RenameFile = SHFileOperation(SHFO) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;RenameFile = -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Function <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Public Function DeleteFile(SourceFile As String, AFlag As Integer) As Long <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim SHFO As SHFILEOPSTRUCT <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.wFunc = FO_DELETE <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.pFrom = SourceFile &amp; vbNullChar <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.pTo = "" <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHFO.fFlags = AFlag <br />  &nbsp; &nbsp; &nbsp; &nbsp;DeleteFile = SHFileOperation(SHFO) <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Function <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Private Function ExistFileDirDrive(FilePathName As String) As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim nTest As String <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;nTest = Lcase$(FilePathName) <br />  &nbsp; &nbsp; &nbsp; &nbsp;If Len(nTest) = 1 Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Select Case Left$(nTest, 1) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case "a" To "z" <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nTest = FilePathName &amp; ":\" <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End Select <br />  &nbsp; &nbsp; &nbsp; &nbsp;Elseif Len(nTest) = 2 Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Select Case Left$(nTest, 2) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case "a:" To "z:" <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nTest = FilePathName &amp; "\" <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End Select <br />  &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp;On Error Resume Next <br />  &nbsp; &nbsp; &nbsp; &nbsp;ExistFileDirDrive = Cint(Getattr(nTest) ) <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Function <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Public Function ClearBin(Source As String) As Long <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Const SHERB_NOCONFIRMATION = &amp;H1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;Const SHERB_NOPROGRESSUI = &amp;H2 <br />  &nbsp; &nbsp; &nbsp; &nbsp;Const SHERB_NOSOUND = &amp;H4 <br />  &nbsp; &nbsp; &nbsp; &nbsp;nOptions% = SHERB_NOSOUND <br />  &nbsp; &nbsp; &nbsp; &nbsp;SHEmptyRecycleBin hwndParent, Source, nOptions% <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Function <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Private Function IsSingleFile(FileName As String) As Variant <br />  &nbsp; &nbsp; &nbsp; &nbsp;IsSingleFile = True <br />  &nbsp; &nbsp; &nbsp; &nbsp;If Not Left$(Right$(FileName,5),1) = "*" Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IsSingleFile False <br />  &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Function <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Private Function IsDriveAvailable(drivNam$) As Variant <br />  &nbsp; &nbsp; &nbsp; &nbsp;'// Test, ob das Laufwerk vorhanden ist <br />  &nbsp; &nbsp; &nbsp; &nbsp;On Error Goto Errors <br />  &nbsp; &nbsp; &nbsp; &nbsp;IsDriveAvailable = False <br />  &nbsp; &nbsp; &nbsp; &nbsp;If Dir$(drivNam, 8) <> "" Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IsDriveAvailable = True <br />  &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;TheEnd: <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Exit Function <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;Errors: <br />  &nbsp; &nbsp; &nbsp; &nbsp;Resume TheEnd <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End Function <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Class   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/copy-move-delete-rename-explorer-like.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/copy-move-delete-rename-explorer-like.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Einträge aus Array löschen</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/eintraege-aus-array-loeschen.htm</link>
<category>Arrays</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/eintraege-aus-array-loeschen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/eintraege-aus-array-loeschen.htm</guid>
<content:encoded><![CDATA[ Public Function RemoveNthEntries( NthToRemove, arrayToRemoveFrom ) As Variant &nbsp;<br /> '=== Removes entries from arrayToRemoveFrom whos index value is in listEntriesToRemove <br /> '=== Returns a variant that contains an array value <br /> '=== NthToRemove and arrayToRemoveFrom can be either a Variant that contains an array <br /> '=== or an Array ( this is the reason there is no data type defined ) <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;If Not Isarray( arrayToRemoveFrom ) Then Exit Function <br />  &nbsp; &nbsp;<br /> '--- Store this return value in a variant to it can be converted into an array <br />  &nbsp; &nbsp;Dim IndexList As Variant <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;Dim newList As Variant <br />  &nbsp; &nbsp;Dim i As Integer <br />  &nbsp; &nbsp;Dim checkList List As Integer <br />  &nbsp; &nbsp;Dim ctr As Long <br />  &nbsp; &nbsp;Dim lowVal As Integer, highVal As Integer <br />  &nbsp; &nbsp;Dim numToRemove As Integer <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;lowVal = Lbound( arrayToRemoveFrom ) <br />  &nbsp; &nbsp;highVal = Ubound( arrayToRemoveFrom ) <br />  &nbsp; &nbsp;<br /> '--- Loop through Nth Items to be removed <br />  &nbsp; &nbsp;Forall aValueToRemove In NthToRemove <br /> '--- set value in list if number is in range of array bounds and is not a repeat <br />  &nbsp; &nbsp; &nbsp; &nbsp; If Cint( aValueToRemove ) >= lowVal And Cint( aValueToRemove ) <= highVal And Not Iselement( checkList( aValueToRemove )) Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; checkList( aValueToRemove ) = 1 <br />  &nbsp; &nbsp; &nbsp; &nbsp; numToRemove = numToRemove + 1 <br />  &nbsp; &nbsp;End If <br /> End Forall <br /> <br /> '--- If there were not valid entries, then quit now and return NOTHING <br /> If numToRemove = 0 Then Exit Function <br /> <br /> '--- Resize array to hold the original number minus the number of entries being removed <br /> Redim newList( highVal - lowVal - numToRemove ) <br /> <br /> '--- Loop through entries <br /> ctr = 0 <br /> For i = lowVal To highVal <br /> '--- If this index position is not in the checkList then <br />  &nbsp; &nbsp;If Not Iselement( checkList( i ) ) Then <br /> '--- Add it to the new array and increment counter <br />  &nbsp; &nbsp; &nbsp; &nbsp; newList( ctr ) = arrayToRemoveFrom( i ) <br />  &nbsp; &nbsp; &nbsp; &nbsp; ctr = ctr + 1 <br />  &nbsp; &nbsp;End If <br /> Next <br /> <br /> RemoveNthEntries = newList <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/eintraege-aus-array-loeschen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/eintraege-aus-array-loeschen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Elemente eines Array löschen</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/elemente-eines-array-loeschen.htm</link>
<category>Arrays</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/elemente-eines-array-loeschen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/elemente-eines-array-loeschen.htm</guid>
<content:encoded><![CDATA[ &nbsp;Public Function RemoveEntries( ValuesToRemove, arrayToRemoveFrom, compMethod As Integer ) As Variant <br /> '=== Removes entries from arrayToRemoveFrom whos value is in the ValuesToRemove array <br /> '=== Returns a variant that contains an array value <br /> '=== ValuesToRemove and arrayToRemoveFrom can be either a Variant that contains an array <br /> '=== or an Array ( this is the reason there is no data type defined ) <br /> '=== compMethod is used as defined in the StrCompare function; <br /> ' A number designating the comparison method. Use 0 for case-sensitive and pitch-sensitive, <br /> ' 1 for case-insensitive and pitch-sensitive, 4 for case-sensitive and pitch-insensitive, <br /> ' 5 for case-insensitive and pitch-insensitive. Use 2 to specify string comparison in <br /> ' the platform's collation sequence. If 2 is specified, strings are compared bit-wise. <br /> ' ... see help for details <br />  &nbsp; <br />  &nbsp; If Not Isarray( arrayToRemoveFrom ) Then Exit Function <br />  &nbsp; <br /> '--- Store this return value in a variant to it can be converted into an array <br />  &nbsp; Dim IndexList As Variant <br />  &nbsp; <br />  &nbsp; Dim newList As Variant <br />  &nbsp; Dim i As Integer <br />  &nbsp; Dim checkList List As Integer <br />  &nbsp; Dim ctr As Long <br />  &nbsp; Dim lowVal As Integer, highVal As Integer <br />  &nbsp; Dim numToRemove As Integer <br />  &nbsp; Dim foundFlag As Integer <br />  &nbsp; <br />  &nbsp; lowVal = Lbound( arrayToRemoveFrom ) <br />  &nbsp; highVal = Ubound( arrayToRemoveFrom ) <br />  &nbsp; <br /> '--- Initialize array, we are about to use Redim preserve to incrment array size <br />  &nbsp; Redim newList( 0 ) <br />  &nbsp; <br /> '--- Loop through entries <br />  &nbsp; ctr = 0 <br />  &nbsp; For i = lowVal To highVal <br /> '--- If this index position is not in the checkList then <br />  &nbsp; &nbsp; &nbsp; &nbsp;foundFlag = False <br /> '--- Loop through vals to remove and if there is a match flag it <br />  &nbsp; &nbsp; &nbsp; &nbsp;Forall aValueToRemove In ValuesToRemove <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If Strcompare( aValueToRemove, arrayToRemoveFrom( i ), compMethod ) = 0 Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;foundFlag = True <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Exit Forall <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Forall <br /> '--- If not found in list of entries to remove, then add to new array <br />  &nbsp; &nbsp; &nbsp; &nbsp;If Not foundFlag Then <br /> '--- Increment array, preserving existing value <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Redim Preserve newList( ctr ) <br /> '--- Set value to current value <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; newList( ctr ) = arrayToRemoveFrom( i ) <br /> '--- increment counter for next time 'round <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ctr = ctr + 1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; Next <br />  &nbsp; <br /> '--- Return value <br />  &nbsp; RemoveEntries = newList <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/elemente-eines-array-loeschen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/elemente-eines-array-loeschen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Elemente zu einem Array hinzufügen</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/elemente-zu-einem-array-hinzufuegen.htm</link>
<category>Arrays</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/elemente-zu-einem-array-hinzufuegen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/elemente-zu-einem-array-hinzufuegen.htm</guid>
<content:encoded><![CDATA[ Public Function AddValues( valuesToAdd, valuesToAddTo, iStartAt As Integer ) As Variant &nbsp;<br /> '=== Adds array or single value in valuesToAdd into valuesToAddTo array starting at the <br /> '=== iStartAt position. The remaining values are pushed up to the end. <br /> '=== Starting at 0 inserts at the beginning Starting at -1 appends to the end <br />  &nbsp; &nbsp;Dim iValuesToAdd As Integer <br />  &nbsp; &nbsp;Dim iValuesInStrings As Integer <br />  &nbsp; &nbsp;Dim newVal As Variant <br />  &nbsp; &nbsp;If Not Isarray( valuesToAddTo ) Then Exit Function <br />  &nbsp; &nbsp;iValuesInStrings = Ubound( valuesToAddTo) - Lbound( valuesToAddTo ) + 1 <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;Dim iBegin As Integer <br />  &nbsp; &nbsp;Dim ctr As Integer <br />  &nbsp; &nbsp;Dim i As Integer <br />  &nbsp; &nbsp;Dim iAppendFlag As Integer <br />  &nbsp; &nbsp;ctr = 0 <br />  &nbsp; &nbsp;iAppendFlag = False <br />  &nbsp; &nbsp;<br /> '--- Edit check iStartAt <br /> '--- If iStartAt is Negative or above last entry in strings <br />  &nbsp; &nbsp;If iStartAt < 0 Or iStartAt > iValuesInStrings - 1 Then <br /> '--- Get the next available entry in Strings <br />  &nbsp; &nbsp; &nbsp; &nbsp; iAppendFlag = True <br />  &nbsp; &nbsp; &nbsp; &nbsp; iBegin = iValuesInStrings <br />  &nbsp; &nbsp;Else <br /> '--- Start where they said to start <br />  &nbsp; &nbsp; &nbsp; &nbsp; iBegin = iStartAt <br />  &nbsp; &nbsp;End If <br /> '-- Calculate number of values being added <br />  &nbsp; &nbsp;iValuesToAdd = Ubound( valuesToAdd ) - Lbound( valuesToAdd ) + 1 <br /> '--- Redim to be able to hold the new values <br />  &nbsp; &nbsp;newVal = valuesToAddTo <br />  &nbsp; &nbsp;Redim Preserve newVal( Lbound( newVal ) To Ubound( newVal ) + iValuesToAdd ) <br /> '--- If this is not an append operation .... <br /> '--- Move values from iBegin and up to the end, so the new values can be inserted <br />  &nbsp; &nbsp;If Not iAppendFlag Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; For i = iValuesInStrings + iValuesToAdd - 1 To iValuesToAdd Step -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;newVal(i) = newVal(i - iValuesToAdd) <br />  &nbsp; &nbsp; &nbsp; &nbsp; Next <br />  &nbsp; &nbsp;End If <br />  &nbsp; &nbsp;ctr = Lbound( valuesToAdd ) <br /> '--- Now add the new values starting at iBegin <br />  &nbsp; &nbsp;For i = iBegin To iBegin + iValuesToAdd - 1 <br />  &nbsp; &nbsp; &nbsp; &nbsp; newVal(i) = Cstr( valuesToAdd(ctr) ) <br />  &nbsp; &nbsp; &nbsp; &nbsp; ctr = ctr + 1 <br />  &nbsp; &nbsp;Next <br />  &nbsp; &nbsp;AddValues = newVal <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/elemente-zu-einem-array-hinzufuegen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/elemente-zu-einem-array-hinzufuegen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>EntryInList</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/entryinlist.htm</link>
<category>Arrays</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/entryinlist.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/entryinlist.htm</guid>
<content:encoded><![CDATA[ Function EntryInList (Value As Variant, ValueList As Variant) As Integer &nbsp;<br /> ' This will return a 1 based value if the position in the list <br />  &nbsp; &nbsp; &nbsp; &nbsp;EntryInList = 0 <br />  &nbsp; &nbsp; &nbsp; &nbsp;i = 1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;Forall Entries In ValueList <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Entries = Value Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;EntryInList = i <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Exit Function <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp;i = i + 1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;End Forall <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/entryinlist.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/entryinlist.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Ersatz von &#64;Explode</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/ersatz-von-explode.htm</link>
<category>Äquivalent zu Makroformeln</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/ersatz-von-explode.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/ersatz-von-explode.htm</guid>
<content:encoded><![CDATA[ Function explode (Byval inString As String, OutList() As <br /> String, delim As String) <br /> <br /> 'This function takes a text field and splits the values <br /> into members of an array, based on the value passed as <br /> delim<br /> <br /> Dim idx As Integer<br /> Dim begin As Integer<br /> Dim i As Integer<br /> <br /> i = 0 <br /> begin = 1<br /> <br /> 'First make sure that the last character in inString is not <br /> a delimiter<br /> If Right$ ( inString , Len(delim) ) = delim Then<br /> inString = Left$(inString,Len(inString) - Len(delim))<br /> End If<br /> <br /> idx = Instr (begin , inString , delim)<br /> Do While idx > 0<br /> Redim Preserve outList(0 To i) As String<br /> outList(i) = Mid$ ( inString , begin , idx - begin )<br /> i = i + 1<br /> begin = idx + Len(delim)<br /> idx = Instr (begin , inString , delim)<br /> Loop<br /> <br /> Redim Preserve outList(0 To i) As String<br /> outList(i) = Mid$ ( inString , begin )<br /> explode = i + 1<br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/ersatz-von-explode.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/ersatz-von-explode.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Ersatz von &#64;Left</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/ersatz-von-left.htm</link>
<category>Äquivalent zu Makroformeln</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/ersatz-von-left.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/ersatz-von-left.htm</guid>
<content:encoded><![CDATA[ Function Left (sourceString As String, searchString As String) As String &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;pos% = Instr(sourceString, searchString) <br />  &nbsp; &nbsp; &nbsp; &nbsp;If pos% > 0 Then pos% = pos% -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;Left = Left(sourceString, pos%) <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/ersatz-von-left.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/ersatz-von-left.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Ersatz von &#64;LeftBack</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/ersatz-von-leftback.htm</link>
<category>Äquivalent zu Makroformeln</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/ersatz-von-leftback.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/ersatz-von-leftback.htm</guid>
<content:encoded><![CDATA[ Function LeftBack (sourceString As String, searchString As String) As String &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;For i% = Len(sourceString) To 1 Step -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;sourceStringBack$=sourceStringBack$ &amp; Mid(sourceString, i%, 1) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Next <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;For i% = Len(searchString) To 1 Step -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;searchStringBack$=searchStringBack$ &amp; Mid(searchString, i%, 1) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Next <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;pos% = Instr(sourceStringBack$, searchStringBack$) <br />  &nbsp; &nbsp; &nbsp; &nbsp;length% = Len(sourceStringBack$) <br />  &nbsp; &nbsp; &nbsp; &nbsp;start% = length% - pos% <br />  &nbsp; &nbsp; &nbsp; &nbsp;result$ = Right (sourceStringBack$, start%) <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;For i% = Len(result$) To 1 Step -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;turn$=turn$ &amp; Mid(result$, i%, 1) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Next <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;LeftBack=turn$ <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/ersatz-von-leftback.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/ersatz-von-leftback.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Ersatz von &#64;Right</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/ersatz-von-right.htm</link>
<category>Äquivalent zu Makroformeln</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/ersatz-von-right.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/ersatz-von-right.htm</guid>
<content:encoded><![CDATA[ Function Right (sourceString As String, searchString As String) As String &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;pos% = Instr(sourceString, searchString) <br />  &nbsp; &nbsp; &nbsp; &nbsp;length% = Len(sourceString) <br />  &nbsp; &nbsp; &nbsp; &nbsp;start% = length% - pos% <br />  &nbsp; &nbsp; &nbsp; &nbsp;Right = Right(sourceString, start%) <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/ersatz-von-right.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/ersatz-von-right.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Ersatz von &#64;RightBack</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/ersatz-von-rightback.htm</link>
<category>Äquivalent zu Makroformeln</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/ersatz-von-rightback.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/ersatz-von-rightback.htm</guid>
<content:encoded><![CDATA[ Function RightBack (sourceString As String, searchString As String) As String &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;For i% = Len(sourceString) To 1 Step -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;sourceStringBack$=sourceStringBack$ &amp; Mid(sourceString, i%, 1) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Next <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;For i% = Len(searchString) To 1 Step -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;searchStringBack$=searchStringBack$ &amp; Mid(searchString, i%, 1) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Next <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;pos% = Instr ( sourceStringBack$, searchStringBack$) <br />  &nbsp; &nbsp; &nbsp; &nbsp;If pos% > 0 Then pos% = pos% - 1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;result$ = Left ( sourceStringBack$, pos%) <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;For i% = Len(result$) To 1 Step -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp;turn$=turn$ &amp; Mid(result$, i%, 1) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Next <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;RightBack=turn$ <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/ersatz-von-rightback.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/ersatz-von-rightback.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Ersatz von &#64;Word</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/ersatz-von-word.htm</link>
<category>Äquivalent zu Makroformeln</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/ersatz-von-word.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/ersatz-von-word.htm</guid>
<content:encoded><![CDATA[ Function Word (sourceString As String, separator As String, number As Integer) As String &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;searchString$=SourceString &amp; separator ' add one separator to catch also the last substring <br />  &nbsp; &nbsp; &nbsp; &nbsp;For i% = 1 To number <br />  &nbsp; &nbsp; &nbsp; &nbsp;pos%=Instr(searchString$, separator) <br />  &nbsp; &nbsp; &nbsp; &nbsp;If pos%=0 Then Exit For <br />  &nbsp; &nbsp; &nbsp; &nbsp;substring$=Left(searchString$,pos%-1) <br />  &nbsp; &nbsp; &nbsp; &nbsp;searchString$=Mid(searchString$, pos%+1) <br />  &nbsp; &nbsp; &nbsp; &nbsp;Next <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;If pos% > 0 Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Word=substring$ <br />  &nbsp; &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Word="" <br />  &nbsp; &nbsp; &nbsp; &nbsp;End If <br /> <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/ersatz-von-word.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/ersatz-von-word.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Konvertieren Array zu Zeichenkette (vergl. &#64;Implode)</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/konvertieren-array-zu-zeichenkette-vergl.-implode.htm</link>
<category>Äquivalent zu Makroformeln</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/konvertieren-array-zu-zeichenkette-vergl.-implode.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/konvertieren-array-zu-zeichenkette-vergl.-implode.htm</guid>
<content:encoded><![CDATA[ Function Implode( valueToImplode, Seperator As String) As String &nbsp;<br /> '=== Returns the value of the list or array imploded into a single string using separator <br />  &nbsp; &nbsp;<br /> '--- If not array or list then quit <br />  &nbsp; &nbsp;If Not Isarray( valueToImplode ) And Not Islist( valueToImplode ) Then Exit Function <br />  &nbsp; &nbsp;Dim retVal As String <br />  &nbsp; &nbsp;Dim hitOne As Integer <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;retVal = "" <br /> '--- Loop through value to implode <br />  &nbsp; &nbsp;Forall aVal In valueToImplode <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp; If hitOne Then <br /> '--- Append seperator and value to return value <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;retVal = retVal &amp; Seperator &amp; aVal <br />  &nbsp; &nbsp; &nbsp; &nbsp; Else <br /> '--- Set inital value of return value to first value <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;retVal = aVal <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;hitOne = True <br />  &nbsp; &nbsp; &nbsp; &nbsp; End If <br />  &nbsp; &nbsp;End Forall <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;Implode = retVal <br />  &nbsp; &nbsp;<br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/konvertieren-array-zu-zeichenkette-vergl.-implode.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/konvertieren-array-zu-zeichenkette-vergl.-implode.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Konvertieren Zeichenketten zu Arrays(vergl. &#64;Explode)</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/konvertieren-zeichenketten-zu-arraysvergl.-explode.htm</link>
<category>Äquivalent zu Makroformeln</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/konvertieren-zeichenketten-zu-arraysvergl.-explode.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/konvertieren-zeichenketten-zu-arraysvergl.-explode.htm</guid>
<content:encoded><![CDATA[ Function Explode( valueToExplode As String, Seperator As String) As Variant &nbsp;<br /> '=== Gets the ValueToAdd and uses the Seperator as the <br /> '=== delimiter to populate the Strings Array <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;Dim Strings As Variant <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;Dim myNewVal <br />  &nbsp; &nbsp;Dim start As Integer <br />  &nbsp; &nbsp;Dim delim As Integer <br />  &nbsp; &nbsp;Dim ctr As Integer <br />  &nbsp; &nbsp;Dim finalValue As String <br />  &nbsp; &nbsp;<br />  &nbsp; &nbsp;Redim myNewVal(0) <br />  &nbsp; &nbsp;<br /> '--- Initialize <br />  &nbsp; &nbsp;ctr = 0 <br />  &nbsp; &nbsp;delim = 0 <br />  &nbsp; &nbsp;start = 1 <br />  &nbsp; &nbsp;<br /> '--- Get first position of Separator in valueToExplode <br />  &nbsp; &nbsp;delim = Instr(start,valueToExplode,Seperator) <br />  &nbsp; &nbsp;<br /> '--- If the separator was not found then set the entire valueToExplode to the first array alot <br />  &nbsp; &nbsp;If delim = 0 Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; myNewVal(0) = valueToExplode <br />  &nbsp; &nbsp;Else <br /> '--- If separator found, then cycle through valueToExplode string looking for separator <br /> ' cycle until the separator is not found <br />  &nbsp; &nbsp; &nbsp; &nbsp; While delim > 0 <br /> '--- Increment Array Preserving current value <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Redim Preserve myNewVal(ctr) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myNewVal(ctr) = Mid$(valueToExplode,start,delim - start) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;start = delim + Len( Seperator ) <br /> '--- Increment counter used to increment array <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ctr = ctr + 1 <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;delim = Instr(start,valueToExplode,Seperator) <br />  &nbsp; &nbsp; &nbsp; &nbsp; Wend <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> '--- Now that no more seperators have been found, <br /> '--- see if there is any final data left over <br />  &nbsp; &nbsp; &nbsp; &nbsp; finalValue = Mid$(valueToExplode,start) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /> '--- If there is a finalValue then append it to the list <br /> '--- (to handle test3 in Explode( "test1~test2~test3" ) ) <br />  &nbsp; &nbsp; &nbsp; &nbsp; If finalValue <> "" Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Redim Preserve myNewVal(ctr) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myNewVal(ctr) = finalValue <br />  &nbsp; &nbsp; &nbsp; &nbsp; End If <br />  &nbsp; &nbsp;End If <br />  &nbsp; &nbsp;<br /> '--- Reset Strings using the freshly built array <br />  &nbsp; &nbsp;explode = myNewVal <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/konvertieren-zeichenketten-zu-arraysvergl.-explode.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/konvertieren-zeichenketten-zu-arraysvergl.-explode.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>RemoveFromList</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/removefromlist.htm</link>
<category>Arrays</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/removefromlist.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/removefromlist.htm</guid>
<content:encoded><![CDATA[ Function RemoveFromList (Value As Variant, ValueList As Variant) &nbsp;<br /> Dim tmpValueList() As String <br /> x = 0 <br /> Redim Preserve tmpValueList(x) <br /> Forall vals In ValueList <br /> If Not Value = vals Then <br /> Redim Preserve tmpValueList(x) <br /> tmpValueList(x) = vals <br /> x = x + 1 <br /> End If <br /> End Forall <br /> RemoveValueFromList = tmpValueList <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/removefromlist.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/removefromlist.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>RemoveItemFromList</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/removeitemfromlist.htm</link>
<category>Arrays</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/removeitemfromlist.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/removeitemfromlist.htm</guid>
<content:encoded><![CDATA[ Function RemoveItemFromList (intItem As Integer, ValueList As Variant) &nbsp;<br /> ' *** intItem should be passed in zero based as well as ValueList <br /> Dim tmpValueList() As Variant <br /> Dim intItemCnt As Integer <br /> ' Init the temporary list <br /> Redim tmpValueList(0) <br /> intItemCnt = 0 <br /> For x = 0 To Ubound(ValueList) <br /> If Not intItem = x Then 'Not equal, we must <br /> keep this one in the list <br /> Redim Preserve tmpValueList(intItemCnt) <br /> tmpValueList(intItemCnt) = ValueList(x) <br /> intItemCnt = intItemCnt + 1 ' Count the <br /> items we have kept so that we can adjust the array properly <br /> End If <br /> Next <br /> RemoveItemFromList = tmpValueList <br /> <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/removeitemfromlist.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/removeitemfromlist.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>RemoveRangeFromList</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/removerangefromlist.htm</link>
<category>Arrays</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/removerangefromlist.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/removerangefromlist.htm</guid>
<content:encoded><![CDATA[ Function RemoveRangeFromList (intStartPos As Integer, intEndPos As Integer, varInput As Variant) As Variant &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim tmpList() As Variant <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim intPosCnt As Integer <br />  &nbsp; &nbsp; &nbsp; &nbsp;intPosCnt = 0 <br />  &nbsp; &nbsp; &nbsp; &nbsp;For i = 0 To Ubound(varInput) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If i < intStartPos Or i > intEndPos Then <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Redim Preserve tmpList(intPosCnt) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tmpList(intPosCnt) = varInput(i) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;intPosCnt = intPosCnt + 1 <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp;Next <br />  &nbsp; &nbsp; &nbsp; &nbsp;RemoveRangeFromList = tmpList <br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/removerangefromlist.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/removerangefromlist.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Selection Sort</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/selection-sort.htm</link>
<category>Sortierungen</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/selection-sort.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/selection-sort.htm</guid>
<content:encoded><![CDATA[ Sub SelectionSort (MyArray As Variant) &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;If Ubound (MyArray) <= 0 Then Exit Sub <br />  &nbsp; &nbsp; &nbsp; &nbsp;nElem = Ubound (MyArray) + 1 <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp;For i = nElem - 1 To 1 Step -1 <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Large$ = MyArray(0) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;indx = 0 <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For j = 1 To nElem <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If j > i Then Exit For <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Strcompare(MyArray(j), Large$) > 0 Then ' Ascending order <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Large$ = MyArray(j) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;indx = j <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next <br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MyArray(indx) MyArray(i) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MyArray(i) = Large$ <br />  &nbsp; &nbsp; &nbsp; &nbsp;Next <br /> <br /> End Sub   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/selection-sort.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/selection-sort.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Text zu Beginn oder Ende einer Textliste einfügen</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/text-zu-beginn-oder-ende-einer-textliste-einfuegen.htm</link>
<category>Listenhandling</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/text-zu-beginn-oder-ende-einer-textliste-einfuegen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/text-zu-beginn-oder-ende-einer-textliste-einfuegen.htm</guid>
<content:encoded><![CDATA[ Function AddToTextList (strNew As String, intMode As Integer, itemText As NotesItem) As Integer &nbsp;<br /> ' ----------------------------------------------------------------------------------------------------------------------------- <br /> ' strNew - The text string to be written. <br /> ' mode - 0 = new item appended to the bottom of the list. 1 = new item is added at the top of the list. <br /> ' itemText - Notes item to add the Text to. <br /> ' ----------------------------------------------------------------------------------------------------------------------------- <br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;Redim newList(0) As String <br />  &nbsp; &nbsp; &nbsp;Dim x As Integer <br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;Select Case intMode <br />  &nbsp; &nbsp; &nbsp;Case 0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' New items appear at the end of the list field <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call itemText.AppendToTextList(strNew) <br />  &nbsp; &nbsp; &nbsp;Case 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' New items appear at the top of the list field <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If itemText.text = "" Then &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' Handle a current history item with just a single NULL value. <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Redim newList(0) As String <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Redim newList(Ubound(itemText.values)+1) As String <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' Transfer previous history entries <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For x = 0 To Ubound(itemText.values) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;newList(x+1) = itemText.values(x) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' Add the new history entry <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;newList(0) = strNew <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;' Rewrite the hsitory list <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;itemText.values = newList <br />  &nbsp; &nbsp; &nbsp;End Select <br />  &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp;AddToTextList = True <br />  &nbsp; &nbsp; &nbsp;<br /> End Function   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/text-zu-beginn-oder-ende-einer-textliste-einfuegen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/text-zu-beginn-oder-ende-einer-textliste-einfuegen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Versionsführung in Dokumenten (Bearbeitungshistorie)</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/versionsfuehrung-in-dokumenten-bearbeitungshistorie.htm</link>
<category>Bearbeitungshistorie</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/versionsfuehrung-in-dokumenten-bearbeitungshistorie.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/versionsfuehrung-in-dokumenten-bearbeitungshistorie.htm</guid>
<content:encoded><![CDATA[  <ul> <li><a href="http://www.mmi-consult.de/FAQ/dx/EditHist.nsf/$file/EditHist.nsf" title="EditHist.nsf"EditHist.nsf/>EditHist.nsf</a> </li></ul>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/versionsfuehrung-in-dokumenten-bearbeitungshistorie.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/versionsfuehrung-in-dokumenten-bearbeitungshistorie.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Wie kann ich bekannte Profildokumente in einer DB löschen</title>
<pubDate>Wed, 4 Apr 2001 12:52:21 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-bekannte-profildokumente-in-einer-db-loeschen.htm</link>
<category>Profile</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-bekannte-profildokumente-in-einer-db-loeschen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-bekannte-profildokumente-in-einer-db-loeschen.htm</guid>
<content:encoded><![CDATA[ Sub Initialize <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim s As NotesSession <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim db As NotesDatabase <br />  &nbsp; &nbsp; &nbsp; &nbsp;Dim doc As NotesDocument <br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Set s = New NotesSession <br />  &nbsp; &nbsp; &nbsp; &nbsp;Set db = s.CurrentDatabase <br />  &nbsp; &nbsp; &nbsp; &nbsp;Set doc = db.GetProfileDocument("<Profile>") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;Call doc.remove(True) <br /> End Sub <br /> <br /> <strong><br /> Hinweis:</strong> <br /> <br /> die nachfolgende Tabelle listet die Namen einiger Standard-Profile aus Lotus Templates auf: <br />  <table border width=100%> <tr valign=top> <td width=10%><strong>Template</strong>  <td width=30%><strong>Profilename (siehe Codestück oben)</strong>  <td width=58%><strong>Verwendung</strong>  <tr valign=top> <td>Mail50.ntf  <td>HolidayProfile  <td>Liste der vom Benutzer importierten Feiertagsdokumente  <tr valign=top> <td>Mail50.ntf  <td>CalendarProfile  <td>Kalendervoreinstellungen, Eigentümerinformationen, Außer-Hausagent u.a.  <tr valign=top> <td>PubNames.ntf  <td>DirectoryProfile  <td>Vorgabe für Sortierung von Gruppen, Verzeichiskataloge etc.  <tr valign=top> <td>PerNames.ntf  <td>DirectoryProfile  <td>Vorgabe für Sortierung von Gruppen, Auswahl von Grafiken, Einstellungen für LDAP  <tr valign=top> <td>DiscSw50.ntf  <td>Interest Profile  <td>Intressenprofil für den Benachrichtigungsagenten</table> <br /> <br />  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/wie-kann-ich-bekannte-profildokumente-in-einer-db-loeschen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-bekannte-profildokumente-in-einer-db-loeschen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Wie kann ich verhindern, daß in kategorisierten Ansichten mit Dokumenten ohne Leseberechtigung die Kategorien dennoch erscheinen?</title>
<pubDate>Fri, 7 Apr 2000 18:49:45 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-verhindern-daß-in-kategorisierten-ansichten-mit-dokumenten-ohne-leseberechtigung-die-kategorien-dennoch-erscheinen.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-verhindern-daß-in-kategorisierten-ansichten-mit-dokumenten-ohne-leseberechtigung-die-kategorien-dennoch-erscheinen.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-verhindern-daß-in-kategorisierten-ansichten-mit-dokumenten-ohne-leseberechtigung-die-kategorien-dennoch-erscheinen.htm</guid>
<content:encoded><![CDATA[ Bislang wurden in kategorosierten Ansichten auch in den Fällen, wo ein Benutzer kein Leserecht auf eines der Dokumente der Kategorie hat, trotzdem die Kategoriebegriffe (inkl. evtl. Summenbildungen auf Kategorieebenen) dargestellt. <br /> <br /> Unter R5 kann die Ansicht mit dem View-Attribut "Don't show categories having zero documents" versehen, um dieses zu verhindern. &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/wie-kann-ich-verhindern-daß-in-kategorisierten-ansichten-mit-dokumenten-ohne-leseberechtigung-die-kategorien-dennoch-erscheinen.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-verhindern-daß-in-kategorisierten-ansichten-mit-dokumenten-ohne-leseberechtigung-die-kategorien-dennoch-erscheinen.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Gibt es endlich einen Debugger für die Formelsprache?</title>
<pubDate>Mon, 16 Aug 1999 14:18:19 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/gibt-es-endlich-einen-debugger-fuer-die-formelsprache.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/gibt-es-endlich-einen-debugger-fuer-die-formelsprache.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/gibt-es-endlich-einen-debugger-fuer-die-formelsprache.htm</guid>
<content:encoded><![CDATA[ Noch nicht, jedoch sind erste Vorläufer bereits erkennbar, wenn man bei der Wahl des Menüpunktes <br /> File - Tools - Debug LotusScript <br /> <br /> die Tastenkombination <CTRL><SHIFT> gedrückt hält. &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/gibt-es-endlich-einen-debugger-fuer-die-formelsprache.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/gibt-es-endlich-einen-debugger-fuer-die-formelsprache.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Wie kann ich versionsabhängige Funktionen verbergen/unterdrücken?</title>
<pubDate>Thu, 28 Jan 1999 12:28:19 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-versionsabhaengige-funktionen-verbergenunterdruecken.htm</link>
<category>Datenbankentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-versionsabhaengige-funktionen-verbergenunterdruecken.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-versionsabhaengige-funktionen-verbergenunterdruecken.htm</guid>
<content:encoded><![CDATA[ In neuen Notes Release werden gelegentlich neue Gestaltungselemente oder neue @Funktionen eingeführt, die dann von Workstations mit früheren Releases nicht interpretiert werden können. <br /> <br /> Als Entwickler kann man durch "verbergen" von neuen Gestaltungselementen oder konditionaler Ausführung von @Funktionen Fehlermeldungen und Störungen vermeiden. Hierzu ist die "@Version" Funktion zu verwenden, die ermittelt, welche Workstation-Release der Anwender nutzt, der gerade ein Gestaltungselement darstellt oder @Funktionen ausführt. <br /> <br /> @Version liefert folgende Rückgabewerte: &nbsp; <table border> <tr valign=top> <td bgcolor=#ffffd0> <div align=center><strong>Notes Release</strong></div> <td bgcolor=#ffffd0> <div align=center><strong>"@Version" Rückgabewert</strong></div> <tr valign=top> <td>3.x  <td>114  <tr valign=top> <td>4.0x  <td>136  <tr valign=top> <td>4.1x  <td>138  <tr valign=top> <td>4.5x  <td>145  <tr valign=top> <td>4.6x  <td>147</table> <br /> <br /><br /> <br /> Zusätzlich kann man mit @UserRoles auch noch bestimmen, ob der Anwender mit einem Notes-Client oder einem Web-Browser die Anwendung nutzt.   ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/wie-kann-ich-versionsabhaengige-funktionen-verbergenunterdruecken.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-versionsabhaengige-funktionen-verbergenunterdruecken.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Unterstütze DB Elemente für Web-Design</title>
<pubDate>Thu, 21 May 1998 10:02:44 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/unterstuetze-db-elemente-fuer-web-design.htm</link>
<category>Webentwicklung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/unterstuetze-db-elemente-fuer-web-design.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/unterstuetze-db-elemente-fuer-web-design.htm</guid>
<content:encoded><![CDATA[ Im Domino 1.5 Handbuch ist eine <a href=Notes://isar/80256422004C888A/48CB7FB14FD8C82B802564060066C861/BA08709850661B6B80256422004CBB81><span style="text-decoration:underline">Tabelle</span></a> entahlten, die alle unterstützten Funktionen gegenüberstellt. Hier werden neben den <a href=Notes://isar/80256422004C888A/48CB7FB14FD8C82B802564060066C861/13DA871FC890BF7F80256422004CAD23><span style="text-decoration:underline">reservierten Feldnamen</span></a> ($$....), auch die <a href=Notes://isar/80256422004C888A/48CB7FB14FD8C82B802564060066C861/00CC9F7F7F922D6F80256422004CAD91><span style="text-decoration:underline">reservierten Maskennamen</span></a> ($$....) zusammengestellt.  <p>Die Inhalte der <a href=Notes://isar/80256422004C888A/48CB7FB14FD8C82B802564060066C861/8D43B7D15C38659A80256422004CC371><span style="text-decoration:underline">HTTPD.CNF</span></a> Datei zur Konfiguration von verwendeten MIME Typen sind ebenfalls zu finden. &nbsp; <p>Die Syntax der Domino URL Befehle hingegen sind in der Online-Hilfe nur unvollständig und besser in diesem Dokument beschrieben... Dank an die Entwickler bei Iris Development!  <ul> <li><a href="http://www.mmi-consult.de/FAQ/dx/url.pdf/$file/url.pdf" title="url.pdf"url.pdf/>url.pdf</a></li></ul>  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/unterstuetze-db-elemente-fuer-web-design.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/unterstuetze-db-elemente-fuer-web-design.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Anzeigen von versteckten Ansichten in Datenbanken</title>
<pubDate>Thu, 2 Apr 1998 12:39:44 +0200</pubDate>
<link>http://www.mmi-consult.de/FAQ/dx/anzeigen-von-versteckten-ansichten-in-datenbanken.htm</link>
<category>Benutzung</category>
<dc:creator>Manfred Meise</dc:creator>
<comments>http://www.mmi-consult.de/FAQ/dx/anzeigen-von-versteckten-ansichten-in-datenbanken.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://www.mmi-consult.de/FAQ/dx/anzeigen-von-versteckten-ansichten-in-datenbanken.htm</guid>
<content:encoded><![CDATA[ Oft haben Anwendungsentwickler versteckte Ansichten in Ihren Datenbanken eingebaut, in denen z.B. nach Auswahlbegriffen gesucht wird. Diese können sich natürlich im Aufbau, der Darstellung und des Dokumentenumfanges von denjenigen unterscheiden, die einem Benutzer unmittelbar zu Verfügung gestellt werden. <br /> <br /> Um die versteckten Ansichten einer Datenbank anzuzeigen geht man wie folgt vor: <br /> 1. &nbsp; &nbsp; &nbsp; &nbsp;Ausgangspunkt ist der Arbeitsbereich mit den angezeigten Datenbankikonen <br /> 2. &nbsp; &nbsp; &nbsp; &nbsp;<CTRL><SHIFT> auf der Tastatur betätigen <br /> 3. &nbsp; &nbsp; &nbsp; &nbsp;Doppelklick auf die Datenbankikone, der anzuzeigenden Datenbank &nbsp;  ]]></content:encoded>
<wfw:commentRss> http://www.mmi-consult.de/FAQ/dxcomments/anzeigen-von-versteckten-ansichten-in-datenbanken.htm</wfw:commentRss>
<wfw:comment> http://www.mmi-consult.de/FAQ/dx/anzeigen-von-versteckten-ansichten-in-datenbanken.htm?opendocument&amp;comments</wfw:comment>
</item>
</channel></rss>

