Einzelnen Beitrag anzeigen

XFiled
(Gast)

n/a Beiträge
 
#3

Re: Rave/SQL: Ausgabe wird nicht aktualisiert!

  Alt 23. Feb 2006, 10:19
Delphi-Quellcode:
procedure THauptform.getRaveReport(Datenquelle: TIBQuery);
begin
  // im folgenden wird eine korrekte (im Database Explorer geprüfte) SQL-Anweiung entsprechend Bericht übernommen
  try
    Datenquelle.Close;
    Datenquelle.SQL.Clear;
    Datenquelle.SQL.Add(Bericht.SQL);
  except
  end;

  // läßt sich Datenquelle öffenen
  try
    Datenquelle.Open;
  except on e:Exception do
    WebApplication.ShowMessage('Fehlerhafte Datenbankabfrage! [...] konnte nicht geöffnet werden!' + Chr(10) + Chr(10) + e.Message);
  end;

  // oder ist Datenquelle vielleicht leer
  if Datenquelle.Eof then
  begin
    WebApplication.ShowMessage('Es konnte kein Bericht zu Ihrer Anfrage gefunden werden!');
    Exit;
  end;

  // Datei einlesen und Parameter (Überschriften u.ä.) setzen
  UserSession.DM.RVProject.ProjectFile := GServerController.FilesDir + 'Reports.rav';
  UserSession.DM.RVProject.SetParam('Ueberschrift', Bericht.Headline);

  // Ausgabedatei und -verzeichnis bestimmen
  UserSession.DM.RvSystem.DoNativeOutput := False;
  UserSession.DM.RvSystem.RenderObject := UserSession.DM.RvRenderPDF;
  LFile := Bericht.Name + '.pdf';
  UserSession.DM.RvSystem.OutputFileName := GServerController.FilesDir + IncludeTrailingPathDelimiter(WebApplication.AppID) + LFile;
  ForceDirectories(ExtractFileDir(UserSession.DM.RvSystem.OutputFileName));

  // RvDSC_Master ist eine TRvDataSetConnection
  UserSession.DM.RvDSC_Master := TRvDataSetConnection.Create(Self);
  UserSession.DM.RvDSC_Master.Name := Bericht.RvDSCName;
  UserSession.DM.RvDSC_Master.DataSet := Datenquelle;

  try
    RThread := TReportThread.Create(UserSession.DM.RvProject);
  except on e:Exception do
    WebApplication.ShowMessage('Bericht konnte nicht erstellt werden!' + Chr(10) + Chr(10) + e.Message);
  end;
end;
...na, ob das wirklich hilft...

Wenn ich mein Program starte, wird der erste erzeugte Bericht stets fehlerfrei angezeigt (egal wie lang dieser ist).
Sobald ich aber einen weiteren Bericht erzeugen will, mit anderen Inhalten, wird mir dennoch nur obiger erster Bericht angezeigt...
ich muß das Program beenden, um dann einen neuen, anderen Bericht erzeugen zu können...

XFiled
  Mit Zitat antworten Zitat