Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: DomAdmin am 05.08.02 - 11:15:59

Titel: Ansichten öffnen aus anderen DBs
Beitrag 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
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: Axel am 05.08.02 - 12:29:05
Hi,

schau die mal @Picklist an.


Axel
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: DomAdmin am 05.08.02 - 12:36:33
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 ?
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: Axel am 06.08.02 - 07:59:52
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
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: DomAdmin am 07.08.02 - 10:07:44
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

Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: Axel am 07.08.02 - 10:16:18
Hi,

sorry, da hab ich was vergessen.  :-/

Die Zeile muss natürlich so aussehen:

Set sourcedoc = collection.GetNthDocument(idx)


Axel

 
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: DomAdmin am 07.08.02 - 10:45:09
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
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: Axel am 07.08.02 - 10:52:09
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
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: DomAdmin am 07.08.02 - 11:03:14
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
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: Axel am 07.08.02 - 11:15:00
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
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: DomAdmin am 07.08.02 - 11:50:44
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
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: Axel am 07.08.02 - 12:26:03
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
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: DomAdmin am 07.08.02 - 13:49:15
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
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: Axel am 07.08.02 - 13:52:14
Hi,

möglich, aber nicht ganz nachvollziehbar.   ??? ???

Probiers mal aus.


Axel
Titel: Re: Ansichten öffnen aus anderen DBs
Beitrag von: DomAdmin am 07.08.02 - 14:07:08
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 !