Autor Thema: Spaltenwerte aus einer View auslesen  (Gelesen 1977 mal)

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Spaltenwerte aus einer View auslesen
« am: 14.02.08 - 09:39:20 »
Hallo,

ich habe ein Dokument Doc_a und möchte gerne über eine View auf Inhalte eines zweiten Dokumentes
doc_b zugreifen.

Hierzu öffne ich die View wie folgt:
Code
Set view = db.GetView("ANSWERE_DOC")
Set dc = view.GetAllDocumentsByKey(thisdoc.ID_MainDOC(0),True)

Nun habe ich aber das Problem , das ich nicht weiss wie ich die Dokumente
in der View selektieren und die angezeigten Werte aus den Spalten der View
weiter bearbeiten kann.

Gruß jörg

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Spaltenwerte aus einer View auslesen
« Antwort #1 am: 14.02.08 - 09:53:08 »
Ich würde hier mal über das Nutzen von Haupt- und Antwortdokumenten nachdenken(lese ich auch irgendwie aus deinen Bezeichnern heraus --> z.B. "ANSWERE_DOC", Suche nach der ID_MainDOC), denn dann bekommst du diese Sachen quasi geschenkt. Dazu lohnt sich auf jeden Fall auch ein Blick in den Best-Practice-Bereich.

Zu dem konkreten Code-Fragment, was hier vorliegt:
Wenn die View passend sortiert ist, erhälts du in der Variable "dc" eine Ansammlung von Dokumenten. An dieser Stelle kannst du über die Dokumente iterieren und aus den Dokumenten die Daten über Methoden der Klasse Notesdocument herausholen. Was du an dieser Stelle nicht getan hast, ist die View zu öffnen. Du hast an dieser Stelle auch keinen Zugriff auf die Sachen, die dir die Ansicht im Frontend angezeigt hätte. Dazu müsstest du anders vorgehen und die Klassen NotesView und NotesUIView betrachten.

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Spaltenwerte aus einer View auslesen
« Antwort #2 am: 14.02.08 - 10:31:42 »
Hi ,

die Verwendung von Haupt- und Antwortdukomenten habe ich schon angewendet.
Ich möchte nun in einen Layout-Bereich alle Antwortdokumente in einer Listbox anzeigen lassen.

An dieser Stelle kannst du über die Dokumente iterieren und aus den Dokumenten die Daten über Methoden der Klasse Notesdocument herausholen. Was du an dieser Stelle nicht getan hast, ist die View zu öffnen. Du hast an dieser Stelle auch keinen Zugriff auf die Sachen, die dir die Ansicht im Frontend angezeigt hätte. Dazu müsstest du anders vorgehen und die Klassen NotesView und NotesUIView betrachten.

Die Klassen Notesdokument habe ich schon in Globals wie folgt definiert:

Code
Dim session As NotesSession
Dim db As NotesDatabase
Dim thisuidoc As NotesUIDocument
Dim thisdoc As NotesDocument

Code
Sub Initialize
	Set session = New NotesSession
	Set db=session.CurrentDatabase
	
End Sub



Ich habe das Problem , das ich im Moment nur das geöffnete Dokument mit der Variable "thisdoc" zum auslesen
bekomme und nicht die Antwortdokumente aus meiner View (die zeigt nur Antwortdokumente an).

Dann werde ich mal schauen ob ich mit der Klasse NotesUIView weiter komme.

Gruß Jörg




Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Spaltenwerte aus einer View auslesen
« Antwort #3 am: 14.02.08 - 12:02:22 »
Wenn du schon Antwortdokumente hast, dann kommst du an diese über deine Variable thisdoc.Responses (oder so ähnlich, habe gerade kein Notes hier zur Verfügung). Schau mal in die Designerhilfe für mehr Details... Zudem könntest du die Dokumente auch in einer eingebetteten Ansicht anzeigen lassen. Dazu brauchst du eine nach @Text($Ref) kategorisierte Ansicht. Bei der eingebetteten Ansicht stellst du dann für die einzelne anzuzeigende Kategorie die Uniqueid des aktuellen Dokuments. Die kategorisierte Spalte blendest du dann vielleicht noch aus in der Ansicht.

Kommt aber drauf an, was du mit den Antworten machen willst.

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Spaltenwerte aus einer View auslesen
« Antwort #4 am: 23.02.08 - 22:48:38 »
Wenn es nur um die Anzeige der Antwortdokumente innerhalb einer Maske geht, hilft dir doch eher eine eingebettete antworthierarchische Ansicht, deren erste Spalte eine Kategorie @Text(@DocumentUniqueID) ist. Die verwendest du mit der SingleCategory

@If(@IsResponse;@Text($Ref);@Text(@DocumentUniqueID))

Dann kannst du die Ansicht sowohl in den Haupt- als auch in den Antwortdokumenten einbetten (in Antworten auf Antworten funktioniert es nicht mehr - oder du mußt die Ursprungs-UniqueID als separates Feld in alle Antwortebenen vererben).

Gruß

Norbert
Situs vilate in isse tabernit.

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Spaltenwerte aus einer View auslesen
« Antwort #5 am: 25.02.08 - 07:51:11 »
Die Ansicht hat sogar noch etwas mehr Charme, als die von mir vorgeschlagene.

Aber bisher war Jörg ja nicht wieder hier, um unsere Antworten zu lesen.

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Spaltenwerte aus einer View auslesen
« Antwort #6 am: 28.02.08 - 07:44:04 »
Das Problem lag hier an dem "Thisdoc" ..... hier mit habe ich immer auf das aktuelle Dokument zugeriffen
und ich wollte ja die Dokumente aus der View mir anzeigen lassen.



Hier nun der komplette Code mit dem ich nun meine Listbox im Layoutbereich fülle:

Code
Sub refresh


	Dim view As NotesView
	Dim dc As notesdocumentcollection
	Dim tdoc As NotesDocument
	Dim children As Variant
	
	
	bl$ = "                                 "
	Set view = db.GetView("ANSWERE_DOC")
	Set dc = view.GetAllDocumentsByKey(doc.ID_MainDOC(0),True)
	
	If dc.Count = 0 Then Exit Sub
	
	Redim children(1 To dc.count)
	c =0
	For i=1 To dc.Count
		Set tdoc = dc.GetNthDocument(i)
		If Trim(tdoc.form(0)) = "dokument_files" Then
			c = c + 1
			children(c) = tdoc.UniversalID+"@"+Left(tdoc.underkategorie(0)+bl$,20)+ " "+tdoc.Subdoc_titel(0)
		End If
	Next
	
	Redim Preserve children(1 To c)
	doc.children = children
	
End Sub

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz