Autor Thema: ausgewähltes dokument in einer ansicht in den zugriff bekommen?  (Gelesen 4127 mal)

Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
hallo,
hätte da mal ne frage:
wie kann ich in einer ansicht herausbekommen, welches dokument grade ausgewählt ist? hab mir nen agenten geschrieben, der aus dem aktuell ausgewählten (nicht offen, nur ausgewählt!) dokument zwei werte kopieren soll, daraus einen schlüssel einen schlüssel erstellt und in einer anderen datenbank nach diesem schlüssel (ausftragsnummer + position) suchen soll. ich bekomme aber egal welches dokument ich auswähle immer nur die schlüssel aus dem selben dokument! kann mir jemmand helfen?

hier der code:

Sub Initialize
   
   'Variablen zum Schlüssel auslesen
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim workspace As New NotesUIWorkspace
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim uiview As NotesUIView
   Dim aunritem As notesitem
   Dim posiitem As notesitem   
   Dim aunr As String
   Dim posi As String
   Dim key As String
   
   'Variablen um auf FridaAktiv zuzugreifen
   
   Dim db_fri As notesdatabase
   Dim view_fri As notesview   
   Dim collect_Fri As notesdocumentcollection
   Dim doc_fri As NotesDocument
   
   
   
   
   Set db = session.CurrentDatabase
   Set uiview = workspace.Currentview
   
   Set collection = db.AllDocuments
   Set doc = collection.GetFirstDocument
   
   Call uiview.SelectDocument(doc) ' Soll das aktuell ausgewählte Dokument in den Zugriff nehmen
   
   Set aunritem = doc.GetFirstItem( "KOAUNR" )
   Set posiitem = doc.GetFirstItem( "PSPOSI" )
   
   aunr = aunritem.text ' kopiert den Inhalt des items als string in aunr
   posi = posiitem.text ' kopiert den Inhalt des items als string in posi
   
   key = aunr + " " + posi ' erstellt eindeutigen schlüssel aus auftragsnummer + position
   
   
   
   '---------------------------------------------------------------------------------------------------------------------------------------
   ' Jetzt auf FridaAktiv zugreifen und passende Tätigkeitsberichte suchen                =
   '---------------------------------------------------------------------------------------------------------------------------------------
   
   
   
   Set db_Fri = session.Getdatabase("OCS02/OCS GmbH", "aktiv\fridaakt.nsf", False)
   Set view_Fri = db_Fri.getview ("ViewActionsZeiten")
   Set collect_Fri = view_Fri.GetAllDocumentsByKey(key, exact)
   
   Msgbox collect_fri.count
   
   
End Sub


würd mich über anregungen freuen!

björn
« Letzte Änderung: 29.09.03 - 13:19:07 von OCS »

Driri

  • Gast
Hallo,

also wenn Du nur ein Dokument markiert hast, dann kannst Du über die Property UnprocessedDocuments das markierte Doc wählen.

...
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
   
Set aunritem = doc.GetFirstItem( "KOAUNR" )
Set posiitem = doc.GetFirstItem( "PSPOSI" )
...

Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
dank dir! funktioniert!!! ;D

Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
edit:

jetz hab ich zwar meine dokumente im zugriff, aber wie bekomme ich die jetzt sichtbar gemacht? würde gerne die dokumente, die mit den schlüsselwörtern übereinstimmen entweder in einer temporären ansicht oder einer großen messagebox oder so anzeigen. habs mit ner  "PROMPT_OKCANCELLIST" und nem array versucht, der läuft aber immer über!

hat vieleicht nochmal jemmand zeit für mich?


gruß björn

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Folder machen und Move To Folder
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
und wie sieht das dann aus? hab noch nix mit folder gemacht!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Mit Folder wird das so einfach nichts werden - immerhin sollen ja Dokumente aus einer anderen Datenbank dargestellt werden.

Kannst Du uns noch mehr über den Hintergrund Deiner Aufgabe mitteilen ? Was soll mit den "Treffern" weiter geschehen ?

Bernhard

Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
also, die datenbank in der ich zuerst bin, zeigt alle aufträge mit dem dazu gehörigem status an (siehe bild)1. in einer anderen db werden die auf die einzelnen aufträge erstellten stundenzettel pro mitarbeiter angezeigt (bild2). die aufgabe des agenten ist jetzt für den aktuell ausgewählten auftrag (mit position) die einzel erfassten zeiten der  mitarbeiter anzuzeigen. wie auch immer ob in einer listbox oder einer ansicht ist egal! soll ja eh immer zur laufzeit neu erstellt und dann gelöscht werden... puh!  :'(

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Naja, sowas hatte ich mir schon gedacht - aber was willst Du mit den angezeigten Dokumenten aus DB2 dann machen? Nur bestaunen lassen?
Weitere Frage: Einen Überlauf kriegst Du ja erst bei grossen Datenmengen (> 64k). Ist das denn wirklich der Fall ? Das wird dann ja auch ein Performanceproblem.

Bernhard

Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
ja, die sollen nur bestaunt werden! wunsch vom chef! mit dem array hab ich im subscript out of range bekommen! oder so ähnlich!
« Letzte Änderung: 29.09.03 - 17:05:22 von OCS »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Und was ist mit den Datenmengen und Deinem "Überlauf-Problem" ?
Es gäbe da schon Lösungen, aber x Kilobyte Daten nur anschauen ... tsss  ???
Vielleicht hast Du ja aber auch in Wirklichkeit gar kein "Überlauf-Problem". Schau'n wir mal ...

Bernhard

Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
erstmal danke, das Du Dich mit meinem Problem befasst!

ich bekomme bei diesem script hier schon "Subscript out of range" obwohl nur 9 einträge in den array gemacht werden!

Sub Initialize
   
   'Variablen zum Schlüssel auslesen
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim workspace As New NotesUIWorkspace
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim uiview As NotesUIView
   Dim aunritem As notesitem
   Dim posiitem As notesitem   
   Dim aunr As String
   Dim posi As String
   Dim key As String
   
   'Variablen um auf FridaAktiv zuzugreifen
   
   Dim db_fri As notesdatabase
   Dim view_fri As notesview   
   Dim collect_Fri As notesdocumentcollection
   Dim doc_fri As NotesDocument
   Dim temp As Variant
   Dim adoc As Variant
   Dim anzeige() As String
   
   
   
   Set db = session.CurrentDatabase
   Set uiview = workspace.Currentview
   
   Set collection = db.UnprocessedDocuments
   Set doc = collection.GetFirstDocument()
   
   Call uiview.SelectDocument(doc) ' Soll das aktuell ausgewählte Dokument in den Zugriff nehmen
   
   Set aunritem = doc.GetFirstItem( "KOAUNR" )
   Set posiitem = doc.GetFirstItem( "PSPOSI" )
   
   aunr = aunritem.text ' kopiert den Inhalt des items als string in aunr
   posi = posiitem.text ' kopiert den Inhalt des items als string in posi
   
   key = aunr + " " + posi ' erstellt eindeutigen schlüssel aus auftragsnummer + position
   
   
   
   '---------------------------------------------------------------------------------------------------------------------------------------
   ' Jetzt auf FridaAktiv zugreifen und passende Tätigkeitsberichte suchen                =
   '---------------------------------------------------------------------------------------------------------------------------------------
   
   
   
   Set db_Fri = session.Getdatabase("OCS02/OCS GmbH", "aktiv\fridaakt.nsf", False)
   Set view_Fri = db_Fri.getview ("ViewActionsZeiten")
   Set collect_Fri = view_Fri.GetAllDocumentsByKey(key, exact)
   
   
   For i = 1 To collect_fri.Count ' Array aufbauen (Sätze)
      Set aDoc = collect_fri.GetNthDocument(i)
      anzeige(i) = adoc.CommonUser(0)
      
      Redim Preserve anzeige(i) As String
      
   Next      
   
   
   
      'Auswahl aus der Box ins Feld schreiben
   
   
   temp = workspace.prompt(PROMPT_OKCANCELLIST, "Stundenzettel", "Stundenzettel für Auftrag " + aunr + "Position " +  posi, Anzeige(1), Anzeige())
   
End Sub
« Letzte Änderung: 30.09.03 - 08:03:35 von OCS »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
WO bekommst Du "subscript out of range" - welche Zeile ?

Was bedeutet Anzeige () ?

Bernhard

Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
anzeige() ist der array den ich fülle! den subscript out of range bekomme ich gleich beim ersten füllen des array's.

obwohl da blos name und vorname eines mitarbeiter drin steht!





Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
hab den fehler grade gefunden! muss schon redimensionieren bevor ich das erste mla befülle! danke trotzdem für die hilfe!!! das mit dem "in welcher zeile" von dir hat mich drauf gebracht!!!!  danke danke danke!!!

gruß björn

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz