Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Catrex am 01.06.04 - 14:17:32

Titel: Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 01.06.04 - 14:17:32
Hallo ich bin`s mal wieder und stelle mal wieder euer Fachwissen auf die Probe  ;D

Also, die Sache ist folgende. Ich habe eine Maske mit einer eingebetteten Ansicht. Über ein Feld wird ein Wert eingegeben der dann nur eine bestimmt Kategorie der eing. Ansicht anzeigt. Nun ist es ja so das das Drucken unter Notes nicht so pralle ist.

Deshalb meine Überlegung: Man könnte ja evtl. die angezeigten Dokumente markieren und dann nach Excel exportieren um sie dann dort weiter zu bearbeiten.

Deshalb meine Frage ist es generell möglich nur eine bestimmt (ausgewählte) Kategorie einer eing. Ansicht zu exportieren ?

Wie immer wäre ich für eure Meinung dankbar !

mfg

Sebastian ! ! !
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Markus Henke am 01.06.04 - 15:01:45
Hallo,

das ist nicht so schwer. Du hast ja in Deiner Maske wahrscheinlich ein Feld, dass bestimmt welche Kategorie angezeigt wird. Jetzt kannst Du ja über einen Button einen Export starten. Im Code holst Du Dir eine DocumentCollection, die nur die Dokumente enthält, die der Kategorie entsprechen. Dann kannst Du die exportieren.

Falls Du Probleme mit dem Export hast, guck mal im Sandkasten oder bei OpenNTF.org

Da findest Du einen Export, den Du dann anpassen kannst.

Markus
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 01.06.04 - 15:05:26
Ja danke. So in etwa hatte ich mir das auch vorgestellt. Sollte ich an meine Grenzen stoßen dann werde ich mich hier mal wieder melden. Mir ging es nur darum, dass mir einer sagt, ob das überhaupt geht oder nicht. Nicht das ich mir umsonst gedanken mache ! ;)

P.S.: Was ist denn bitte der "Sandkasten" ?
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: koehlerbv am 01.06.04 - 15:10:45
Wegen der "Fachbegriffe" guckst Du hier:
http://www.atnotes.de/index.php?board=12;action=display;threadid=12535;start=0 (http://www.atnotes.de/index.php?board=12;action=display;threadid=12535;start=0)

Viel Spass !

Bernhard
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 02.06.04 - 09:04:17
Ja lol. Alles klar. Das muss man ja auch erstmal wissen  ;D

Dankeschön !


mfg

Sebastian ! ! !
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 02.06.04 - 11:49:53
Ja hallo, ich melde mich leider schnell als mir lieb ist.

Ich musste feststellen das ich doch nich einige Probleme mit dem LotusScript habe.

mir ist einfach nicht klar (auch mit der Hilfe) wie ist zum einen die eingebettete Ansicht als view festlege und ich bekomme es auch leider nicht hin, wie man einen Feldwert als selektion der Kategorie im Script angibt !

Für die beiden Hinweise wäre ich echt sehr dankbar.

mfg

Sebastian ! ! !
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 03.06.04 - 09:53:27
Keiner eine Idee ?

also ich mache doch sowas in der Richtung:

Dim dc As NotesDocumentCollection

Set dv = db.Search................

und genau da ist mein Problem ich weiss nicht wie ich das Searchkommando aufbauen soll und leider auch nicht ich einen Feldwert mit einbringen kann

"Help, I need somebody HELP !" :D

mfg

Sebastian ! ! !
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Markus Henke am 03.06.04 - 10:11:50
Also, die eingebette Ansicht kannst Du ansprechen, wie jede andere Ansicht auch (Stichwort NotesDatabase.GetView)

Und die DocumentCollection holst Du Dir dann von der View und nicht über ein db.Search (Stichwort NotesView.GetAllDocumentsByKey)

Wenn Du noch Probs hast, frag einfach nochmal nach. Ich habs am Anfang auch nicht anders gemacht. ;-)

Markus
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Driri am 03.06.04 - 10:18:42
Die View kannst Du direkt ansprechen (heißt über den Viewnamen oder -alias), die ist ja nicht nur in der Maske als Embedded Object da, sondern auch normal ansprechbar.

Für die Suche brauchst Du die View aber nicht. Dafür baust Du dir mir db.search eine DocCollection.

In der Hilfe ist das eigentlich auch recht gut beschrieben.
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Markus Henke am 03.06.04 - 10:23:17
Wenn er über db.Search geht, dann brauch er die view nicht. und wenn er über die view geht, dann bracuht er db.Search nicht. ;-)
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Driri am 03.06.04 - 10:24:34
Stimmt, ist also mehr oder weniger Geschmackssache, wobei der Weg über die View in dem Fall einfacher sein sollte  ;)
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 03.06.04 - 10:30:37
Leute macht mich nicht feritg ;)

also ich habe das nun so gemacht:

Set view = db.GetView("Ansichtenname")
Set dc = view.GetAllDocumentsByKey(Feldname, True)

geht das denn so mit dem "feldname" oder muss da nen Text stehen ? weil ich will ja nur die exportieren die dann auch in einem bestimmten Feld gewähl werden.

Ja einen normales Export habe ich ja schon hinbekommen aber ich bin mir nicht so im klaren darüber wie man denn nun mit der DC weiterarbeitet ?
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: koehlerbv am 03.06.04 - 10:35:10
Feldname muss heissen: NotesDocument.Feldname (0), wobei NotesDocument das Dokument ist, in dem der User seine zu selektierende Kategorie ausgewählt hat. Sicherlich wirst Du das über
NotesUIWorkspace.CurrentDocument.Document instantiiert haben.

Aber mal eine Frage, bevor Du jetzt weiter machst: Wenn Du jetzt mit der Selektion der Dokumente auf Probleme stösst - hast Du Dir schon Gedanken gemacht, wie Du dann den eigentlichen Excel-Import in LS bewerkstelligst ? Das ist nämlich auch nicht gerade trivial.

Bernhard
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 03.06.04 - 10:41:48
Ja das meinte ich ja mit weitermachen. Ich wiess nicht ob ich eine Dokumentenselktion so beim Export nach Excel behaneln kann wie eine komplette view oder ob ich da was beachten muss.

Einen Export einer gazen view nach Excel habe ich ja schon gemacht !
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Markus Henke am 03.06.04 - 11:14:31
Es ist fast das gleiche, wie aus einer View zu exportieren.

Du musst Dir halt in einer Schleife alle Docs schnappen und die Werte (Felder) exportieren, die in Excel landen sollen.

Wenn Du einen View Export gebacken bekommen hast, dann schaffst Du das auch. ;-)
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 03.06.04 - 11:32:41
ja ok das bekomme ich ihn. Mit schleife und so weiter.

Eine Sache habe ich nocht:

Ich bestimmt die Kategorie der eing. Ansciht über eine Feld in einer Maske. Aber wie komme ich an diesen Fledwert ran, so dass ich ihn hier [Set dc = view.GetAllDocumentsByKey(Feldname, True)] als Selektionskriterium verwenden kann  ?


Das bekomme ich einfach nicht hin der Rest scheint wohl zu laufen
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Driri am 03.06.04 - 12:44:42
Das hat Bernhard doch oben beschrieben. Du schnappst Dir das CurrentDocument und kannst dann über das Document auf die Felder zugreifen.
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 03.06.04 - 12:47:20
ja das weiss ich aber ich denke ich stelle mich ein wenig zu dumm. Denn das klappt nicht so wie ich es gerne möchte

ich will doch einfach nur an einen Feldwerte aus einer Maske kommen :(
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: koehlerbv am 03.06.04 - 13:05:18
Du machst das doch aus einem geöffneten Dokument heraus, wenn ich das richtig verstanden habe ? Dann schau Dir in der DesignerHelp die Klasse NotesUIDocument an. Dir hier einen fertigen Code zu posten (auch wenn es nur wenig Zeilen sind), hilft Dir nicht wirklich weiter.

Bernhard
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 03.06.04 - 13:27:50
Das habe ich nun schon 20mal gemacht ich komme nicht drauf ich bekomme immer wieder Fehlermeldungen. Kann mir nicht bitte einer sagen wie ich das machen muss. Danke !
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: koehlerbv am 03.06.04 - 13:31:28
Poste mal den Code, den Du schon fertig hast.
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 03.06.04 - 13:37:10
Ok, aber nicht lachen :D

Sub Click(Source As Button)
   
Dim workspace As New NotesUIWorkspace   
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ansicht As NotesView
Dim auswahl As NotesDocumentCollection   
Dim uidoc As NotesUIDocument
Dim maske As NotesForm
   
Set db = session.CurrentDatabase
Set maske = db.GetForm("Auswertung - Kunde + Jahr")
Set ansicht = db.GetView("Auswertung Kunde und Jahr")
Set auswahl = ansicht.GetAllDocumentsByKey("TextXY", True)   
Messagebox(auswahl.count)
Messagebox(maske.Name)   
Messagebox(ansicht.Name)
   
End Sub


Naja und da wo nun TextXY steht muss ich ja irgendwie den Wert des Selektionsfeldes reinbekommen.
Ich habe das schon mit Getfieldtext versucht aber das lief immer auf eine Fehlermeldung raus :(

Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: koehlerbv am 03.06.04 - 13:53:23
Schick mir mal eine PM mit Deiner Mailadresse. Lotus hat vor Jahren sowohl zu R4 als auch zu R5 ein "LotusScript Technical Learning Center" veröffentlicht (Freeware), die sich heute aber leider nicht mehr als Download findet.
Die Datenbank beschreibt Schritt für Schritt und mit Beispielen den Umgang mit den LotusScript NotesClasses. Sowas hilft Dir bestimmt weiter. Ich schick' Dir das Ding gerne.

Bernhard
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Axel am 03.06.04 - 14:34:09
Hi,

so sollte es gehen:

Sub Click(Source As Button)
   
Dim workspace As New NotesUIWorkspace  
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ansicht As NotesView
Dim auswahl As NotesDocumentCollection  
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
'Dim maske As NotesForm

   
Set db = session.CurrentDatabase

'Zugriff auf das aktuell geöffnete Dokument
Set uidoc = workspace.CurrentDocument


'Die Zeile brauchst du nicht
'Set maske = db.GetForm("Auswertung - Kunde + Jahr")


Set ansicht = db.GetView("Auswertung Kunde und Jahr")

'Mit uidoc.FieldGetText("Name des Auswahlfeldes") bekommst du den Wert aus
'dem Feld mit dem entsprechenden Namen.
'Den Feldnamen "Name des Auswahlfeldes" mußt du natürlich durch deinen Feldnamen ersetzen.
Set auswahl = ansicht.GetAllDocumentsByKey(uidoc.FieldGetText("Name des Auswahlfeldes"), True)  

Messagebox(auswahl.count)
Messagebox(ansicht.Name)


'Zugriff auf die gefundenen Dokumente
Set doc = auswahl.GetFirstDocument
While Not (doc Is Nothing)
  'Tu was du willst mit den Dokumenten
  ...
  Set doc = auswahl.GetNextDocument(doc)
Wend

   
End Sub

Die Änderungen habe ich fett geschrieben

Axel
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Markus Henke am 03.06.04 - 14:40:08
Jo, so sollte es laufen. Jetzt musst Du nur noch den Export da rein basteln.

@Bernhard und alle anderen :-) : Bei Codestore gibts das "LotusScript Technical Learning Center" online http://www.codestore.net/docs/ls50ltlc.nsf/0/c2f0b87ac131def3852564f0000817e1?OpenDocument (http://www.codestore.net/docs/ls50ltlc.nsf/0/c2f0b87ac131def3852564f0000817e1?OpenDocument)
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: koehlerbv am 03.06.04 - 14:47:14
... und auch den Verweis, wo man es herunterladen kann:
http://web.archive.org/web/20001022055345/www.lotus.com/wwbpp/action.nsf/101b68a264bc2592852564c000556c79/aadd59b3e427f00c852564e3004929df?OpenDocument (http://web.archive.org/web/20001022055345/www.lotus.com/wwbpp/action.nsf/101b68a264bc2592852564c000556c79/aadd59b3e427f00c852564e3004929df?OpenDocument)

Danke für den Hinweis, Markus !
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 07.06.04 - 14:10:17
Hallo ich hoffe ihr hattet alle ein schönes Wochenende denn nun nerve ich wieder ein wenig ;)

So nach langem hin und her habe ich nun auch einen fertigen Export - dachte ist. Das doofe ist nur er klappt nicht

Ich habe folgendes geschrieben:


Set doc = auswahl.Getfirstdocument
   cols = 1
   rows = 2
   maxcols = auswahl.count
   
   While Not (doc Is Nothing)
      For cols = 0 To maxcols-1
      getfield = Cstr(doc.ColumnValues(cols))
      xlsheet.Cells(rows,cols+1).Value = getfield
      Next
      rows = rows + 1
      cols = 0
      Set doc = auswahl.Getnextdocument(doc)
   Wend
   xlApp.Statusbar = "Import der Daten beendet..."

Der Fehler liegt so wie ich das sehe in der Zeile mit getfield = Cstr(...)
Ich bekomme dann folgende Fehlermeldung: "Variant does not contain to countainer" und das verstehe ich nicht wirklich. muss ich vielleicht doch was anderes machen weil sich sich ja um eine DocumentColletion handelt und nicht um eine komplette View !

Wäre nett wenn einer was weiss !

mfg

Sebastian ! ! !
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Markus Henke am 07.06.04 - 14:40:02
Klar musst Du da was anderes machen.  ;)

Ich geh mal davon aus, dass Du ein paar Felder aus dem Dok exportieren möchtest. Folgender Code sollte laufen (Du musst nur Deine Feldnamen eintragen)  :)

Set doc = auswahl.Getfirstdocument
   rows = 2
   
   While Not (doc Is Nothing)
      xlsheet.Cells(rows,1).Value = doc.Feld1(0)
      xlsheet.Cells(rows,2).Value = doc.Feld2(0)
      xlsheet.Cells(rows,3).Value = doc.Feld3(0)
      xlsheet.Cells(rows,4).Value = doc.Feld4(0)
      rows = rows + 1
      Set doc = auswahl.Getnextdocument(doc)
   Loop

   xlApp.Statusbar = "Import der Daten beendet..."


Markus
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 07.06.04 - 14:47:28
Mmmh, das wäre sicherlich ein Alternative aber ist es denn nicht auch möglich die Werte aus er Ansicht, also aus den jeweiligen Spalten zu exportieren ?

Das geht ja bei einer normalen Ansicht auch, oder ist das dann der Nachteil einer DocumentCollection ?
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Axel am 07.06.04 - 15:15:36
Hi,

das ist kein Nachteil der DocumentCollection, sondern das hängt mit der Eigenschaft ColumnValues zusammen.

Zitat
...
If you do not access the document through a view, this property has no value.
...

Dieser Satz aus der Online-Hilfe sagt eigentlich alles. Du greifst nicht über eine Ansicht zu, sondern über eine Kollektion. Damit kannst du mit dieser Eigenschaft nichts anfangen, sondern musst über die Felder gehen. So wie es Markus beschrieben hat.


Axel
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: koehlerbv am 07.06.04 - 15:30:05
Obicht, Sebastian - übernimm' nichts an Code, was Du nicht wirklich und grundsätzlich verstanden hast. NotesView, NotesDocumentCollection und NotesViewEntryCollection sind erstmal grundverschiedene Klassen, mit denen Du Dich vorab vertraut machen musst.

Was mir immer sehr hilft: Mach' Dir eine simple Test-Datenbank (z.B. eine Adress-DB, über deren Sinn udn Zweck und Funktionieren man sich keine Gedanken mehr machen muss) und probiere dort prinzipiell aus, was Du später in Deiner eigentlichen Entwicklungsarbeit verwenden möchtest. So entfällt schon erstmal das Nachdenken über und die Nebenwirkungen von komplexeren Situatonen.

Und nie-nie-niemals Code verwenden, den man nicht komplett verstanden hat.

HTH,
Bernhard
Titel: Re:Excelexport von eingebetteter Ansicht
Beitrag von: Catrex am 07.06.04 - 15:45:05
Nein das mache ich auch nicht. Das ist ja am Ziel vorbeigeschossen.

Also ich mach da Thema nun zu, ich denke es ist alles gesagt.

Zumindest hoffe ich das !;)