AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit ändern

Ein Thema von cs.rumpelstilzchen · begonnen am 12. Dez 2005 · letzter Beitrag vom 3. Jan 2006
Antwort Antwort
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#1

Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit ändern

  Alt 12. Dez 2005, 14:08
Datenbank: MS SQL-Server 2000 • Zugriff über: ADO
Hallo Leute!

Bin wieder mal an meine Grenzen gestoßen

Problemstellung: Ein (Umsatz)-Bericht besteht aus verschiedenen Modulen. Der Anwender soll zur Laufzeit die Reihenfolge der Module festlegen können.

Im Rave (BE-Version von Delphi2005) besteht jedes Modul aus verschiedenen Bändern (Kopf, Body, Fuß). Diese sind innerhalb einer Region alle untereinander angeordnet.

Kann ich zur Laufzeit die Reihenfolge verändern?
Wenn ja, wie?

Danke schon mal im Voraus.
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#2

Re: Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit än

  Alt 21. Dez 2005, 15:00
Hmmm.... was ist los? Alle schon im Weihnachtsurlaub ?

Oder gibt's tatsächlich keine Lösung für das Problem? :chäffe_krank:

Bitte bitte bitte liebe Forumer, denkt nach! Lasst mich nicht hängen!

Schöne Weihnachtstage!
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit än

  Alt 21. Dez 2005, 15:20
Hallo cs.rumpelstilzchen,

da kann dir sicher Merlin17 helfen. Vielleicht ist er stark beschäftigt. Schick ihm doch mal ne PN it eine Link auf diesen Thread. Er freut sich bestimmt.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#4

Re: Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit än

  Alt 21. Dez 2005, 15:38
THX Mr. Spock!

Hab grad selbst was gefunden!

Delphi-Quellcode:
        MyComponent := FindRaveComponent(szModulName,MyPage) as TRaveComponent;
        if MyComponent <> nil then
          MyComponent.Visible := True;
          MyComponent.BringToFront;
Das funzt! BringToFront setzt die Komponente zwar an das Ende des Reports (BringToFront! Klar! ), aber wenn ich das bei allen Komponenten des Reports nacheinander mache, erhalte ich die gewünschte Reihenfolge!

Aaaaaaber....

Die erste Komponente auf dem Blatt - eine einfache Band-Komponente, alle anderen sind DataBand-Komponenten! - macht Ärger: EXCEPTION!


Danke für eure Hilfe!
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#5

Re: Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit än

  Alt 21. Dez 2005, 16:11
Noch ein Problem: Ich kann zwar die Eigenschaft Visible (und einige andere) manipulieren, aber "StartNewPage" und "FinishNewPage" fehlen! Oder ich find sie nicht?

Gibt es da irgendein Zauberwort?
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
merlin17

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

Re: Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit än

  Alt 3. Jan 2006, 14:39
Zitat:
aber "StartNewPage" und "FinishNewPage" fehlen!
ist das Problem gelöst ? IIRC war doch im support-channel bei nevrona die frage von dir, oder ?


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

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

Re: Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit än

  Alt 3. Jan 2006, 14:40
Zitat:
Die erste Komponente auf dem Blatt - eine einfache Band-Komponente, alle anderen sind DataBand-Komponenten! - macht Ärger: EXCEPTION
evtl. Rechtschreibfehler ??


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

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#8

Re: Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit än

  Alt 3. Jan 2006, 15:19
Hallo Merlin 17!

Danke für deine Aufmerksamkeit.

In der Tat, ich habe von Nevrona eine Interessante Antwort erhalten:

Meine Frage war:
Zitat:
I want Rave to print components on a new page if the user wants to.
I tried to use the components properties like this:

MyComponent := FindRaveComponent(szModulName,MyPage) as TRaveComponent;
if MyComponent <> nil then
begin
MyComponent.Visible := True;
MyComponent.BringToFront;
end;

But i can't find the properties StartNewPage and FinishNewPage!

What i found is the Tag-propertie. So i decided to set it to 1 and then use this information in the Rave-Event-Programming. But the Tag-propertie is not known there!!!
Die Antwort dazu:

Zitat:
Hi Jürgen,

Thank you for including your Rave product (BE or BEX) and version. PLEASE do this in ALL support messages (check Rave Help About). It helps us provide a better support answer. For your information, Rave 6.0.1 is the BE (Borland Edition) product - not BEX which is an upgrade. The latest version of Rave 6 BEX is 6.0.5.

> I want Rave to print components on a new page if the user wants to. I
tried to use the components properties like this: ..... But i can't find the properties StartNewPage and FinishNewPage! What i found is the Tag-propertie. So i decided to set it to 1 and then use this information in the Rave-Event-Programming. But the Tag-propertie is not known there!!!

The first thing I have to say is FindRaveComponent is simply a back-door to the visual designer that was intended for "MINOR" changes or adjustments to visual reports before the report is started. Once the report has started, the FindRaveComponent code is NOT used. Tip #79 "Create Reports without Visual Designer" on our web site "Tips and Tricks"
page has a full paragraph on this. Basically, if you are doing more than one or two "simple" properties (left, top, color etc) then you really should be looking at true code-base reporting. If I could go back in time - I would strongly recommend that the "FindRaveComponent" not have been developed or released. I would not and do not recommend that you use the FindRaveComponent method for anything other than very simple things.

The Rave Reports event system has been significantly improved since it was first introduced in Rave BE 5.0.8. The FindRaveComponent method allowed early Rave 5 users to do some things that the early scripting engine could not do. However, the scripting engine (events) has matured considerably since its introduction and became as powerful (later releases of Rave 5), then even more powerful (Rave 6) than the FindRaveComponent method. The scripting engine can make conditional changes as the report is running - something the FindRaveComponent method never could do.

In fact, if you are using Rave 6 or later, then I would say you should focus on using combinations of parameters and Rave events. If you cannot do it with parameter and events, then you probably need to look at a "true code-based" solution and not the FindRaveComponent method.

That said, "StartNewPage" and "FinishNewPage" are properties of a Band component. I did a quick test in both the event system and in my test project with a FindRaveComponent and had no problem. However, I believe that some of the components are "set" to the "designer" setting when the report starts. So "back-door" changes may appear to be ignored.

Technical Support
support@nevrona.com
Wobei man sich den Satz "If I could go back in time - I would strongly recommend that the "FindRaveComponent" not have been developed or released." dringend merken sollte! Wer weiss wielange das überhaupt noch so möglich sein wird!

Es ist tatsächlich nicht möglich die Eigenschaften StartNewPage und FinishNewPage direkt im Delphi zu manipulieren! Und im Rave habe ich innerhalb eines Events keinen direkten Zugriff auf Parameter und auf den 'Tag'-Wert.
Also hab ich den unter Programmierern so beliebten 'Schrägdurchdiebrustinsauge'-Ansatz probiert:
- Parameter für jedes der zu steuernden Module angelegt
- zu jedem Datenband einen Footer hinzugefügt
- dort ein DataText-Objekt mit Inhalt zugehöriger Parameter
- jedem Footer ein 'BeforePrint'-Event verpasst
- im Event abhängig vom Inhalt des Datatext-Objekts die Eigenschaft 'FinishNewPage' gesetzt
Ein bisserl Umständlich, aber es funzt!!!!

Mit Rave kann man schon ne Menge anstellen, aber nach wie vor finde ich es äußerst befremdlich, daß es keine vollständige Dokumentation dazu gibt!

Es ist doch lächerlich, da wird das runde Rad immer wieder neu erfunden nur weil der Hersteller keine Lust hat mal was schriftliches zu Produzieren, mit dem man wirklich arbeiten kann!

Wie weit bist du mit deinem Buch zu Rave? Hätte das Zeug zum Bestseller!

Übrigens hast du richtig vermutet, das Problem mit der Exception war tatsächlich ein 'Dreckfuhler'. Das Objekt hatte im Rave einen anderen Namen!

So long und nochmals Danke

Jürgen
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
merlin17

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

Re: Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit än

  Alt 3. Jan 2006, 16:34
Hallo,

ich habe den Thread [ND-8B7T3P-1] mitgelesen <g>.
Zitat:
Wobei man sich den Satz "If I could go back in time - I would strongly recommend that the "FindRaveComponent" not have been developed or released." dringend merken sollte! Wer weiss wielange das überhaupt noch so möglich sein wird!
keine Panik, ich gehe davon aus, dass die Nevronies dies nicht kappen werden..... aber es ist eben ein nicht korrekter Weg, um in dem Rave-stream (mehr ist
die RAV-Datei nicht, aber nicht weitersagen ) vor dem execute noch etwas zu verändern. Aber hier gibt es selbst Nevrona-intern die zwei Meinungen.

Die Eigenschaft ist aber definitiv darüber zu erreichen, auch JimD hat es in der Antwort ja geschrieben.
habe gerade in altes Rave-projekt gesucht:
Delphi-Quellcode:
 RaveSeite :=
    DM.RaveProject1.ProjMan.FindRaveComponent('Haushaltsstellen.Seite1',
    nil) as TRavePage;
  SeitenschnittBand := DM.RaveProject1.ProjMan.FindRaveComponent('BandGLZ_GH',
    RaveSeite) as TRaveBand;
  // Seitenwechsel:
  case RG_SW_HHST.ItemIndex of
    0: SeitenschnittBand.StartNewPage := False;
    1: SeitenschnittBand.StartNewPage := True;
  end;
Zitat:
Mit Rave kann man schon ne Menge anstellen, aber nach wie vor finde ich es äußerst befremdlich, daß es keine vollständige Dokumentation dazu gibt!
aber es wird doch von Version zu Version besser
Zitat:
Wie weit bist du mit deinem Buch zu Rave? Hätte das Zeug zum Bestseller!
kennst du die unendliche geschichte ; anfangen habe ich mit Rave4 und kaum dachte ich, jetzt bin ich PageMaker fertig, gab es wieder was neues,
sei es CLX, .net, Rave5, Rave6, Rave7, Kylix, Eventscripting etc.etc.
aber ob Du es glaubst oder nicht, 2006 habe ich als DeadLine definiert, evtl. als courseware wie dr.bob
Zitat:
Übrigens hast du richtig vermutet, das Problem mit der Exception war tatsächlich ein 'Dreckfuhler'. Das Objekt hatte im Rave einen anderen Namen!
kenn' ich

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

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#10

Re: Rave: Reihenfolge von Objekten (Bändern) zur Laufzeit än

  Alt 3. Jan 2006, 18:39
Aaaaaaaaargghhhh....

Ich Depp!

Wer lesen kann...

as TRavePage Und ich benutze as TRaveComponent !!!!! (Wegen FindRaveComponent)!!!

Dümmer geht's nümmer.


Danke für den (wohl unbewussten ?) Hinweis deinerseits Thomas! Hätte ich wohl auch eher drauf kommen können! (Der Support von Nevrona allerdings auch!)

Jetzt hab ich natürlich auch Zugriff auf StartNewPage!

Also gut 5 Stunden Arbeit und Recherche investiert und jetzt alles wieder löschen und vernünftig proggen das Programmiererleben kann so schön sein!!!!

Und wieder bewahrheitet sich:
"Marketingsprüche sind schnell geschrieben, Know-How dauert wesentlich länger!"


In diesem Sinne: mach hin mit deinem Buch Thomas!!!!!!!

THX
Jürgen
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  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 14:39 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