Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: RvM am 02.12.03 - 20:38:34
-
Hallo Ihr Scripter.
Ich habe hier ein Script, das in einer Ansicht von einer Aktion aufgerufen wird.
Das Script soll aus einer Filelist beliebig viele PDF-Dateien einlesen und jede PDF-Datei an ein neues Dokument anhängen.
Wenn ich mehr als 6 Dokumente auswähle läuft das Ganze nicht. Warum nur????
Hier ist das Script:
-------------------
Dim session As New NotesSession
Dim eval As Variant
Dim db As NotesDatabase
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Dim filename As String
' Open a dialogbox and allow users to select from a list of files
files = workspace.OpenFileDialog(True, "Dateiliste", "Wählbare Dateien|*.pdf", "F:\")
If Isempty(files) Then Exit Sub ' Exit if the user selects the Cancel button
Forall FileList In files ' Loop through the list of files selected
Filename = Filelist ' Get the current filename
' Now, we will create a new document and attach the selected file to it.
Set db = session.CurrentDatabase ' Get the current database
Set doc = New NotesDocument( db ) ' Create a new Notes Doc
Set rtitem = New NotesRichTextItem( doc, "PDF" ) ' Create a new richtext item
Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", filename) ' Attach the file to it
doc.Form = "PDF" ' Set the form name
'doc.filesize = Filelen(filename) ' Write the filename
doc.Person = "CGChemie"
doc.werdarf=Evaluate(|@Name([Canonicalize]; "[Master]":Person)|,doc)
Call doc.Save( True, True ) ' Save the backend document
End Forall ' loop through any of the remaining files
Dim twoLiner As String
twoLiner = |Sie haben nun die Möglichkeit, den eingefügten
PDF's für die CG Chemie Kurzbeschreibungen hinzuzufügen.|
Messagebox twoLiner, MB_OK, "Erinnerung"
--------
Wer kann mir sagen, wo der Fehler ist?
-
Hallo Rolf !
>>Wenn ich mehr als 6 Dokumente auswähle läuft das Ganze nicht. Warum nur????<<
Wenn die Länge der Pfade + Dateinamen ziemlich kurz sind (Du wählst z.B. Dateien in C:\), geht´s dann auch mal mit mehr als 6 Dateien?
Wenn ja, dann Herzlichen Glückwunsch - Du hast den "OpenFileDialog"-BUG gefunden. ;D
Spass beiseite: Ich hätte erwartet, dass Lotus diesen BUG lange gefixt hat, welche Version setzt Du denn ein?
Ich habe mal eben bei der LDD geschaut, den BUG gibt´s scheinbar immer noch...
LDD Fundstelle 1 (http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/8640fe28114b0d3f85256c8300518f6d?OpenDocument&Highlight=0,OpenFileDialog)
LDD Fundstelle 2 (http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/6c42797bb9085db685256d81007171f7?OpenDocument&Highlight=0,OpenFileDialog)
Das Dokument zum 2. Link ist vom 13.08.2003 - unglaublich...
Gruss
Manfred
-
>:(
Schei.... Ich setze als Client 5.011 und als Server 5.06a ein.
Gibt es denn ne Möglichkeit, per Script komplette Unterverzeichnisse, die nur PDF enthalten, pro Datei ein Dok mit Anhang zu erstellen?
-
Hallo Rolf !
>>Gibt es denn ne Möglichkeit, per Script komplette Unterverzeichnisse, die nur PDF enthalten, pro Datei ein Dok mit Anhang zu erstellen?<<
Klar. Aber nur "zu Fuss". Über die LS-Funktion Dir$ kannst Du dir in einem bestimmten Pfad alle Dateien holen. Wenn Deine Routine sich dann selbst rekursiv aufruft, kannst Du ab einem bestimmten "StartPfad" alle Unterverzeichnisse abklappern.
Ich denke, das Erstellen eines Dokumentes mit genau einem Anhang ist da noch das kleinste Problem... sorry eine fertige Routine dafür habe ich auch nicht.
Gruss
Manfred
-
Danke erste einmal.
Kannst Du mir vielleicht sagen, wie ich in meinem Script
in folgender Zeile:
doc.werdarf=Evaluate(|@Name([Canonicalize]; "[Master]":Person)|,doc)
aus dem Feld werdarf ein Leser-Feld machen kann?
-
Hallo Rolf !
>>aus dem Feld werdarf ein Leser-Feld machen kann?<<
Klaro! :-)
Da Du noch keinen "Handle" auf Dein Feld hast, sollte folgendes funktionieren:
Dim item As NotesItem
Set Item = doc.GetFirstItem( "werdarf" )
Item.IsReaders = True
Gruss
Manfred
-
Schau doch mal in die DesignerHelp unter NotesDocument.IsReaders. Das Beispiel wird Dir leider nicht weiter helfen, daher folgendes:
NotesItem "werdarf" instantiieren
und dann für das Item die Property IsReaders auf True setzen. Speichern nicht vergessen ;-)
HTH,
Bernhard
-
Hm, das hat Manfred jetzt methodisch besser beantwortet ;-)
Vergiss aber trotzdem nicht, in der DesignerHelp mal nachzuschlagen nach den Properties wie IsReaders, IsAuthors etc. Wird Dir zukünftig helfen ;-)
Ciao,
Bernhard
-
@Bernhard
>> Hm, das hat Manfred jetzt methodisch besser beantwortet ;-)<<
Bin ja auch seit über 10 Jahren "stattlich geprüfter" CLI... ;-)
<offtopic>
Noch einen Spass in diesem Zusammenhang:
In den Übersichten steht neben Deinem Namen: "Seit (fast) 12 Jahren Notes - und (fast)nix bereut". Bzgl. des SMTP-Problemes schreibst Du: "Und auch als Nicht-Admin würde ich jetzt...".
Mensch Bernhard, da haste aber einen sehr spannenden Teil vom guten Notes verpennt... ;D
Bitte nicht böse sein, ich konnte mich mal wieder nicht beherrschen. :-)
</offtopic>
Gruss
Manfred
-
Hallo, Manfred,
früher habe ich viele Jahre den Admin und den Programmierer in Personalunion "gespielt". Nun bin ich - wiederum seit Jahren - doch sehr froh, dass ich tolle Admins an meiner Seite habe und mich voll darum kümmern kann, der "tolle Programmierer" zu sein ;-) Das liegt mir einfach mehr - wobei ich mich hier auch gerne bemühe, das etwas vorhandene Administrationswissen zur Verfügung zu stellen, so es denn ausreicht.
Häff ä neiss iewening,
Bernhard ;-)
-
Hallo Bernhard !
>>Nun bin ich - wiederum seit Jahren - doch sehr froh, dass ich tolle Admins an meiner Seite habe und mich voll darum kümmern kann, der "tolle Programmierer" zu sein ;-)<<
Ja, das ganze Notes/Domino-Gebilde ist heute echt ein "dicker Hammer" geworden. Ein Mensch alleine kann kaum noch alle Bereich abdecken. Von Zusatztools wie QuickPlace, Sametime, Domino Enterprise EveryPlace (gibt den noch?) usw. wollen wir lieber nicht reden...
Auch Dir noch einen schönen Abend... :-)
Gruss
Manfred
-
@Manfred und @Bernhard,
... könntet ihr bitte solche Offtopic-Postings ins Offtopic legen? In der Suche tauchen in letzter Zeit vermehrt immer wieder unnötige Beiträge auf, die ebenfalls als Ergebnis angezeigt werden - und das erschwert eine Auswertung der gefunden Threads - Danke...
ata
-
Ata:
Hast Du wirklich im Sinne, lebendige Diskussionen abzutöten??
-
@ata,
na, wenn der Forum-Moderator das wünscht: Ich gelobe Besserung... ;-)
Auf der anderen Seite hat Semeaphoros auch recht: Manchmal ergibts sich halt ein kurzer, nicht unbedingt zum Thema gehörender Austausch - das macht halt auch Spass... und den will man in einem solchen Forum doch auch haben?
Grundsätzlich hast Du aber schon recht...
Gruss
Manfred