Domino 9 und frühere Versionen > ND6: Entwicklung
Lotus Script und Listbox in Form
dirk_2909:
Folgendes sollte auch funktionieren:
--- Code: ---Call newDoc.ReplaceItemValue( "Form" , CONVERT_FORM2 )
Call newDoc.ReplaceItemValue( CONVERT_FIELD2 , newValues ) 'Feld in dem die Auswahlmöglichkeiten hinterlegt werden
Call newDoc.ReplaceItemValue( CONVERT_FIELD3 , newValues(0) ) 'Feld in dem der Benutzer die Auswahl trifft
...
Call newDoc.Save( True, True )
--- Ende Code ---
In der Maske "SaveAttachments" sollten mindestens zwei Felder sein:
Eins in dem die Auswahlmöglichkeiten hinterlegt werden (CONVERT_FIELD2 ,verborgen) und eins über das der Benutzer seine Auswahl trift (CONVERT_FIELD3, bearbeitbar , ..). In dem zweiten Feld muss als Auswahlformel der Feldname des Feldes rein, in dem die Auswahlmöglichkeiten hinterlegt sind.
PascalB:
Hallo zusammen,
nachdem ihr mich so toll unterstützt habt und ich ohne eure Hilfe
wahrscheinlich immer noch im Dunkeln tappen würde, möchte ich
euch als erstes über den Erfolg informieren!
Es läuft nun! :) ;) :D ;D
Hier nochmal für alle fleißigen, die evtl. mal ein ähnliches Problem
haben, der Ablauf:
per
--- Code: --- arrAtt = Evaluate({@Attachmentnames}, doc)
--- Ende Code ---
werden alle Anhänge einer Email in einem Array gespeichert.
nur wenn das Array ungleich leer ist geht es weiter
--- Code: --- If arrAtt(0) <> "" Then
--- Ende Code ---
mit
--- Code: --- Set newDoc = New NotesDocument(db)
--- Ende Code ---
wird ein neues (Backend-) Document erstellt.
Mit
--- Code: --- Call newDoc.ReplaceItemValue( "Form" , CONVERT_FORM2 )
Call newDoc.ReplaceItemValue( CONVERT_FIELD2 , arrAtt ) 'Feld in dem die Auswahlmöglichkeiten
'hinterlegt werden, unsichtbar!
Call newDoc.ReplaceItemValue( CONVERT_FIELD3 , arrAtt(0) ) 'Feld in dem der Benutzer die Auswahl
'trifft
--- Ende Code ---
werden auf dem Backend Document ein Formular mit zwei Feldern erstellt. Insgesamt 3 Items.
Wobei CONVERT_XXXXX globale Variablen sind und einmal mit dem originalen Namen
der Form und der beiden in der Form enthaltenen Felder belegt sind.
mit
--- Code: --- Call newDoc.Save( True, True )
--- Ende Code ---
wird das Document gespeichert.
Anschließend wird die Function MyDialogBox aufgerufen:
--- Code: --- Call MyDialogBox(newDoc, path, doc)
--- Ende Code ---
newDoc (=BackendDoc), path (=interner Zielpfad), doc (=orig. Email)
Hier noch die Function MyDialogBox:
--- Code: ---Function MyDialogBox(newDoc As NotesDocument, path As String, doc As NotesDocument)
'** Das übergebene newDoc wird per DialogBox mit dem Form SaveAttachments (=CONVERT_FORM2)
'** verbunden. Das Form SaveAttachments wird geöffnet und der Benutzer wählt die zu speichernden
'** aus.
'** Die gewählten Anhänge werden in das in der SYSPM konfigurierte TEMP Verzeichnis gespeichert
'** und die Steuerdatei "sXML" entsprechend befüllt.
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim object As NotesEmbeddedObject
Dim myPath$, newfileName$
Dim valueArray
'Variante 2: Ein Fenster mit allen Anhängen bringen. Nur die angehakten werden exportiert
Call workspace.DialogBox _
(CONVERT_FORM2, True, True, True, True, _
False, False, "Anhänge speichern" ,newDoc)
If istest Then valueArray = newDoc.GetItemValue( CONVERT_FIELD2 )
If istest Then Msgbox "1. Wert vom Array listbox1: " & valueArray(0)
valueArray = newDoc.GetItemValue( CONVERT_FIELD3 )
If istest Then Msgbox "1. Wert vom Array listbox2: " & valueArray(0)
Forall values In valueArray
myPath = path+"\" ' + Str(cnt+1) + "\"
Set object = doc.GetAttachment(values)
If Not object Is Nothing Then
newfileName = fineFileName(values)
Call object.ExtractFile( myPath+newfileName)
sXML = sXML & newfileName & "|" & Chr$(13) & Chr$(10)
cnt =cnt + 1
Else
Print values + " is not a valid Attachment"
End If
End Forall
'\Variante 2
End Function
--- Ende Code ---
Das einzigste was mir nicht gefällt, ist, dass es auf dem Form SaveAttachments
ein nicht sichbares Feld listbox1 gibt. Was ich auch nur dadurch unsichtbar bekommen habe,
dass ich den Rahmen auf <none> gesetzt habe.
Zudem ist das Form viel zu groß für die kleinen items listbox1 und listbox2...
Aber es scheint zu laufen und morgen wird ausführlich getestet!!!
Danke und Gruß
Pascal
TRO:
--- Zitat von: PascalB am 14.09.09 - 17:34:14 ---mit
--- Code: --- Call newDoc.Save( True, True )
--- Ende Code ---
wird das Document gespeichert.
--- Ende Zitat ---
muss aus meiner Sicht nicht unbedingt gespeichert werden
--- Zitat von: PascalB am 14.09.09 - 17:34:14 ---
Das einzigste was mir nicht gefällt, ist, dass es auf dem Form SaveAttachments
ein nicht sichbares Feld listbox1 gibt. Was ich auch nur dadurch unsichtbar bekommen habe,
dass ich den Rahmen auf <none> gesetzt habe.
Zudem ist das Form viel zu groß für die kleinen items listbox1 und listbox2...
Aber es scheint zu laufen und morgen wird ausführlich getestet!!!
Danke und Gruß
Pascal
--- Ende Zitat ---
Wenn Du die Felder in der Dialogbox-Maske in eine Tabelle packst, dann kannst Du mit
Call workspace.DialogBox _
(CONVERT_FORM2, True, True, True, True, _
False, False, "Anhänge speichern" ,newDoc, True)
die Größe der DiaBox anpassen.
hth
Thomas
PascalB:
Hallo und danke für den Tipp,
nur an Tabellen wage ich mich derzeit noch überhaupt nicht.
Vor allem, da jetzt, wo es so schön läuft, noch drei Buttons hinzu kommen sollen.
"Alle", "Keine" und "Invert".
Diese Buttons sollen eben alle Einträge oder keine Einträge selektieren oder die aktuelle Selektion invertieren.
Den Button "Keine" hab ich schon. Aber dann ist meine listbox2 leer und ich komm nicht mehr an die Werte. Hab auch schon versucht, diese in der unsichtbaren listbox1 zwischen zu speichern, bzw. in ner public variable, alles gescheitert.
Wie würdet ihr das machen?
Danke und Gruß
Pascal
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln