Autor Thema: Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen  (Gelesen 3157 mal)

Offline Escort

  • Frischling
  • *
  • Beiträge: 49
Hallo Leute,

ich hätt da mal eine Frage:

Ich habe in einer Datenbank verschiedene Projektansichten:

1) Projektansicht nach PrjNr:

    PrjNr:       Bezeichnung:     RepliKID     User
     1                Projekt 1            11111          A
     2                Projekt 2            22222          A
     ....               ......

Wenn ich jetzt in dieser Ansicht auf ein Dokument doppelklicke, möchte ich die Information des angeklickten Dokumentes auslesen, ohne es öffnen zu wollen (da ich mit dem Doppelklick eigentlich eine weitere Datenbank - nämlich genau die mit der jeweiligen ReplikID - öffnen möchte).
Das funktioniert auch soweit, und zwar liefert mir die Funktion CaretCategory unter QueryopenDocument die entsprechende PrjNr-Information.

Problem besteht in der folgenden Ansicht:
2) Projektansicht nach User

    User    PrjNr:      Bezeichnung:    RepliKID  
       A  >    1            Projekt 1            11111        
                 2            Projekt 2            22222        
                 ....             ......

Wenn ich hier meine Routine von oben verwende, liefert mir CaretCategory nur den User, aber ich bräuchte eigentlich die ReplikID-Info des doppelgeklickten Dokumentes, ohne es sichtbar zu öffnen.

Kann mir da vielleicht jemand helfen??

Danke im voraus

« Letzte Änderung: 25.08.04 - 16:53:41 von Escort »

Driri

  • Gast
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #1 am: 25.08.04 - 16:55:18 »
Ist klar, da CaretCategory die Kategorie aus der View zurückliefert. Das ist in Fall 2 dann eben der User.

Du müßtest dann über das Document auf das entsprechende Item zugreifen und dir dort den Wert auslesen.

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #2 am: 25.08.04 - 17:08:34 »
Und wie sieht deine Funktion CaRetCategory aus? Das ist keine Standerdfunktion von Notes. Wohl eher, wenn das öffnen des Dokumentes abgefangen wird eine Bastelei.

Thomas
« Letzte Änderung: 25.08.04 - 17:08:54 von Thomas Schulte »
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Driri

  • Gast
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #3 am: 25.08.04 - 17:17:50 »
@Thomas Schulte :

CaretCategory ist eine Property der NotesUIView.

Offline Escort

  • Frischling
  • *
  • Beiträge: 49
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #4 am: 26.08.04 - 13:53:07 »
kann ich das Dokument im Backend öffnen -> den benötigten Wert auslesen -> wieder schliessen -> ohne dass der Benutzer was mitbekommt?

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #5 am: 26.08.04 - 14:00:47 »
@driri:
peinlich, peinlich da hab ich seid den seeligen R4.6 Zeiten nicht mehr reingeguckt. Aber gut zu wissen, das es so was gibt.

@escort:
Klar kannst du, mit dem entsprechenden View und GetalldocumentsbyKey mit der Kategorie als Kevalue.

Thomas
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Driri

  • Gast
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #6 am: 26.08.04 - 14:44:10 »
@Thomas Schulte :

Macht ja nix, ich hab ehrlich gesagt auch erstmal in die Designer-Hilfe geschaut  ;)

Offline Escort

  • Frischling
  • *
  • Beiträge: 49
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #7 am: 27.08.04 - 10:14:57 »
Ich kann natürlich in die erste Spalte User & Projektnummer aufnehmen, allerdings hab ich das Problem, dass ich dann nicht mehr nach User kategorisieren kann, ausser ich mache eine flache Kategorisierung - sieht zwar nicht wirklich professionell aus, habe aber momentan keine andere Lösung parat.

Hat vielleicht sonst noch jemand eine gute Idee?

Frage:
Wär's eigentlich möglich, eine globale Variable beim doppelklicken in der Ansicht an die dementsprechende Maske zu übergeben?
Wenn ja, wie? Mittels Profildokument, Notes.ini oder geht's auch anderst?
Habe momentan leider einen Knopf in meinen Gedankengängen.

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #8 am: 27.08.04 - 11:11:25 »
Wie wäre es, wenn du uns mal deinen Sourcecode geben würdest.  Das was du hier treibst ist doch eigentlich in Script ein Vierzeiler. Du musst doch eigentlich nur auf das entsprechende Backend Dokument zugreifen.

Thomas
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #9 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

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #10 am: 27.08.04 - 11:21:31 »
@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
« Letzte Änderung: 27.08.04 - 11:25:32 von Thomas Schulte »
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #11 am: 27.08.04 - 11:23:46 »
@Thomas: Hast sicherlich wahr - ich hatte das gleich auf den gesamten Code bezogen statt auf den eigentlich nur noch erforderlichen Zusatz.

Bernhard

Offline Escort

  • Frischling
  • *
  • Beiträge: 49
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #12 am: 27.08.04 - 12:16:52 »
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
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 ;)



Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #13 am: 27.08.04 - 13:26:34 »
Wie schaut's jetzt mit dem Vierzeiler aus ;)

Herausforderung angenommen


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

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
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Escort

  • Frischling
  • *
  • Beiträge: 49
Re:Dokumenteninhalt aus Ansicht auslesen ohne zu öffnen
« Antwort #14 am: 27.08.04 - 14:14:58 »
Wie schaut's jetzt mit dem Vierzeiler aus ;)

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

SUPER!!!!
1000 DANK!!!!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz