Software Guide

Die besten Tipps, Anleitungen und Downloads

Ihre Werbung auf Software Guide

Sie möchten in dieser Box oder an anderer Stelle dieser Webseiten eine Werbung schalten? Sehen Sie sich dazu am besten einfach mal die verschiedenen Möglichkeiten an.


LotusScript History

History KlassePurpose:
Usually, a document history/logging doesn’t tell you very much about what was being changed in the document:
History old style

This history class observes changes of a UI document and writes these changes into a history field.
2

In addition, you can use this class to add an entry in the backend (e.g. if you change the status of a document via Lotus Script) or to empty the history field.

Implementation

The history class can be implemented in 6 easy steps:

  1. Download and unzip the file, create a new scipt library, import it via „File / Import…“ and save it by using an appropriate name, e.g. “ClassHistory”.
  2. Open the form in that you want to add the history and create a table or text (separated by tabs) which will be the header of the history:
    Date | User | Changes
    3
  3. Place a new field (field name e.g. ‚History‘) below the header: type ‚Text‘, allow multiple values, ‚computed when composed‘, ‚display separate values with ‚-New Line-‚.
  4. Add the following code in the Global Options of the form:
    Use "ClassHistory"
  5. In the form’s Global Declarations, add the following line of code:
    Dim g_history As History
  6. Enter the following code in the PostOpen event:
    ' The strItemsArray contains the field names you want to observe.
    	Dim strItemsArray(2) As String	
    	strItemsArray(0) = "Subject"
    	strItemsArray(1) = "Date"
    	strItemsArray(2) = "Body"
    ' The strItemDspArray contains the field names that are displayed,
    ' if you do not want to use different display names, then just pass strItemsArray
    ' as 3rd parameter to the PostOpenStartObservation method.
    	Dim strItemDspArray(2) As String
    	strItemDspArray(0) = "The Subject"
    	strItemDspArray(1) = "Last modified on"
    	strItemDspArray(2) = "Content"
    ' intMaxLenEntryArray is the maximum length of each value being displayed. 
    ' Provide an empty array if you do not want to limit this.
    ' Here we limit each value to 75 chars max.
    	Dim intMaxLenEntryArray(2) As Integer
    	Dim i As Integer
    	For i = 0 To 2
    		intMaxLenEntryArray(i) = 75
    	Next
    ' "History" is the name of the history field.
    	Set g_history = New History("History")
    ' Now we call the initial method of this History object
    	Call g_history.PostopenStartObservation(Source, strItemsArray, strItemDspArray, intMaxLenEntryArray)

That’s it, after saving the form, the history class should work.

For additional methods and properties see the source code of this class.

Please note that the method ‚PostopenStartObservation‘ also observes
a) the event ‚QueryModeChange‘ for changing the document from read mode to edit mode.
b) the event ‚PostSave‘ for saving changes to the item ‚History‘.

Frequently Asked Questions and Known Issues

  1. Question: Would it be possible to amend it so that the max entries setting meant that the last 20 edits would be retained? So the oldest entry dropped off each time a new one was added.

    Answer: You can change this behavior very easy:
    Open the script library and switch to the „Options“. At the bottom there is the section ‚CONSTANTS‘. Change the following Integer (20) to a value you need, e.g. 20000:

    Const HIST_MAXENTRIES% = 20 'Maximum entries in the history. You can change this value via the Property MaxEntries

    You also do have the possibility to change this value for every history object you create via the Property ‚MaxEntries‘.

    Please note that we do have a limit in Notes/Domino regarding text-items (maximum 64,363 characters). Therefore I’ve implemented a second constant (HIST_MAX_SIZE_CHARS). So even if you allow 20000 history entries (HIST_MAXENTRIES), this class will drop off the oldest entries to avoid a breakage of this limit if you reach 60,000 chars in your history text-field.

  2. Question: I have a form in an ND7 database that only seems to log changes using the history class when I debug it. If I turn off the debugger and try to make changes none get logged. It’s the strangest thing. I use the code in the same database in a different form and it works great.

    Answer: In the „PostOpenStartObservation“ sub (that is usually called in the Post Open event of a form), there is the following code:

    On Event Querymodechange From m_uidoc Call ProcessQuerymodeChange

    I am using this to avoid using extra code in the QuerymodeChange event. In some circumstances, this does not work for some unknown reasons (Notes bug?).
    To solve this issue, comment out this line and add a code in the Querymodechange event of the form:

    Call History.ProcessQuerymodeChange(Source, Continue)

    Since this sub is private, you need to change it in the history class from from private to plublic:

    Private Sub ProcessQuerymodeChange(Source As NotesUIDocument, Continue As Variant)

    To:

    Public Sub ProcessQuerymodeChange(Source As NotesUIDocument, Continue As Variant)
  3. Question: «I’m getting the error message ‚Subscript out of range’» OR «Not all of the mentioned fields are being logged».

    Answer: Check the arrays in the PostOpen event of the form. Also, note that the default for array indexes in LotusScript is 0 based and not 1 based.

  4. Question: I am experiencing crashes on ND 6.5.3 once in a while, e.g. when using the preview pane.

    Answer: Thomas Schulte has reported a possible workaround (function xRecordItemContent):

    1. Remove the line Dim vitemvaluesArray() as variant.
    2. Replace Redim vItemvluesArray(intItems) with Redim vItemvluesArray(intItems) as string.

Terms and conditions

You can use, redistribute and/or modify this class under the terms of the SOFTWARE GUIDE LICENSE.
This history class is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the SOFTWARE GUIDE LICENSE for more details.

By downloading this software, you are accepting these terms and conditions.

Downloads

Donation

Do you like my work? Any donation would be highly appreciated.

Wish List

Version History and Changelog

  • 1.5 [2005-03-16] – published on 2006-03-14:
    Bug fix: In method AddEntry: update initial value of history item (needed if this method is used in a form with active observation; this avoids discarding of AddEntry if fields have been changed)
    Feature: New method AddEntry2
    Feature: PostopenStartObservation: vItemNamesDspArray and vMaxEntryLenArray added
  • 1.4 [2005-01-30]:
    Bug fix: An error occurred if a new doc was created and then saved for more than one time without closing it.
  • 1.3 [2004-11-28]:
    Feature: Removed hardcoded item name for history-item, now we provide the item name when instantiating the new history object
    Bug fix: If you saved a document several times during editing without closing it, the history was written on every save. Now we do always compare with the initial values. This avoids useless multiple entries for one and the same field.
  • 1.2 [2004-10-17]:
    Bug fix: A right parenthesis „)“ was wrongly added to the end of an entry if an rtf changed
    Buf fix: Some functions were ‚public‘ and not ‚private‘
  • 1.1 [2004-10-10]:
    Feature: Now easier implementation of this class (PostOpen is the only event you need)
    Feature: New property „MaxEntries“
  • 1.0 [2004-10-01]:
    Initial release.

Any Questions?

As of 01/18/06, I have enabled comments on this page, feel free to post below any queries you have regarding this class (your e-mail address is required, but will not be published) – in English or German.

46 Comments:

Gravatar

1

Arpad Horvath

15. Februar 2006, 13:07

Kein Username bei Aufzeichnung bei Änderung von mehr als einem Feld. 
Wenn mehr als ein Feld im Dok. geändert wird, wird bei nur bei dem ersten geänderten Feld der Username angezeigt. Bei den folgenden nicht. Das hat zur Folge, dass die Einträge um ein oder zwei Tab-Sprünge nach links versetzt werden, und dadurch die Optik nicht mehr passt. 

Es macht ja Sinn den Name nicht „tausend“ mal anzeigen zu lassen. 

Nun meine Frage.
Ist es möglich das so zu programmieren, dass das Datum und die Änderung in der richtigen Formatierung erscheinen ? 
MfG Arpad Horvath

Gravatar

2

Michael (Author)

18. Februar 2006, 0:24

Arpad, ist ist kein Problem, das über Programmierung gelöst werden muss, sondern eine Sache der Einrichtung des Feldes, welches die Historie anzeigt. D.h. es sollte reichen, im Designer in der entsprechenden Maske den kompletten Absatz, der das Feld enthält, zu markieren und die Tabulatoren entsprechend zu setzen.

Gravatar

3

Henning

14. März 2006, 15:25

Ich habe die Funktion noch nicht angeschaut, trotzdem folgender Punkt. Einem User sagen die Feldnamen nicht immer was, wohl aber die „Überschrift“ (damit meine ich die Beschreibung für den User). Ist die History so aufgebaut, dass ich bei der Feldliste auch Aliasse o.ä. mit angeben kann, damit die Historie nicht die Feldnamen anzeigt, sondern die zugehörige Feldbezeichnung für den User ?

Gravatar

4

Michael (Author)

14. März 2006, 23:23

Ups, Henning, da hast Du mich gerade auf was aufmerksam gemacht:
Vor fast einem Jahr habe ich eine neue Version der Klasse entwickelt, aber bisher nie veröffentlicht :-(
Habe das nun gleich mal nachgeholt und die Version 1.5 veröffentlicht und außerdem die Gelegenheit genutzt, um diesen Artikel ins Englische zu übertragen (da ich sehr viele Hits aus dem Englischsprachigen Raum auf diesen Artikel habe).
Die Version 1.5 unterstützt natürlich auch den von Dir angesprochenen Punkt, genau deswegen hatte ich das damals auch eingebaut ;-)

Gravatar

5

joshua hesson

27. April 2006, 18:06

when i imported the lotusscript into a new script library, it imports everything into the Declarations…is that where it should be? when i run through it with the debugger, i get several errors, here is one…

„Run-time error — procedure: , error #200 (Attempt to access uninitialized dynamic array), line #311“
any help is greatly appreciated!

Gravatar

6

Michael (Author)

27. April 2006, 22:32

Joshua, declarations is fine.
Have you already implemented the class (see Implementation above) and then this error occurred? You may need to double-check if you have followed everything mentioned. It seems as if you do not use a correct array.

Gravatar

7

joshua hesson

28. April 2006, 13:52

Ok, re-imported the lotusscript file, copied the other parts to where they should go (Options, etc…) and tried again. No errors this time, but its not appending the history of field changes. I get the initial entry of Document Created, but nothing else. How does field changes get written to the History field?

Gravatar

8

Michael (Author)

30. April 2006, 11:55

Field changes are being logged via Querymodechange. Have you tried the workaround described above (FAQ, question #2)?

Gravatar

9

joshua hesson

1. Mai 2006, 16:24

Do you possibly have a „sample“ database…one with just this script in it and arranged the way it should be? If so, could you email it to me at [removed by Michael]

Its probably not working because of something I’m not doing right, but if I see how its all laid out, then I can get it working in my database.

Thanks!

Gravatar

10

Michael (Author)

2. Mai 2006, 22:34

joshua:
I have just uploaded a sample database, see above the download link.
Also, I have removed your email address from your comment to avoid that spam bots catch your address…

Gravatar

11

Ingo Spichal

4. Mai 2006, 11:31

Hallo,
ich nutze die History-Klasse schon länger und bin gerade über ein Problem gestolpert, bei dem ich nicht mehr weiterkomme.

Ich habe in einer Anwendung die aktuelle Version der History-Klasse eingebaut. In einer Maske (Hauptdokument) funktioniert die History wunderbar. In den drei anderen Masken der Datenbank (Antwortdokumente) passiert gar nichts.

Wenn ich den Debugger mitlaufen lasse, erhalte ich beim QueryModeChange folgende Fehlermeldung :

Error #91
Object variable not set
Line #583 in Procedure : RECORD

Soweit ich das sehe, bekomme ich das Dokumentobjekt nicht übergeben.

Gibt es da ein Problem mit Antwortdokumenten oder hab ich evtl. etwas übersehen ? Die Implementation ist identisch zum Hauptdokument.

Gravatar

12

Michael (Author)

4. Mai 2006, 20:56

Ingo, grundsätzlich sollte es bei Antwort-Doks kein Problem geben. Hast Du mal oben unter „Fequently Asked Questions“ den Punkt #2 getestet?

Gravatar

13

Ingo Spichal

5. Mai 2006, 8:54

Hallo Michael,

danke für die Antwort. Ich habe gestern abend den Fehler noch gefunden. Ist mir schon fast peinlich, aber ich hatte in den drei Antwortmasken in den Declarations das „Dim g_history As History“ vergessen. Funktionierte dann natürlich sofort.

An dieser Stelle vielen Dank für die wirklich super Klasse, die History kommt mittlerweile bei uns in fast allen Anwendungen zum Einsatz.

Gravatar

14

stephen hood

21. Juni 2006, 17:58

Thanks for this it’s very nice. Few questions.

1. I would like the list to be reversed with the most recent at the top since that is usually the most relevant for users. Pointers on how to do that?

2. It would be nice to flag a *general* modification entry („Document was modified“) if *none* of the fields under observation changed, but any other field did. Actually it would be better if that list of „other“ fields could also be defined so that hidden fields used for programming flow didn’t trigger an entry. You may still want to show a document changed, but not necessarily provide the detail of your observed fields. It would mean only needing your neat piece of work to do it all. Again any pointers on where I could plug that into your system?

3. Integration with *existing* documents. It would be very useful addition if the history field detected it was on a existing document but the field was *empty* and inserted the created line based on the doc.Created property, not Now. Again this would provide a seamless plug&play into existing systems. Right now the created on entry is triggered by isNewNote which is great for a new system but not existing ones. Pointers on where/how to plug this in?

Again thanks, very nice stuff.

Gravatar

15

Michael (Author)

22. Juni 2006, 0:00

Stephen,
Since I have not seen the code of this class for several weeks, I cannot provide you with tips without deep evaluation again. Therefore I recommend that you evaluate the source code on your own, then you can modify it directly.

Gravatar

16

balaji

22. Juni 2006, 19:19

i a lotus notes developer , so i think that the discussion will be useful for me . byee

Gravatar

17

stephen hood

23. Juni 2006, 21:16

That’s fine, I asssumed you were still actively developing it and it would be quicker to get a few quick pointers than walking thru and understanding the implications of your code.

Not a problem. Thanks for responding.

Gravatar

18

Arpad Horvath

13. Juli 2006, 11:14

Hallo Michael,
ich hatte bis vor kurzem eine ältere Version des Scriptes im Einsatz. Vor ca. 2 Wochen habe ich mir die V1.5 runtergeladen und meine Masken entsprechend angepasst. Es funktioniert auch soweit alles wunderbar. Sogar das im Beitrag Nr.1 erwähnte „Problem“ habe ich in den Griff bekommen. Nun habe ich aber ein anderes. (Vielleicht mache ich ja auch nur was falsch). Ich habe die Historiy auch in ein Profile-Doc eingebaut. Aber da fuktioniert die Aufzeichnung nicht. Er zeichnet da einfach nichts auf. Mit dem „alten“ Script hat das funktioniert.

Ein Anliegen habe ich noch.
Gehe ich Recht in der Annahme, dass dieses Script nur im Front-End die Aufzeichnungen macht, oder ist es auch möglich die Aufzeichnungen über das Back-End zu machen?
Ich habe nämlich ein paar Scripte gebastelt die auf Dokumente im Back-End schreibend zugreifen und würde die im Back-End gemachten Änderungen auch gerne in die History mit einfliesen lasssen.
Wenn es möglich ist, könntest Du mir einen Tipp geben wie ich das machen muss? Evtl. ein Beispiel wie ich das machen muss.

Ansonsten ist das Script echt Super. Ach das mit den Feld-Alias ist echt Toll.

MfG
Arpad Horvath

Gravatar

19

Michael (Author)

13. Juli 2006, 22:45

Arpad, im Code selbst ist am Anfang die Klasse im Detail beschrieben, dort siehst Du auch, welche Methoden Du auf Backenddokumente anwenden kannst (AddEntry, AddEntry2, Empty).

Gravatar

20

Anne

19. Juli 2006, 8:01

Hallo Michael,

ich habe die History so überarbeitet, dass die neuesten Einträge vorn stehen. Bei Interesse kann ich die gerne schicken.

LG Anne

Gravatar

21

Patrick Kwinten

19. Juli 2006, 14:48

Thanks for the great story. I like the code a lot.

Maybe a ‚dumb‘ question: you wrote:

„You also do have the possibility to change this value for every history object you create via the Property ‘MaxChanges’.“

Where can I find this Property? (I am working in a ND 6 environment)

Gravatar

22

Michael (Author)

19. Juli 2006, 21:44

Hi Anne, danke für die Info.

Patrick:
There is a mistake in the description above, the correct name of the class property is „MaxEntries“ and you can find it in the source code. Will correct it now above…

Gravatar

23

Roel

9. August 2006, 19:01

This is great class as a sample or application. Great job. One question, how do you do when the doc is changed from backend? Perhaps not a logical question for this application…not sure… event wont work from the backend…anyways, if you have thought, please share…thank

Btw, I made the changes to put newest at the top. The changes is only at the replaceHistory method. If anyone, needs it let me know.

Roel

Gravatar

24

Michael (Author)

10. August 2006, 21:52

Roel, take a look at the sourcecode, there I have described how to apply backend methods (AddEntry, AddEntry2, Empty).

Gravatar

25

furestine

3. Oktober 2006, 10:16

hello there,
i use the sourcecode and its almost the requirement that i need.
in my requirement, i need also to display the new value of the field changed aside from the old value of the field.so, i add the &m_vNewValuesArray(i) in the result of the array.
the problem is, my db has 10 forms which uses only one history subform. and only 3 forms with fields that needs to be track. my questions are:
1. how will i do the code to identify that these fields are in this form, and the other fields are in the other form.
2. if i edit only a particular form, the log will only display the fields edited in that form only.
3. what about the other forms with fields that dont need to be track?considering that all forms uses only one history subform. with these form, the event log should only display the date and time it was created, name of the user. and if someone edited the document, the log will append the date and time it is edited and the name of the user.

i hope you can help me with this. and i was really impressed of the code because its so neat and its so elegant. im not a good lotus script programmer but i know how to appreciate the code.

thank you in advance

Gravatar

26

Michael (Author)

3. Oktober 2006, 20:00

furestine, same as comment #15:
Since I have not seen the code of this class for several weeks, I cannot provide you with tips without deep evaluation again. Also, unfortunately I don’t have the time to provide support on any specific modifications.

Gravatar

27

furestine

5. Oktober 2006, 9:38

ok. so, what if the one field in the form does not need to be track. and in the log it should only display the date, time and user name? where can i do that?

Gravatar

28

furestine

5. Oktober 2006, 12:01

why is that everytime i rename the script library classHistory, I have an error „Cannot find external name:History“ ? why is that?

Gravatar

29

furestine

5. Oktober 2006, 12:33

what if i have an agent to run the changes of fields in the document?what are the functions i can use?

Gravatar

30

Michael (Author)

5. Oktober 2006, 19:22

furestine, again:

I don’t have the time to provide support on any specific modifications.

Also, I can’t help you with that error message.
The agent should use the backend methods only, check out the source code.

Gravatar

31

Joel Phelan

10. Oktober 2006, 17:12

Understanding that you’re busy (I can sympathize), in order to use multiple fields for output instead of the single history field, what methods/subs need to be modified in the class? Basically, I am looking to use this class in conjunction with a web change logger that I have written and need to overcome the differences in how browsers and the notes client handle tabs (browsers will strip out the tab character). I have done this by writing each „column“ to an individual field in the web.

Gravatar

32

Michael (Author)

11. Oktober 2006, 23:21

Joel, since I have not seen the code of this class for several months, I cannot provide you with tips without deep evaluation again. Therefore I recommend that you evaluate the source code on your own, then you can modify it directly.

Gravatar

33

furestine

17. Oktober 2006, 7:59

in your code in the replace history function:
‚// Create target array
Redim vNewValuesArray(intEntryAmount-1)
For j = 0 To intEntryAmount-1
‚If the ubound of the history array is less than the max. allowed amount – 1, then we start with 0.
‚else we start with the difference {history-array-ubound minus max-allowed-amount + 1}
If (intLastPosition >>
in the line
vNewValuesArray(j) = vTargetArray(intStartNew + j),

i change it from
vNewValuesArray(intEntryAmount -1-j) = vTargetArray(intStartNew + j) but still all mixed up.. this line is really very complex to edit. i hope you could help me with this. i really hope you could find time to answer this query. thank you in advance

Gravatar

34

Michael (Author)

17. Oktober 2006, 23:17

furestine, please read comment #26 and 30 again.

Gravatar

35

Scott Eisele

31. Januar 2007, 15:49

Hi, I have used your code and it works Great. I am not using a separate tab I am just recording the information at the bottom of the document. Other then that I have made no other changes. Now I’ve been asked to enable it to work through a web interface. You can see history that has been created through the notes interface, in the web interface but when changes are made throught the web interface they are not recorded. Is there something that need to be done to active this so that it can be used in the web interface as well?

Gravatar

36

Michael (Author)

2. Februar 2007, 20:18

Scott, sorry I’m not familiar with Notes & web.

Gravatar

37

Ken

22. Februar 2007, 20:45

I am having an issue with spacing when the history has multiple changes to display. On a single change the format is perfect, but when there are more than a sinlge change the 2nd entry and beyond all display starting immediately under the last digit of the date. For Example:

02/22/2007 – 14:24 Joe User Changed field ‚Priority‘ (former:’n/a‘)
02/22/2007 – 14:29 Joe User Changed field ‚Status‘ (former:’n/a‘)
Changed field ‚Date Actioned‘ (former:’n/a‘)

Gravatar

38

Cash

19. April 2007, 12:32

Habe die History mal getestet und finde das wirklich perfekt.
Vor dem Speichern entziehe ich der Person per Button die Autorenrechte und gebe diese einen anderen Benutzer (Workflow).
Dadruch kommt es beim Speichern immer zu einer Fehlermeldung das der User keine Rechte mehr hat. Die Protokollierung funktioniert trotzdem. Kann ich die Fehlermeldung unterdrücken?

Cash

Gravatar

39

Stefan Lindh

31. Mai 2007, 11:01

It’s work perfectly, you just need to work with the text properties – tab stops, if you have the tab problem for line two or more.

Gravatar

40

Paul

8. Juni 2007, 3:27

Hi,
Good job ! Thanks for your code, I have used the code and it’s work great!
One question is, what need to be changed if we were to implement this in domino Web application ?

Gravatar

41

Steffen

11. Juni 2007, 15:18

Hallo

Ich habe die Lotus Script History nach der beschriebenen Anleitung implementiert. Leider ist die einzige History, die protokolliert wird, die Erstellung des jeweiligen Dokumentes. Kannst Du mir sagen, was ich falsch mache?

Gravatar

42

Riccardo

5. September 2007, 8:35

Hi,
thanks for your very useful class. In the sample database, just over the header table I’ve seen a hidden field, with some code in the „hide when“:
_Lookup:= @GetProfileField(„($Preferences)“; „xUseHistory“);
_Lookup = „0“
The same code is found in the fHistory field.

What’s that?
Thanks

Gravatar

43

R James

20. September 2007, 16:25

Thank you for the great job on the code. I have come across an error that I can’t seem to fix. „Error #4153 – You Must provide an item name – Line #726 in procedure : “ … This error occures when I place the document into Edit Mode. When I make a change and try saving the document I get the same error and then another error appears: „Error #184 – „Variant does not contain a container – Line #313 in procedure : “ … The changes are saved but not logged in the History field.

I had added more fields in the array to log and was working great and then I started getting these errors.

I would appreciate any help with this. Thank you …

Gravatar

44

R James

20. September 2007, 17:04

In reference to my last posting, I found the problem and was able to fix the code. It works GREAT!!! … The fix was recounting the number of fields I was to log. I was off by one.

Thank you again.

Gravatar

45

Juergen

7. November 2007, 20:54

Hallo Michael,

vielen Dank für deine History Class, sie funktioniert wunderbar und war einfach zu implementieren.

An einer Stelle bin ich allerdings auf eine Ungereimtheit gestossen.
In der Function GetItemTextContentInArray werden die Items durchsucht und dort wird untern anderem auch geprüft, ob es sich um ein Readers/Authors Feld handelt.

In dem dort verwendeten Loop wird intCount inkrementiert und strPersonNames befüllt.
Allerdings werden die beiden Variablen nicht mehr zurückgesetzt, so dass sie beim erneuten Durchlauf noch die alten Werte haben.

Wird dann ein zweites Readers/Authors Feld bearbeitet, wird der Inhalt des zweiten Feldes zum Inhalt des ersten Feldes hinzugefügt. Der nachfolgende Vergleich auf Änderungen liefert dann für das zweite Feld immer eine Änderung, auch wenn sich dort nichts geändert hat.

Meine Änderung:

If ( item.IsNames Or item.IsAuthors Or item.IsReaders ) Then
   intCount = 0
   strPersonNames = ""
   Forall loop_nam In item.Values
      If Not loop_nam = "" Then		
         If intCount = 0 Then 
            strSepTemp = "" 
         Else 
            strSepTemp = HIST_SEP_NAME_ITM_CONTENT
         End If
         Set nn = New NotesName(loop_nam)
         strPersonNames = strPersonNames & strSepTemp & nn.Abbreviated
         intCount = intCount + 1
      End If
   End Forall
   vItemvaluesArray(intLoop) = strPersonNames
Else
   'Item does not contain names
   vItemvaluesArray(intLoop) = item.Text
End If

Grüsse,
Jürgen

Gravatar

46

John Shatney

8. November 2007, 17:40

Greetings – I’ve implemented your code (I can’t wait to get it working it looks beautiful)

When I edit the document and click on save, I am getting the following error:

Error #184
Variant does not contain a container
Line #313 in procedure :

It looks like the initial document created history is saved, however any further changes are not saved.

Thanks for your help
Any suggestions?

Die Kommentarmöglichkeit ist derzeit für diesen Artikel ausgeschaltet.

Blog-Kategorien

Volltextsuche

Neueste Artikel

Neueste Kommentare

Neueste Trackbacks/Pingbacks

Andere Projekte

Blogparade

dient als zentrale Anlaufstelle für Blog-Paraden bzw. Blog-Karnevals und andere von BloggerInnen veranstaltete Aktionen.

Mediadaten

Feed-Statistik:
Feedburner

Software Guide gibt es seit Dezember 2005 und es werden durchschnittlich 2 Blog- Beiträge/Monat veröffentlicht. Die Themenschwerpunkte sind in der Tagcloud ersichtlich. Mehr Infos...

Links

 

Nach oben

Wordpress

© 2005-2024 Software Guide | ISSN 1864-9599