Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: DomAdmin am 05.08.02 - 11:15:59
-
Hallo Leute,
ich versuche über eine Aktion eine Maske (?) aufzurufen, die mir die Ansicht aus einer vorgegebenen anderen Datenbank anzeigt, aus der Ansicht kann ich dann ein oder vielleicht auch mehrere Dokumente auswählen und mit dem Button OK werden die ausgewählten Dokumente in meine Datenbank kopiert !!
:P :o :'( :'( :'(
Ich weiß nur nicht wie !!!
Bitte helft mir !
Ich hab mich bis jetzt immer nur mit sehr einfachen Formeln herumgeschlagen, weil ich versuche es mir selbst beizubringen !!
Liebe Grüße DomAdmin
-
Hi,
schau die mal @Picklist an.
Axel
-
Hallo Axel !
Das hab ich versucht, ich kriege auch eine Liste angezeigt aber wie verbinde ich das mit @Command([EditCopy]) und natürlich dann noch mit @Command([EditPaste]) in meine DB ??
Die Formel lautet:
@PickList( [Custom] ; "SERVER":"Datenbank" ; "Reservations By Date" ; "Test" ; "Eingabeaufforderung"; 1)
Aber wie kriege ich bei der Auswahl das GESAMTE Dokument rüber ?
-
Hi,
das geht, glaube ich, nicht so ohne weiteres. Was mir dazu einfällt, wäre eine Lösung mit Script.
Ich versuch's mal ansatzweise aus dem Kopf.
In einen Action-Button packst du folgenden Code:
Sub Click
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim currentDB AS NotesDatabase
Dim collection As NotesDocumentCollection
Dim sourcedoc As NotesDocument
Dim destinationdoc AS NotesDocument
Dim idx As Integer
'Anpassen!!
Const sourceServer = "Name des Servers"
Const sourceDBName = "Name der Quell-Datenbank"
Const sourceView = "Name der Ansicht für Picklist"
Set currentDB = session.CurrentDatabase
Set collection = workspace.PickListCollection(1, True, sourceServer, sourceDBName,sourceView,"Titel", "Bitte Dokument(e) wählen")
For idx = 1 to collection.Count
Set sourcedoc = collection.GetNthDocument
Set destinationdoc = New NotesDocument(currentDB)
Call destinationdoc.CopyAllItems(sourcedoc, True)
Call destinationdoc.Save(True,True)
Next
End Sub
Versuch's mal damit. Ich hoffe ich hab keinen Fehler gemacht.
Axel
-
Hallo Axel,
ich habe das mal so eingestzt und die Anpassungen getätigt, nur leider krieg ich einen Fehler in Zeile 20:
bei "Set sourcedoc = collection.GetNthDocument "
kommt der Fehler "Click: 20: Missing argument for:GetNthDocument"
Was soll ich denn jetzt machen, kann ja den Script nicht abspeichern !!
Bitte hilf mir nochmal !! :-[
Grüße
DomAdmin
-
Hi,
sorry, da hab ich was vergessen. :-/
Die Zeile muss natürlich so aussehen:
Set sourcedoc = collection.GetNthDocument(idx)
Axel
-
Hallo nochmal,
jetzt kommt zwar kein Fehler mehr in dem Script, aber wenn ich dann die Aktion ausführe, kommt ne Fehlermeldung "Variant does not contain an object"
Darf ich das nicht in einer Aktion (Aktionsleiste) verwenden ? Oder wie jetzt ? Vielleicht hab ich auch was falsch geschieben ? Hier noch mal das script mit anpassungen :
Sub Click(Source As Button)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim currentDB As NotesDatabase
Dim collection As NotesDocumentCollection
Dim sourcedoc As NotesDocument
Dim destinationdoc As NotesDocument
Dim idx As Integer
Const sourceServer = "NSFM081/PVG/DE"
Const sourceDBName = "ressourc.nsf"
Const sourceView = "Reservations by Date"
Set currentDB = session.CurrentDatabase
Set collection = workspace.PickListCollection(1, True, sourceServer, sourceDBName,sourceView,"Titel", "Bitte Dokument(e) wählen")
For idx = 1 To collection.Count
Set sourcedoc = collection.GetNthDocument(idx)
Set destinationdoc = New NotesDocument(currentDB)
Call destinationdoc.CopyAllItems(sourcedoc, True)
Call destinationdoc.Save(True,True)
Next
End Sub
Grüße
DomAdmin
-
Hi,
in dieser Zeile steckt der Fehler:
Set collection = workspace.PickListCollection(1, True, sourceServer, sourceDBName,sourceView,"Titel", "Bitte Dokument(e) wählen")
muss heissen
Set collection = ws.PickListCollection(1, True, sourceServer, sourceDBName,sourceView,"Titel", "Bitte Dokument(e) wählen")
oder du änderst die Dim-Anweisung von ws in workspace
Axel
-
Hallo Axel !! *zerknirscht sei*
Ich weiß, ich weiß, ich bin nervig und der totale Anfänger, aber ...
*heul* :'( :'( :'( :'(
Das Script funktioniert , großes Dankeschön an dich . aber ... ich kann korrekt das Dokument auswählen, dann wird es auch in die datenbank kopiert, nur ich kann es nicht öffnen !! Er sagt mir dann "Vorgabemaske nicht gefunden ". Kann man im Script sagen, welche Maske das Dokument haben soll ? Wenn es das behält wie in der QuellDB ist ja auch schon alles ok !!
Grüße
DomAdmin
-
Hi,
natürlich sollte die Maske in beiden Datenbanken vorhanden sein.
Im Dokument selbst steht mit welcher Maske das Dokument erstellt wurde. Kopier doch einfach die Maske aus der Quelldatenbank in die Zieldatenbank.
Axel
-
Hallo,
das habe ich schon getan, naja, ich habe die Original_maske etwas abgespeckt, die Felder / Maske heißt aber noch gleich !! Oder besser gesagt hab ich alle Felder und Berechnungen rausgeworfen, die ich nicht mehr brauchte, nachdem die Maske in meiner DB war.
In der Ansicht für diese Maske werden auch diese Felder angezeigt, bei denen die ich mit der Hand kopiert habe !!
Die die ich mit dem Script "importiert" habe, kann ich in keiner Ansicht sehen !!
Grüße
DomAdmin
-
Hi,
wurde vielleicht ein Aliasnamen für die Maske in der Quell-Datenbank vergeben, denn du in der Ziel-Datenbank nicht mehr hast. Stimmt die Select-Formel der Ansicht?
Ansonsten bin ich im Moment ein bisschen ratlos. :-/ :-/
Axel
-
Hallo
also dei Maske hatte keinen Aliasnamen und ich hab sonst nix an der maske gemacht !! Außer Felder gelöscht !!
Kann es daran liegen, daß die Maske in der QuellDB die Vorgabemaske ist ??
DomAdmin
-
Hi,
möglich, aber nicht ganz nachvollziehbar. ??? ???
Probiers mal aus.
Axel
-
Hi,
wenn ich die Maske als Vorgabemaske deklariere kann ich zwar die Dokumente öffnen, aber er hat dann die Feldinhalte nicht übernommen.
wenn ich die Maske nicht als Vorgabemaske deklariere kann ich die Dokumente gar nicht öffnen (Feklermeldung: Vorgabemaske nicht gefunden )
Verzweiflung pack mich !!
DomAdmin
P.S.: Dann muss ich eben von einer DB in die andere DB händisch kopieren ! Aber trotzdem vielen Dank für das Script !