AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rave und Aggregates

Ein Thema von iamjoosy · begonnen am 12. Nov 2003 · letzter Beitrag vom 14. Nov 2003
Antwort Antwort
iamjoosy

Registriert seit: 12. Nov 2003
53 Beiträge
 
#1

Rave und Aggregates

  Alt 12. Nov 2003, 21:00
Hi,
habe versucht Aggregate fields von einem Clientdataset in Rave angezeigt zu bekommen - aber ohne Erfolg. Nur die normalen data fields erschienen in dem Rave Data View. Hat irgendjemand eine Idee dazu ?
Um die Sache zu präzisieren: Habe ein Clientdataset mit einer Hand normaler data fileds und einige Aggregate fileds, die mir durchschnittswerte berechenen. Möchte diese werte nun in Rave in DataText-Komponenten anzeigen. Mit DBText kein Problem, aber in der Dataview Komponente in Rave erscheinen nur die data fileds und nicht die Aggregate Fields !

TIA

joosy
  Mit Zitat antworten Zitat
Matt

Registriert seit: 13. Nov 2003
Ort: Hamburg
212 Beiträge
 
#2

Re: Rave und Aggregates

  Alt 13. Nov 2003, 07:10
Ich habe sowas mal gelöst in dem ich einfach die benötigten Werte mit einem TQuery berechnet habe und das habe ich dann in Rave einfach als zweite Datenquelle mit angegeben.
  Mit Zitat antworten Zitat
iamjoosy

Registriert seit: 12. Nov 2003
53 Beiträge
 
#3

Re: Rave und Aggregates

  Alt 13. Nov 2003, 08:53
Hi Matt,
das Problem ist, dass ich ausschliesslich mit CLientdatasets und Localen Files (also MYbase) arbeite. Da fällt eine Tquery Komponente leider raus.
Das Problem ist, ich kann mir die Aggregate Fields in einem Dbtext auf jeder Form anzeigen lassen, und ich verstehe nicht wieso die Aggregate Fields nicht auch in Rave zu sehen sind.

Um das Problem zu lösen, habe ich auch schon andere Varianten im Kopf (zur Not mache ich das eben über eine Rave Custom Connection), aber ich würde gerne das Prinzip vertstehen, warum es nicht auch direkt über eine Rave Dataset Connection geht .

Trotzdem vielen Dank für deinen Rat.

P.s: Bin hier ganz neu und möchte hier mal grosses Lob aussprechen !!!
  Mit Zitat antworten Zitat
iamjoosy

Registriert seit: 12. Nov 2003
53 Beiträge
 
#4

Re: Rave und Aggregates

  Alt 14. Nov 2003, 08:26
Hmmmm, das Problem scheint wohl nicht so ganz trivial zu sein .... werde mal weiter nach einer Lösung suchen und bei erfolg euch diese mitteilen.
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Rave und Aggregates

  Alt 14. Nov 2003, 11:57
hey,
kläre mich bitte einmal kurz über die cds-aggregates auf.
muss zu meiner schande gestehen, dass ich bisher mit cds "eher
weniger" gearbeitet habe.
ist es vergleichbar mit calculatedfields von TDataset ?!


thomas, TeamNevrona
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
iamjoosy

Registriert seit: 12. Nov 2003
53 Beiträge
 
#6

Re: Rave und Aggregates

  Alt 14. Nov 2003, 12:45
Hi Thomas,
also Aggregate Fields sind (wie Calculated Fields auch) virtuelle Felder. D.h. sie werden nie in einer Datenbank abgespeichert, sondern zur Laufzeit berechnet (via einer Expression, wie z.B. avg(Fieldxy)). Ansonsten verhalten sie sich eigentlich wie normale data fields und man kann Sie z.B. in einem dbText anzeigen. (Man kann Sie auch verwenden um Gruppenstatistiken zu verwenden, aber das spielt für mein Problem eigentlich keine Rolle, da ich Mittelwerte über einen gefilterten Datensatz berechene). So, ich hoffe, das ist erst mal genügend Info über Aggregates.

BTW: Du kannst einfach mal folgendes einfaches Beispiel ausprobieren:

1) EIn ClientDataset auf die Form
2) Doppelclick für Feldeditor
3) CTRL-N für neues Feld : Name: xy type: integer, data type:data
4) CTRL-N : Name: AVGxy type aggregate, data type: aggregate
4.1) Rechte Maus Click auf ClientDataSet und Create Dataset
5) Expression Property von AVGxy: avg(xy)
6) Active Property von AVGxy:true
7) AggregatesActive Property von ClientdataSet1: true

8) Datasource auf Form
9) DBtext auf Form , Datasource auswählen
10) bei DataFields siehst du xy und AVGxy

11) Mache eine RavedatsetConnection (Dat weisst du ja)
12) Schau im Rave Dataview nach was du siehst (Nämlich nur xy)
13) Warum ??????
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: Rave und Aggregates

  Alt 14. Nov 2003, 13:47
hey,

man lernt nie aus... habe mir gerade die cds-komponenten einmal näher angeschaut.
richtig: rave erkennt im ersten moment nur die "echten" und die kalkulierten felder.
die aggregates werden nicht erkannt. aber die cds-komponente trennt ja auch optisch diese zwei spalten typen

aber ist soweit auch kein problem. mit nachfolgendem codeschnipsel habe ich so auf die schnelle die virtuelle spalte "durch" an
die reportengine übergeben.
vereinfacht gesagt, habe ich über die rave-calculated fields diese "etwas andere" spalte angefügt und damit werden sie in rave nutzbar (aber beim refresh (!!!danach nicht mehr notwendig!) der rave dataview muss deine applikation laufen!)

der durchschnittswert der felder wurde korrekt übergeben (bei jedem datensatz, ist aber vom ergebniss nicht schädlich, oder ?)

Code:
procedure TForm1.RvDataSetConnection1GetRow(
  Connection: TRvCustomConnection);
begin
  begin
    with Connection do
    begin
      DoGetRow;
      WriteFloatData(ClientDataSet1.FieldByName('durch').AsVariant, 0);
    end;
  end;
end;

procedure TForm1.RvDataSetConnection1GetCols(
  Connection: TRvCustomConnection);
begin
  begin
    with Connection do
    begin
      DoGetCols;
      WriteField('durch', dtFloat, 1, '', '');
    end;
  end;
end;
schicke bitte ein kurzes feedback hier ob dein problem damit gelöst ist!!


gruss und ein schönes wochenende



thomas, TeamNevrona
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
iamjoosy

Registriert seit: 12. Nov 2003
53 Beiträge
 
#8

Re: Rave und Aggregates

  Alt 14. Nov 2003, 13:51
Ok, habe weiter nachgedacht und geforscht und bin zu folgendem gekommen:
Die Aggregate Fields erscheinen zwar im Object Treeview unter "Fields", dort allerdings mit einem Index von -1, was mich dann doch etwas stutzig gemacht hat. Deshalb habe ich mal die Fields zur Laufzeit ausgezählt (Fields.Count) und siehe da, es sind nur die Datenfelder dort abgelegt. Weitere Forschung: Aggreagte Fields werden in einer eigenen Collection AggFields verwaltet. Die gibt es schon ab TDataSet, werden aber erst ab TClientDataset verwendet.

Meine Vermutung ist also:

DBText weiß wahrscheinlich dass es Fields und AggFields gibt und gibt diese beide im DataField Property Editor an.
Rave bzw. eine DataView Komponente liest wahrscheinlich nur die Fields Collection aus.

Ergo: Ich muss wohl auf meine Aggregates in Rave verzichten.

ISt aber nicht so schlimm, bastelt ich eben eine Lösung drum rum (Ein zweites Clientdataset in das ich die Aggreagtes reinschreibe z.B)
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: Rave und Aggregates

  Alt 14. Nov 2003, 13:55
<<Ergo: Ich muss wohl auf meine Aggregates in Rave verzichten. >>
probiere ersteinmal meine obige lösung (ist 4 minuten alter als deine message ) aus !

thomas, TeamNevrona
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz