Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Rave7, Reporterstellung abbrechen, aber wie? (https://www.delphipraxis.net/104207-rave7-reporterstellung-abbrechen-aber-wie.html)

bug0815 29. Nov 2007 09:48


Rave7, Reporterstellung abbrechen, aber wie?
 
Erst mal eine kurze Beschreibung des Problems:
Um im Falle einer Änderung an meinen Dokumenten (Reports) nicht immer die *.exe austauschen zu müssen, will ich gern alle nötigen Informationen im *.rav File vorhalten. Dazu gehört auch die Plausiprüfung.
Nun hab ich leider das Problem, dass ich im Falle einer negativen Plausiprüfung die Erstellung des Reports nicht abbrechen kann. Die Funktionen .Abort und .AbortPage stehen leider nur in Delphi zur Verfügung und können im RaveEvent anscheinend nicht verwendet werden.

Anbei der Code im RaveEvent: (Achtung, kein Delphi Quellcode)
Code:
{ Event for Test.OnBeforeReport }
function Test_OnBeforeReport(Self: TRaveReport);
begin
  //Die nötigen Plausiprüfungen durchführen
  if (RaveProject.GetParam('T_Flag11') = '0') and
     (RaveProject.GetParam('T_Flag12') = '0') and
     (RaveProject.GetParam('T_Flag13') = '0') then
    ShowMessage('Bitte in der Gruppe Block 1 einen Auswahl treffen!');

    //Erstellung des Reports hier abbrechen!!

  end if;

  if (RaveProject.GetParam('T_Flag21') = '0') and
     (RaveProject.GetParam('T_Flag22') = '0') and
     (RaveProject.GetParam('T_Flag23') = '0') then
    ShowMessage('Bitte in der Gruppe Block 2 einen Auswahl treffen!');

    //Erstellung des Reports hier abbrechen!!
 
  end if;
end OnBeforeReport;
Wäre super, wenn wer einen Ansatz für dieses Problem hätte...

shmia 29. Nov 2007 11:11

Re: Rave7, Reporterstellung abbrechen, aber wie?
 
Mach dich doch mal schlau, ob man in diesem Pascal-Script auch eine Exception erzeugen kann.
z.B. raise EAbort.Create('Druck abgebrochen')

Falls das nicht geht, versuche über den Parameter Self: TRaveReport etwas auszurichten.
z.B. self.Stop oder self.PageCount := 0.
Ich habe selbst kein Rave auf dem Rechner, kann also nur versuchen dich in die richtige Richtung zu schubsen.

bug0815 29. Nov 2007 11:32

Re: Rave7, Reporterstellung abbrechen, aber wie?
 
Danke für die Anregungen,

die "Rave-Script Sprache" stellt nur einen sehr geringen Funktionsumfang bereit. Daher hab ich auch keine Möglichkeit gefunden eine Exception gezielt auszulösen. Alle in der Dokumentation zur Verfügung stehenden Funktionen (Self.xxxx) bin ich schon durchgegangen, leider ohne Erfolg.

Hier hilft mir wahrscheinlich nur ein Trick oder die eine oder andere undokumentierte Funktion weiter.

merlin17 10. Jan 2008 21:11

Re: Rave7, Reporterstellung abbrechen, aber wie?
 
Hallo,
beim Suchen hier in der DP habe ich Deine Posting gerade gesehen...

ein Abbruch aus dem RaveScripting gibt es bisher nicht ...
So auf die Schnelle fällt mir nur der Weg über die RvDataset-ereignisse ein, hier kannst du
bei jeder Datenzeile ja prüfen und dann den Bericht über die BaseReport.Abort stoppen (habe ich aber noch nie gemacht ...)


:-) thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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