Domino 9 und frühere Versionen > Entwicklung

Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen

<< < (3/3)

Thomas Schulte:
@Bernhard

Ja das mit dem Vierzeiler ist etwas übertrieben, aber da das Teil ja schon zu funktionieren scheint (woanders), müsste das eigentlich nur noch ein Problem des Zugriffs auf das Backend Dokument sein und das sollte dann wirklich einfach sein.

Thomas

koehlerbv:
@Thomas: Hast sicherlich wahr - ich hatte das gleich auf den gesamten Code bezogen statt auf den eigentlich nur noch erforderlichen Zusatz.

Bernhard

Escort:

--- Zitat von: koehlerbv am 27.08.04 - 11:14:37 ---Na, ein Vierzeiler wird das nicht Thomas.
Aber irgendwie erinnert mich das ganze an diesen aktuellen Thread:
http://www.atnotes.de/index.php?board=3;action=display;threadid=17803

Dort soll ja auch - statt ein Dokument zu öffnen - etwas anderes ausgeführt werden.

HTH,
Bernhard

--- Ende Zitat ---
Wenns wirklich so einfach ist, bin ich über jede Hilfe sehr dankbar!

Im Prinzip brauch ich sowas, wie im Link von "koehlerbv" beschrieben wird.

Also nochmals zur Erklärung:
------------------------------------
Das Portal enthält Dokumente, die wiederum die sg. Basisinformationen für jedes Projekt beinhalten (Projektnummer, Projekttitel, User, ReplikID der entsprechenden Datenbank, etc.).

Jedes Projekt ist eine eigene Nsf-Datei!

Dieses Portal hat jetzt versch. Ansichten der Dokumente:

1) Ansicht nach Projektnr

   Projektnr     Titel    User    ReplikID
     1               Prj1       A         1111
     2               Prj2       A         2222
     3               Prj3       B         3333
     ...               ....        ...        ......

2) (kategorisierte) Ansicht nach User

    User      Projektnr   Titel    ReplikID
    >A                1         Prj1     1111
                        2         Prj2     2222
    >B                3         Prj3     3333

Funktionalität:
------------------
*)Wenn ich ein Dokument in der Ansicht markiere und den Button "Projektblatt bearbeiten" klicke, so soll das entsprechende Dokument (Projektblatt)  geöffnet werden.
*)Wenn ich ein Dokument in der Ansicht doppelklicke, so soll die dementsprechende Datenbank geöffnet werden. (Anm: normalerweise wird ja mittels Doppelklick das Dokument geöffnet, aber das will ich ja nicht --> ich hab da ein bisschen gebastelt)

Jetzt zu meiner Ausführung:
-----------------------------------
ad1)
In dieser Ansicht gibt es einen Button "Projektblatt bearbeiten".
Wenn ich ein Dokument markiere und auf diesen Button klicke, offnet sich das Projektblatt!
Wenn ich in der Ansicht auf ein Dokument doppelklicke, springe ich in die demenstprechende Datenbank und öffne diese.

Sourcecode Ansicht nach Projektnummer:
Declarations: Dim OpenFlag As Integer
Initialize:Sub Initialize
   OpenFlag =0
               End Sub

Button "Projektblatt bearbeiten"
Sub Click(Source As Button)
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   OpenFlag=1
   Set uidoc = workspace.EditDocument( True )
   OpenFlag = 0
End Sub

Sub Queryopendocument(Source As Notesuiview, Continue As Variant   
   If (OpenFlag =0) Then 'Öffne die Datenbank nach Doppelklick auf Dokument
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Dim view As NotesView
      Dim doc As NotesDocument
      Dim ProjectID As Variant
      Dim Server As String
      Dim ProjektePath As String
      Dim Filename As String
      Dim Kategorie As Variant   
      Dim ProjectIDString As String
      
      Set db = session.CurrentDatabase
      Set view = db.GetView( "ProjnachProj" )
      Kategorie =source.CaretCategory   'ermittle die Kategorie des doppelgeklickten Dokumentes z.B."1"
      Set doc = view.GetDocumentByKey( Kategorie ) 'suche das Dokument mit der entsprechenden Kategorie "1"
      ProjectID = doc.GetItemValue( "ProjectID" ) 'ermittle  die ProjectID des gefundenen Dokumentes
      ProjectIDString = ProjectID(0)
      Server = session.GetEnvironmentString("Server", False)
      ProjektePath = session.GetEnvironmentString("DefaultDir", False)
      Filename = ProjektePath & ProjectIDString
      
      Dim workspace As New NotesUIWorkspace
      Call workspace.OpenDatabase ( Server, Filename, "", "", False, False ) 'öffne die Datenbank
      Continue = False
   Else
      Continue = True  'öffne Projektblatt
   End If
   
End Sub

ad2)
hier habe ich jetzt das Problem, dass mir CaretCategory nur den User liefert (also den Inhalt der 1. Spalte) - aber dieser kann ja mehrere Pojekte angelegt haben --> er öffnet mir immer das jeweils erste Projekt des betreffenden Users.

Frage:
Wie kann ich jetzt die ReplikID eruieren, ohne irgendwie sichtbar für den User das Projektblatt öffnen zu müssen?

Variante 1:
In der Ansicht ad2) verwende ich in Spalte 1 nicht nur den User sondern User&Projektnummer (ich mach dazwischen einfach einige Leerzeichen und mach die Spalte nur so breit, dass man gerade noch den User lesen kann).
Dann funktioniert obiger Sourcecode auch!

Problem:
Ich kann die Ansicht nicht kategorisiert darstellen sondern nur in der folgenden Form:

    User      Projektnr   Titel    ReplikID
     A            1              Prj1     1111
     A            2              Prj2     2222
     B            3              Prj3     3333

Variante2:
Ich öffne das Projektblatt --> lese die RepliID aus --> veranlasse in der Maske das Öffnen der Datenbank --> schliesse das Projektblatt.
Da müsste ich aber dann irgendwie eine globale Variable an die Maske des Projektblatts übergeben, die dann aufgrund der Variablen das schliessen der Maske veranlasst, da ich ja dann den dementsprechenden Code in die Maske einfügen und von DORT das Datenbankenöffen veranlassen muss. Bei ad1) kann ich das Öffnen der Datenbank ja in der Ansicht implementieren.

Soweit meine Ausführung!

Wie schaut's jetzt mit dem Vierzeiler aus ;)


Thomas Schulte:

--- Zitat von: Escort am 27.08.04 - 12:16:52 ---Wie schaut's jetzt mit dem Vierzeiler aus ;)

--- Ende Zitat ---

Herausforderung angenommen


--- Zitat von: Escort am 27.08.04 - 12:16:52 ---
Sub Queryopendocument(Source As Notesuiview, Continue As Variant  
   If (OpenFlag =0) Then 'Öffne die Datenbank nach Doppelklick auf Dokument
      Dim session As New NotesSession
      Dim workspace As New NotesUIWorkspace
Löschen  ->      Dim db As NotesDatabase
Löschen  ->   Dim view As NotesView
      Dim doc As NotesDocument
      Dim ProjectID As Variant
      Dim Server As String
      Dim ProjektePath As String
      Dim Filename As String
      Dim Kategorie As Variant  
      Dim ProjectIDString As String
      Dim dc as notesdocumentcollection
      Dim uiview As NotesUIView
     
Löschen  ->      Set db = session.CurrentDatabase

     Set uiview = workspace.CurrentView
      Set dc = uiview.Documents

Löschen ->      Set view = db.GetView( "ProjnachProj" )
Löschen ->      Kategorie =source.CaretCategory   'ermittle die Kategorie des doppelgeklickten Dokumentes z.B."1"
Löschen ->      Set doc = view.GetDocumentByKey( Kategorie ) 'suche das Dokument mit der entsprechenden Kategorie "1"

     Set doc = dc.GetFirstDocument

      ProjectID = doc.GetItemValue( "ProjectID" ) 'ermittle  die ProjectID des gefundenen Dokumentes
      ProjectIDString = ProjectID(0)
      Server = session.GetEnvironmentString("Server", False)
      ProjektePath = session.GetEnvironmentString("DefaultDir", False)
      Filename = ProjektePath & ProjectIDString
     
      Call workspace.OpenDatabase ( Server, Filename, "", "", False, False ) 'öffne die Datenbank
      Continue = False
   Else
      Continue = True  'öffne Projektblatt
   End If
   
End Sub

--- Ende Zitat ---

5 Zeilen hinzugefügt,  6 Zeilen entfernt, macht  -1 Zeilen, Versprechen gehalten und der Code ist so komplett unabhängig von egal welcher Ansicht.

Thomas

Escort:

--- Zitat von: Thomas Schulte am 27.08.04 - 13:26:34 ---
--- Zitat von: Escort am 27.08.04 - 12:16:52 ---Wie schaut's jetzt mit dem Vierzeiler aus ;)

--- Ende Zitat ---

Herausforderung angenommen

5 Zeilen hinzugefügt,  6 Zeilen entfernt, macht  -1 Zeilen, Versprechen gehalten und der Code ist so komplett unabhängig von egal welcher Ansicht.

Thomas

--- Ende Zitat ---

SUPER!!!!
1000 DANK!!!!

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln