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/)
-   -   Delphi Rave -> NDR (https://www.delphipraxis.net/46138-rave-ndr.html)

Shaky 19. Mai 2005 13:11


Rave -> NDR
 
Hi.

Ich habe ein Problem.

Ich habe mit dem Rave Report Designer eine Vorlage erstellt.
Die wird auch mit der DB richtige gefüllt.

Die Parameter funktionieren auch.

Delphi-Quellcode:
 procedure TFVorschau.Button1Click(Sender: TObject);
var netto, mwst: single;
begin
  RvProject1.Open;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('SELECT Titel, Adresse, Vorname, Nachname, PLZ, Ort, Land, ID_Rechnungen FROM kunden INNER JOIN Rechnungen ON kunden.ID_Kunden = Rechnungen.ID_Kunden WHERE (Rechnungen.ID_Rechnungen=70)');
  adoquery1.Open;
  Rvproject1.SetParam('Name', adoquery1.FieldByName('Titel').AsString + ' ' + adoquery1.FieldByName('Vorname').AsString + ' ' + adoquery1.FieldByName('Nachname').AsString);
  Rvproject1.SetParam('Adresse', adoquery1.FieldByName('Adresse').AsString);
  Rvproject1.SetParam('Ort', adoquery1.FieldByName('PLZ').AsString + ' ' + adoquery1.FieldByName('Ort').AsString);
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('SELECT Ktn,BLZ,Bank_name,IBAN,BiC, Firmen_name, Adresse, Ort, PLZ, Url, Logo, Steuerid, Umsatzsteuerid FROM (Rechnungen INNER JOIN Konto ON Rechnungen.ID_Konto = Konto.ID_Konto) INNER JOIN Firmen ON Konto.ID_Firma = Firmen.ID_Firma');
  adoquery1.SQL.Add(' WHERE Rechnungen.ID_Rechnungen=70;');
  adoquery1.Open;
  Rvproject1.SetParam('Ktn', 'Kto.-Nr ' + adoquery1.FieldByName('Ktn').AsString);
  Rvproject1.SetParam('BLZ', 'BLZ ' + adoquery1.FieldByName('BLZ').AsString);
  Rvproject1.SetParam('Bankname', 'Bankname ' + adoquery1.FieldByName('Bank_name').AsString);
//  Rvproject1.SetParam('IBAN', 'IBAN ' + adoquery1.FieldByName('IBAN').AsString);
//  Rvproject1.SetParam('BIC', 'BIC ' + adoquery1.FieldByName('BIC').AsString);
  Rvproject1.SetParam('F_Adresse', adoquery1.FieldByName('Adresse').AsString);
  Rvproject1.SetParam('F_Ort', adoquery1.FieldByName('PLZ').AsString + ' ' + adoquery1.FieldByName('Ort').AsString);
  Rvproject1.SetParam('F_Url', adoquery1.FieldByName('Url').AsString);
  Rvproject1.SetParam('F_Steuer', adoquery1.FieldByName('Steuerid').AsString);
  Rvproject1.SetParam('F_Umsatz', adoquery1.FieldByName('Umsatzsteuerid').AsString);
  Rvproject1.SetParam('F_Name', adoquery1.FieldByName('Firmen_name').AsString);
  Rvproject1.SetParam('Bankverbindung', 'Bankverbindung');
  Rvproject1.SetParam('Steuernummern', 'Steuernummern');
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('SELECT Sum(Produkte.Preis) AS [Summe] FROM ((Produkte INNER JOIN Produkt_kategorien ON ');
  adoquery1.SQL.Add('Produkte.ID_P_Kategorie = Produkt_kategorien.ID_P_Kategorie) INNER JOIN (Pos_Nr INNER JOIN Rechnungsposten ON Pos_Nr.ID_Rech_posten = Rechnungsposten.ID_Rech_posten) ');
  adoquery1.SQL.add('ON Produkte.ID_Produkt = Rechnungsposten.ID_Produkt) INNER JOIN Rechnungen ON Pos_Nr.ID_Rechnung = Rechnungen.ID_Rechnungen GROUP BY Rechnungen.ID_Rechnungen HAVING (((Rechnungen.ID_Rechnungen)=70))');
  adoquery1.Open;
  netto:=adoquery1.FieldByName('Summe').AsInteger - ((adoquery1.FieldByName('Summe').AsInteger/100) * 16);
  mwst:=adoquery1.FieldByName('Summe').AsInteger - netto;
  Rvproject1.SetParam('S_Netto', floattostr(roundto(netto,-2)));
  Rvproject1.SetParam('Umsatz', floattostr(roundto(mwst,-2)));
  Rvproject1.SetParam('Gesamt', adoquery1.FieldByName('Summe').AsString);
  adoquery1.Close;

 

 
  RvProject1.Execute;

 

 
  RvProject1.Close;
end;

Jetzt möchte ich aber nicht nur öffnen und in dem nächsten Feld dann bestätigen müssen. Sondern. Entweder direkt zur Vorschau oder direkt Drucken oder direkt als PDF erstellen.
Aber wie?

Wenn ich ne NDR hätte würde das evtl. gehen. Aber wie erstelle ich da ne NDR?

Keldorn 19. Mai 2005 17:31

Re: Rave -> NDR
 
Pack eine RVsystem-komponente mit auf die Form. stell dort bei Destination z.B. rdpreview ein (geht natürlich auch zur Laufzeit) und bei systemssetup:allowsetup auf false. Die weiteren Einstellungen für die Files, preview und prin kannst du unter den weiteren system-eigenschhaften einstellen.
Bei deiner RvProject-komponente stellst du bei "Engine" deine Rvsystem-komponente ein.

Warum übergibst du alles als Parameter?

Mfg Frank

Shaky 20. Mai 2005 07:58

Re: Rave -> NDR
 
Wieso nicht?

Will ja auch mal welche weglassen. Und deshalb übergebe ich z.B. auch die Überschriften.
Wenn z.B keine Bankverbindung angegeben wird soll garnix kommen.

Also den Hauptdatensatz übergebe ich ja nicht per Parameter.
Also das Band oder wie das heißt.
Da hab ich ne RVDatasetconnection.

Aber ich muss mir das teil jetzt eh erstmal genau angucken.

merlin17 28. Mai 2005 16:33

Re: Rave -> NDR
 
Hallo,
Zitat:

Wenn ich ne NDR hätte würde das evtl. gehen. Aber wie erstelle ich da ne NDR?
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
 
  RvProject1.Engine := RvNDRWriter1;
  RvNDRWriter1.FileName := 'DP1.NDR';
  RvProject1.ExecuteReport('Report1');
  RvProject1.Engine := RvSystem1;
  ShowMessage('NDR Datei ist erstellt!');
End;
that's all


;-) thomas, TeamNevrona


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