Daten in Rave Report einfügen
-
Jetzt hab ich meinen Rave Report am laufen, sodass Seitenweise Informationen ausgespuckt werden, jetzt häng ich an nem ganz banalen Problem:
Ich möchte in den Kopf von meinem Report verschiedene Daten einfügen, wie Autor, Datum, etc. Dazu habe ich entsprechende Felder eingefügt, ein RvCustomConnection-Objekt eingefügt, die Open(), GetRows() und GetCols()-Funktion umgesetzt, den Report ausgefüllt und nichts passiert. Die Felder bleiben einfach leer. Ich hab die Vermutung, dass das, was ich hier versuche, nur für die DataBands klappt, oder? Aber wie krieg ich einfach was rein geschrieben, was danach immer an der gleichen Stelle auf jeder Seite wiederholt wird?
-
Genau, die RvCustomConnection funktionieren nur mit den DataBand und DataXYZ Komponenten. Mach nen normales Band auf die Seite, normale Labels drauf und gib denen nette namen. Dann im C++ Code vor dem ExecuteReport:
TRavePage* MyPage; TRaveText *TitelNr; MyPage=reinterpret_cast<TRavePage*>(RvProject1->ProjMan->FindRaveComponent(ReportName+".Page", NULL)); TitelNr=reinterpret_cast<TRaveText*>(RvProject1->ProjMan->FindRaveComponent("tTitelNr", MyPage));
ReportName ist der Name des reports ".Page" ist "." + der Name der Seite (heißt bei mir Page).
Wichtig und irritierend: Trotz das die Komponenten auf einem Band etc liegen, muss immer MyPage übergeben werden, nicht erst die Page holen, dann das Band und von dort das Label.mfg
xXxPS: So kannst du übrigens auch nen kompletten Report im Code erstellen, z.B. um ListViews oder StringGrids zu drucken.
-
Jetzt noch nen RvProject->Open() davor, und schon läufts
So langsam komm ich dahinter. Was ich nur nicht ganz verstehe ist, warum ich nicht direkt auf die Test-Komponente zugreifen kann, so a´la:
rvText=reinterpret_cast<TRaveText*>(this->RvProject->ProjMan->FindRaveComponent("Report.Page.Text5", NULL));
-
Bevor ich jetzt nen neuen Thread startet und du antwortest eh, mach ich das einfach hier:
Ich möchte in dem DataBand meine Daten als Tabelle mit Gitternetzlinien darstellen. Eine Spalte besteht allerdings aus Memos, da dort längere Texte vorkommen können und die umgebrochen werden sollen. Das führt dazu, dass vertikale Linien zu kurz werden. Kann ich die irgendwie mitwachsen lassen oder gibt es ne Option ShowGrid()?
-
oh, irgendwie hab ich die neuen Posts hier übersehen
Das band steht ja vermmutlich auf AutoExpand. Das Memo vergrößert dann das Band und wenn du dort die VLine mit nem Anchor V-Stretch versiehst, sollte das klappen.
mfg
xXx
-
Heimelchen schrieb:
warum ich nicht direkt auf die Test-Komponente zugreifen kann, so a´la:
rvText=reinterpret_cast<TRaveText*>(this->RvProject->ProjMan->FindRaveComponent("Report.Page.Text5", NULL));
Hab ich noch nie Probiert... klappt das?
mfg
xXx
-
Eben nicht, aber warum?
-
Vermutlich weil da der Name der Komponente angegeben werden muss und der Punkt ist nicht als Punkt im Sinne der OOP zu verstehen ist.
Die Komponente TRavePage bekommt vermutlich den Titel "Name.Page"...mfg
xXx