Autor Thema: markierte Dokumente einer Ansicht exportieren  (Gelesen 5216 mal)

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: markierte Dokumente einer Ansicht exportieren
« Antwort #20 am: 06.05.08 - 22:10:08 »
Der VIEWEXCELEXPORT löst dein Problem nicht, denn der arbeitet so weit ich mich erinnere mit ColumnValues der Dokumente - und die führen bei deinem Problem dazu, daß beim Export dein Mehrfachwert bei jedem Antreffen des Dokuments in der View mit allen Feldwerten aufgeführt wird.

Insofern ist deine Überlegung mit der ViewEntryCollection und dem ViewNavigator schon richtig, denn dort bekommst du die in der View an der Pointerposition stehenden Werte exportiert.

Aber du kannst auf einen Entry mit GetEntry(doc) nur dann aufsetzen, wenn dieses Dokument nur einmal in deiner View auftaucht. Ansonsten gibt es keinen eindeutigen Pointer.

Du kannst also nur mit GetNextEntry(entry) an deiner View entlanglaufen und jedes Dokument daraufhin prüfen, ob es Teil deiner DocumentCollection ist - und dann exportieren (als entry.ColumnValues).

Es ist klar: das ist bei großen Views langsam. Aber alle Alternativen, die schnell sind, haben in Einzelfällen auch Macken (Verschieben in Ordner und dann über alle Entries laufen ist schnell, aber bei antworthierarchischen Views verschiebst du oft mehr als die eigentliche Benutzerauswahl in den Folder).

Gruß

Norbert
Situs vilate in isse tabernit.

Offline scsi

  • Frischling
  • *
  • Beiträge: 17
Re: markierte Dokumente einer Ansicht exportieren
« Antwort #21 am: 08.05.08 - 10:13:36 »
Hallo,

jetzt habe ich mir den <ViewExcelExport> näher angeschaut und in meine Test-DB integriert --> aber auch dieser Agent scheitert bei Dokumenten mit mehreren Kategorien, wenn ich nur markierte Dokumente exportieren will  :-\
Solange ich diese Dokumente nicht exportiere klappt der Agent super.
Bei besagten Dokumenten --> Notes Error: <Eintrag im Index nicht gefunden (Test)>
Ich habe die Stelle im Script gekennzeichnet.

Code
	If resp = 6 Then 'Selektierte Documente
		Dim seldoc As notesdocument
		Set seldoc = othercol.GetFirstDocument   
		While Not seldoc Is Nothing
			Set otherdoc = otherview.getnextdocument(seldoc)	' --> bei Dokumenten in mehreren Kategorien:
	' Notes Error: <Eintrag im Index nicht gefunden (Test)>
			
			If otherdoc Is Nothing Then
				Set otherdoc = otherview.getprevdocument(seldoc)
				If otherdoc Is Nothing Then
					Print " >1 doc should be selected"
					End
				Else
					Set otherdoc = otherview.getnextdocument(otherdoc)
				End If
			Else 'die nächsten Dokumente
				Set otherdoc = otherview.getprevdocument(otherdoc)
			End If
			
			For colmn = 0 To Ubound(otherview.Columns)
				sTemp = ""
				If Isarray(otherdoc.columnvalues(colmn)) Then
					vmv = otherdoc.columnvalues(colmn)
					Forall colval In vmv
						sTemp = sTemp & Cstr(colval) & ", "
					End Forall
				Else
					sTemp = Cstr(otherdoc.columnvalues(colmn))
				End If
				xlApp.cells(row,colmn+1) = sTemp
			Next
			row = row+1     
			Set seldoc = othercol.GetNextDocument(seldoc)       
		Wend
		
	Else  ' alle Dokumente
		Set otherdoc = otherview.GetFirstDocument  
		While Not otherdoc Is Nothing  
			For colmn = 0 To Ubound(otherview.Columns)
				'xlApp.cells(row,colmn+1) = otherdoc.columnvalues(colmn)
				sTemp = ""
				If Isarray(otherdoc.columnvalues(colmn)) Then
					vmv = otherdoc.columnvalues(colmn)
					Forall colval In vmv
						sTemp = sTemp & Cstr(colval) & ", "
					End Forall
				Else
					sTemp = Cstr(otherdoc.columnvalues(colmn))
				End If
				xlApp.cells(row,colmn+1) = sTemp
			Next
			row = row+1  
			Set otherdoc = otherview.GetNextDocument(otherdoc)      
		Wend
	End If

Alle Dokumente exportieren klappt prima, nur mit dem Haken, dass die Dokumente dann mehrfach exportiert werden, aber damit könnte ich noch leben.

Naja. Vielleicht hat ja doch noch jemand eine Idee, ich lege das jetzt sonst erst mal auf Eis.


Wie bekomme ich das hier hin? -->
Zitat
Du kannst also nur mit GetNextEntry(entry) an deiner View entlanglaufen und jedes Dokument daraufhin prüfen, ob es Teil deiner DocumentCollection ist - und dann exportieren (als entry.ColumnValues).


Danke an alle tatkräftigen Helfer!
Grüße
Silke
« Letzte Änderung: 08.05.08 - 10:23:11 von scsi »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz