Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: g202e am 05.08.03 - 15:20:49
-
Hallo,
beschäftige mich gerade mit dem Excel-Export aus Notes. Folgendes Problem: Ich habe eine Ansicht in der Dokumente nach Zeit kategorisiert angezeigt werden; will sagen: es handelt sich um eine Hotline-Anwendung, in der irgendwelche Meldungen eingetragen werden, auf die dann irgendwie reagiert werden muß. Um nun Aussagen über die Nützlichkeit dieser DB zu bekommen möchte der Kunde gern eine Art Statistik haben, wo drinsteht: Im Jahr 2003 wurden im dritten Quartal 150 Anfragen gestellt davon waren im Juli 70, im August 30 und im September 50 Anfragen. Also haben wir eine entsprechende Ansicht gebastelt(siehe Bildchen) Nun möchte der Kunde aber diese Ansicht nach Excel exportiert haben. Ich habe keine Vorstellung, wie ich es anstelle, daß ich diese Werte, die ja eigentlich erst in der Ansicht entstehen(Spaltensumme), nach Excel übergeben könnte?
Als Beispiel(siehe Bild): in der Kategorie "Anmietung" gab es zwei Vorfälle, davon 1 in 2002 und 1 in 2003, der 2002 war im 1. Quartal der 2003 war im 3.Quartal, der 2002 im ersten Quartal war im Januar ...usw...
Gibts da Möglichkeiten/Ideen ?
-
Hi,
im Prinzip willst Du eigentlich nur die Kategorien und nicht die einzelnen Dokumente exportieren, korrekt?
Versuch mal folgendes:
Öffne die Ansicht
Wähle "Ansicht - Anzeigen - Nur Kategorien"
Markiere alles (Strg + A)
Wähle "Datei - Exportieren": Als Dateityp "Lotus 123" und als Dateiname "export.wk3" (wichtig ist .wk3)
oder als Dateityp "Tabular Text" und als Endung .txt
Dann exportiert Notes nur die Kategorien (mit den Summen).
In Excel kannst Du die Datei dann öffnen.
Andreas
-
Danke, Glombi, interessanter Ansatz, haut aber leider nicht hin. Die Summen werden NICHT exportiert! (siehe Bildchen).
Außerdem wäre das wohl für unsere verwöhnten Kunden zu kompliziert. Ich habe in dieser DB ja schon andere Ansichten(bzw. die Dokumente) nach Excel exportiert und das geht immer schön einfach per Knopfdruck. Aber da hab ich eben immer Werte aus den in der Ansicht angezeigten Doks rausgegeben und keine Spaltensummen. Gibts noch andere Ideen? ??? :'(
-
... du kannst die Dokumente deiner Ansicht auswerten und die Ergebnisse dann zum Beispiel in eine Excel-Vorlage importieren.
... ich mach das in der Regel so, daß ich die Vorlage in einer Vorlagen-DB pflege. Rufe ich die Aktion auf, so wird diese Vorlage aus dem Vorlage-Doc gelöst, per LS geöffnet und die Werte an die bestimmte Stelle geschrieben.
... du kannst per LS dann auch Formeln in der EXCEL-Tabelle hinterlegen...
ata
-
Danke ata.
Genauso mache ich das, mit allen von Dir beschriebenen Features.
Das entsprechende Excel-Formular(*.xlt) liegt in derselben Datenbank und wird dann per Script geöffnet und mit den entsprechenden Daten aus dem jeweils markierten Dok gefüllt bzw. es werden irgendwelche @Formeln ausgewertet. Ich habe jedoch keinen Plan, wie ich da irgendwelche Dokument-Anzahlen zurechtgebastelt kriege!
Oder wie kriege ich diese Spaltensummen "nachgebildet"?
-
ich habe das mal für unsere Personalabteilung gemacht. Auch da habe ich Spaltensummen. Der Export sollte auch in ein Formular ( Summenbildung ) erfolgen.
Da du an die Spaltensummen nicht rankommst, musst du wohl oder Übel beim export "Mitzählen"
In meinem Fall war das dann ungefähr so
DocCollection bilden über einen Betrachtungszeitraum
Doc für Doc sequentiell durchgehen und bestimte Felder Abfragen ; z.B. Leiharbeitnehmer. Gefunden ? Ok, Zähler für LA eins rauf.
Dann hatte ich die entsprechenden Werte in den einzelnen Variablen.
Und die wurden dann per Script an die entsprechenden Zellen (A10B12) im Excel Sheet geschrieben. Dann gab es noch ein bisschen Rechnerei 8 GesamtGeplant - Leih oder so ) und die Ergebnisse werden in die Zellen geschrieben.
eknori
-
Danke eknori.
Ich hatte sowas befürchtet; kannst du vielleicht den Lösungsansatz noch ein wenig tiefer erläutern?
Der Kunde will ja nur bestimmte(markierte) Dokumente exportieren. Da ich nicht weiß, welche er denn gerade markiert, habe ich keinen Plan, wie ich denn jetzt in meinem Script die notwendigen Kategorisierungen erzeuge. Nach dem Feld "Kategorie" (s. o. hotl1.jpg) könnte ich ja noch suchen, aber wie krieg ich das mit den Jahren, Quartalen und Monaten hin? Ich weiß ja nicht, aus welcher Zeit die selektierten Docs stammen, also wie soll ich meine Collections spezifizieren um da irgendwas zählen zu können? ???
-
OK, bei mir wurde die Collection über zwei eckdaten gefüllt.
In deinem Fall ist es unprocessedDocuments Eigenschaft der NotesDatabase Klasse
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
dann hast du nur alle angehkten Dokumente in der Collection
-
Danke, aber: jetzt kommt das entscheidende: Wie kann ich jetzt nach Zeitraum selektieren? Das Datum nachdem ich kategorisieren + summieren will, steht in einem Feld des Typs Date/Time mit Namen "AufnahmeTagDT"; da ich jedoch nicht weiß, welche Doks der Kunde selektiert hat, weiss ich jetzt nicht wie ich die Dokumente sinnvoll durchzählen kann. Also: Zähle ich jetzt gerade alle Dokumente des x-ten Quartals des Jahres Y? Wie zähle ich denn nun, und was zähle ich? Ich brauche ja nun z. B. Anzahl der Dokumente die im zweiten Quartal des Jahres 2003 aufgenommen wurden (Ich hoffe man versteht, was ich sagen will!)
BTW: In welcher Reihenfolge werden die Sachen aus der Ansicht eingelesen? In der Reihenfolge, wie ich sie in der Ansicht sehe? ???
-
so ganz verstehe ich das jetzt nicht
..wenn der kunde auswählt greift unprocessedDocuments, egal , ob du das in einer Ansicht Datumsmäßig eingrenzt.
Dann ist die Menge der Dokumente, die der Kunde sieht die Grundgesamtheit und die Wahl des Kunden eine Teilmenge der Grundgesamtheit.
Oder meinst du, daß du dem Kunden mehrere Grundgesamtheiten vorgibst und der Kunde nur die Wahl zwischen den Grundgesamtheiten hat ?
Dann hast du ja schon die Ansicht entsprechend mir SELECT aufbereitet.
Für den Fall hatte ich heute schon mal was gepostet
Set col = db.Search(" (@Date(PostedDate) - @Today) /(60*60*24) < -365",Nothing,0)
.. besetzt die Collection mit den Dokumenten, die älter sind als 365 Tage.
Die Formel zwischen den "" musst du dann nur noch mit deiner Ansichtenformel ersetzen.
Jetzt musst du überlegen: Machst du eine Schaltfläche für den Export, und die Formel ist dann gemaß der View "hardcodet" oder gestaltest du das dynamisch und übergibst die Formel in einer Variablen.
Ulrich
-
Ich hatte ja bereits vermutet, daß es schwer zu verstehen ist. Es ist klar, daß ich mit "unprocessed documents" alle ausgewählten Dokumente greife. Mir fehlt jetzt der Ansatz, wie ich dann aus dieser Collection meine entsprechenden Untergruppen bilde. Wenn wir mal von dem Bildchen hotl1.jpg(s. o.) ausgehen: Ich habe in meiner Collection jede Menge Doks, die der Anwender ausgewählt hat; u. a. auch die zwei in der Kategorie "Anmietung". Wie komme ich jetzt dazu, dass ich aus meiner Collection eine Unterauswahl treffe und dann rauskriege, dass es bei "Anmietung" insgesamt 2 Vorfälle gab und von diesen zwei war einer im 3.Quartal 2003 und einer im 1.Quartal 2002. Desweiteren muss ich dann noch unterteilen, daß es im 3.Quartal 2003 der Monat Juli war sowie im 1.Quartal 2002 der Monat Januar. Also, wie treffe ich innerhalb der ausgewählte Dokumente die entsprechende Unterauswahl um dann die entsprechenden Zahlen (Summen) bilden zu können?
-
Hi,
ich hätte noch einen anderen Ansatz zu bieten. Du verzichtest auf die summierte Spalte, sondern zählst in der Kategorie die Dokumente.
Dazu musst Du die Formeln für die Kategoriespalten ändern.
Hänge einfach folgendes dran:
... + "Summe: " + @DocDescendants
Dann summiert er die Anzahl aller Dokumente, die unterhalb der Kategorie stehen.
Das kann dann auch exportiert werden.
Andreas
-
... ansonsten hätte ich mir ne Klasse gebaut, die zuerst die Dokumente erfasst und auswertet, und dann die Daten nach Excel schiebt...
ata
-
Danke.
@ata: Ich bin aber nicht der grosse Script-Guru! :'(
@Glombi: Klingt interessant, aber: Wie genau meinst du das? Bisher funktioniert die Sache so(s.o. hotl1.jpg): Die Spalten "Jahr","Quartal" und "Monat" beinhalten eine Formel (z. B. @Year(AufnahmeTagDT)) und sind sortiert/kategorisiert, die Summenspalte enthält nur "1" . Das ergibt, wie man sieht, jeweils eine (Dokument-) Anzahl pro Kategorie. Wenn ich jetzt das "....@DocDescendants" da reinhänge, ergibt sich immer "Summe:0". ???
-
Hi,
mach mal eine Kopie der View zum Testen. Lösche dort die Spalte mit der Summierung.
Schreibe in den Formeln für die Kategorien sowas:
@Text(@Year(AufnahmeTagDT)) + " Summe: " + @DocDescendants
Das mit dem @DocDescendants geht nur für Text, daher alles in Text umwandeln. Damit die Sortierung die gleiche ist, vor den Kategoriespalten eine versteckte sortiere Spalte einfügen, die die ursprüngliche Formel beinhaltet - aber wie gesagt. nur nötig, falls kein Text geliefert wird
Andreas
-
Schade, wäre schön gewesen.
in der Spalte "Jahr" steht jetzt:
"@If(@IsTime(AufnahmeTagDT);@Text(@Year(AufnahmeTagDT))+ "Summe: " + @DocDescendants;"")"
-
Ist das im Designer Client? Da funktionier @DocDescendants nicht (liefert immer 0).
Sieh Dir mal die View im Notes Client an.
Hoffe, das war's. Denn sonst wüsste ich auch nicht, warum es nicht geht.
Andreas
-
Ist das im Designer Client? Da funktionier @DocDescendants nicht (liefert immer 0).
Danke, du hattest natürlich Recht, das war im Designer. Im Client sieht es schon ganz gut aus. Jetzt brauch ich dann "nur noch" das Exportieren scripten. Wenn ich das nicht hinkriege, schreie ich wieder nach Hilfe.
(seltsam: Jetzt zeigt es auch im Designer die richtigen Werte an
???)
-
Hi,
der Designer verwendet jetzt wohl den bestehenden Ansichtsindex.
Das Exportieren können wie folgt gehen:
@Command([ViewExpandAll]);
@Command([ViewShowOnlyCategories]);
@Command( [FileExport] )
oder
@Command( [FileExport];"Lotus 1-2-3";"c:\\export.wk3")
oder
@Command( [FileExport];"ASCII";"c:\\export.txt")
Andreas
-
Gute Idee! Wenn ich mir die Ansicht noch ein wenig zurechtschiebe (Spaltenbreite), dann kann man das tatsächlich so machen! Ist zwar dann nicht ganz so komfortabel, wie der Kunde es bei anderen Exports gewöhnt ist(wo eben nur Daten aus den Dokumenten ausgelesen/exportiert werden), aber ich denke sowieso, daß diese Funktion eher wenig benutzt wird.
Ich spare mir die LotusScript-Quälerei und wenn dem Auftraggeber das nicht passt, dann wirds für ihn eben teuer, weil aufwändig!
Danke an alle