9. September 2009 11:40
Hi,
ich habe eine Tabelle mit Daten, die für jeden Tag ein Datensatz enthält. Diese Daten möchte ich gruppiert nach Monat und Jahr nach Excel mit dem Excel Buffer exportieren. Kann mir dabei jemand helfen? Muss ich das grouping manuell im Code machen? Oder kann ich auch irgendwie die Grouping-Funktionalität nutzen, die der Report von sich aus bietet???
9. September 2009 11:59
Ich nutze das Gruppieren so selten, also korrigiere mich eine(r):
Eigentlich wird das erst im Ausdruck nütze, also zB Verkäufe an Debitor ->Gruppiere nach dessen Posten->Unten drunter die Gesamtsummen pro Debitor.
Um deinen Excelbuffer geordnet zu füllen, würde ich mir mal die Tabelle Date anschauen, dort besonders die Periodentypen Monat und Jahr.
Oder kann Excel sowas?
9. September 2009 12:15
Was spricht denn dagegen, alle Daten ungruppiert (sozusagen nur die Rohdaten) mittels ExcelBuffer zu exportieren und anschließend in Excel mittels Pivot-Tabelle die Gruppierung vorzunehmen?
Wäre wahrscheinlich der schnellere, einfachere und elegantere Weg.
9. September 2009 12:22
Mhh, na ich wollte eigentlich von dem Tool, in das Exportiert wird unabhängig sein. Wahrscheinlich möchte ich die gruppierten daten später auch nochmal woanders hin exportieren. Hat denn noch niemand mal gruppierte Daten exportiert? Wieso isn das schon wieder so schwer? Die Reports ansich unterstützen doch schon groupierung und auch summierung... Kann man das nciht irgendwie nutzen?
9. September 2009 12:23
Da wirst du vermutlich selbst etwas "zaubern" müssen, der Report könnte nur pro tag Grupperien bzw. welches Feld gerade verfügbar ist (und im Key!).
Entweder wie MCLane schrieb, über die Tabelle "Date", oder über CALCDATE, wie folgt:
Vorverarbeitung (z.B. OnPreReport):
In einer Schleife 1 TO 12 berechnest du mit CALCDATE den jeweiligen Monatszeitraum und speicherst diesen in einen Array, z.B.
DatumTxt[1][1] und DatumTxt[1][2]
DatumTxt[2][1] und DatumTxt[2][2]
DatumTxt[3][1] und DatumTxt[3][2]
DatumTxt[4][1] und DatumTxt[4][2]
Usw.
Das erste Feld (DatumTxt[2][1]) enthält den Anfangswert (01.02.09) und das zweite (DatumTxt[2][2])den Endwert (28.02.09).
(Nun ist es ein leichtes den Report zu Filtern)
Den Report würde ich wie folgt nun erstellen:
Ein DataItem Integer mit MaxIterationen = 12,
ein weiteres DataItem DeineTabelle, dieses wird nun mit auf OnPreDataItem (deiner Tabelle) gefiltert mit Deinem Array, z.b.
DeineTabelle.SETRANGE(DeineTabelle.Datum,DatumText[Integer.Number][1],DatumText[Integer.Number][2])
Nun würde der Report deine Tabelle je Monat gefiltert durchlaufen. Hier müsstes du nun wie "Gewohnt" deine weitere Grupperiung durchführen.
(Klingt Komplizierter als es ist)
9. September 2009 13:44
Mhh, nun gut, dann würde ich das wohl manuell machen. Dein Vorschlag mit den Arrays klingt eigentlich ganz gut, aber sollte ich da nicht mit den Jahren anfangen? Oder kann man das in einem Schritt machen? Also ich würde durch alle Datensätze in der Tabelle gehen wollen, dann ein Array mit den ganzen Jahren füllen, dann ein Array mit den Monaten und dann in einem späteren schritt kann ich durch diese beiden Arrays gehen. Richtig? Und dann die Daten auswerten. Aber mir fällt gerade auf, dass ich dann ja doppelt durch die Daten durchgehen müsste...
Gibt es eine Methode, der ich eine Liste von Datasets gebe und die dann einfach ein Array vom Typ integer oder so ausspuckt, wo alle Jahreswerte enthalten sind? und dann das gleiche nochmal für Monate???
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.