AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Fastreport 4 Beispiel für eine Rechnung das Prinzip n. verst
Thema durchsuchen
Ansicht
Themen-Optionen

Fastreport 4 Beispiel für eine Rechnung das Prinzip n. verst

Ein Thema von Kostas · begonnen am 17. Jun 2008 · letzter Beitrag vom 19. Jun 2008
 
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Fastreport 4 Beispiel für eine Rechnung das Prinzip n. v

  Alt 18. Jun 2008, 09:28
Ich habe die Funktion mal umgeschrieben, so dass sie mit nur einem Open auskommt (durch ersetzen der where-Klausel):
Delphi-Quellcode:
procedure TfrmBelegKopf.PrintSelectedBeleg;
var
   i : integer;
   BelegId : extended;
   BelegIds : array of extended;
   BelegIDString : string;
begin
   for i := 0 to cxGridBelegeDBTableView1.Controller.SelectedRowCount -1 do
   begin
      if cxGridBelegeDBTableView1.Controller.SelectedRows[i] is TcxGridDataRow then
      begin
         BelegId := cxGridBelegeDBTableView1.Controller.SelectedRows[i].Values[0];
         SetLength(BelegIds, Length(BelegIds)+1);
         BelegIds[High(BelegIds)] := BelegId;
      end;
   end;
   if Length(BelegIds) > 0 then
   begin
      // IN(...) String zusammensetzen
      for i := 0 to High(BelegIds) do
      begin
         BelegIDString := BelegIDString+IntToStr(trunc(BelegIDs[i]))+',';
      end;
      // letztes Komma abschneiden
      BelegIDString := copy(BelegIDString,1,length(BelegIDString)-1);

      with TPrintModule.Create(Application) do
      begin
         // Where ersetzen
         qryBKopf.SQL.Strings[qryBKopf.SQL.Count-1] := 'where bkopf.id in ('+BelegIDString+')';
         qryBKopf.Open;
         qryBPos.Open;
         qrySummen.Open;
         if Length(BelegIds) > 1 then
            frxReport1.ReportOptions.Name :=
               Format('%s - %s',['Sammeldruck', qryBelegart.FieldByName('Beleg_text').AsString])
         else
            frxReport1.ReportOptions.Name :=
               Format('%1:s %0:s',[qryBKopf.FieldByName('Bnr').AsString, qryBelegart.FieldByName('Beleg_text').AsString]);

         frxReport1.PrepareReport(False);
         qryBKopf.Close;
         frxReport1.ShowPreparedReport;
         Free;
      end;
   end;
end;
Die Rechnungen werden alle gedruckt wie im Einzeldruck. Nur die #Page Variablen stimmen natürlich nicht mehr, deshalb drucke ich die ja (wie im letzen Psoting) normalerweise einzen. Dann brauche ich mir die Seiten nicht selber zu numerieren.
Kopf und Fussdaten sind die richtigen, da wird nichts vermischt. Wie hast Du denn Deine Datasets verbunden? Ich habe eine ganz normale Verbindung über DataSource der Kopfdaten in die DataSourcen der Positions- und Summendaten gemacht. Ich verwende hier keine speziellen TFrx...DataSet Komponenten. Vielleicht steckt ja auch da der Fehler drin.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
 


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:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz