![]() |
Re: Reportbuilder Image Komponente
ausserdem sollen threads nicht innerhalb von 24std gepusht werden...
|
Re: Reportbuilder Image Komponente
Hallo,
also die Bilder sind alle gleich. Hier erstmal der Code.
Delphi-Quellcode:
var frmFotoanlage: TfrmFotoanlage; Gi : integer; implementation {$R *.dfm} procedure TfrmFotoanlage.FileListBoxClick(Sender: TObject); begin Image.Picture.LoadFromFile(FileListBox.FileName); end; procedure TfrmFotoanlage.FileListBoxDblClick(Sender: TObject); begin ListBox.AddItem(FileListBox.FileName,FileListBox); end; procedure TfrmFotoanlage.CBVorschauClick(Sender: TObject); begin if CBVorschau.Checked then begin GroupBoxVorschau.Visible := True; end else begin GroupBoxVorschau.Visible := False; end; end; procedure TfrmFotoanlage.FormCreate(Sender: TObject); begin frmFotoanlage.Caption := 'Fotoanlagen Ver. 1.0 --' + DateToStr(Date); EditText.Text := ''; EditGANr.Text := ''; end; procedure TfrmFotoanlage.FormShow(Sender: TObject); begin EditGANr.SetFocus; end; procedure TfrmFotoanlage.btnDruckenClick(Sender: TObject); begin if CBDruckvorschau.Checked then begin Fotoanlage.Print; end else begin Fotoanlage.DeviceType := dtScreen; Fotoanlage.Print; end; end; procedure TfrmFotoanlage.FotoanlagePreviewFormCreate(Sender: TObject); begin Fotoanlage.PreviewForm.WindowState := wsMaximized; end; procedure TfrmFotoanlage.FotoanlageBeforePrint(Sender: TObject); var i : integer; hPfad, hschluessel : string; begin if CBMitKopf.Checked then begin ppRegionKopf.Visible := True; end else begin ppRegionKopf.Visible := False; end; if EditGANr.Text <> '' then begin ppLblGANr.Caption := 'Fotoanlage zur GutachtenNr. ' + EditGANr.Text; end else begin ppLblGANr.Caption := ''; end; for Gi := 0 to ListBox.Items.Count - 1 do begin hPfad := Trim(ListBox.Items.Strings[Gi]); hSchluessel := QuotedStr('1'); ADOFotoInsert.Close; ADOFotoInsert.SQL.Clear; ADOFotoInsert.SQL.Add('INSERT INTO tblFOTO(schluessel, pfad)'); ADOFotoInsert.SQL.Add(' VALUES('+ hschluessel + ', ' + QuotedStr(hPfad) + ')'); ADOFotoInsert.ExecSQL; end; PfadSELECT; while not ADOFotoSELECT.Eof do begin ppImageDetail.Picture.LoadFromFile(Trim(ADOFotoSELECT.FieldByName('pfad').AsString)); ADOFotoSELECT.Next; end; end; procedure TfrmFotoanlage.mnuLoeschenClick(Sender: TObject); begin ListBox.Items.Delete(ListBox.ItemIndex); end; procedure TfrmFotoanlage.PfadSELECT; begin ADOFotoSELECT.Close; ADOFotoSELECT.SQL.Clear; ADOFotoSELECT.SQL.Add('SELECT * FROM tblFOTO'); ADOFotoSELECT.Open; end; procedure TfrmFotoanlage.FotoDELETE; begin ADOFotoDELETE.Close; ADOFotoDELETE.SQL.Clear; ADOFotoDELETE.SQL.Add('DELETE FROM tblFOTO'); ADOFotoDELETE.ExecSQL; end; procedure TfrmFotoanlage.FotoanlagePreviewFormClose(Sender: TObject); begin // Löscht Datenbank nach Druck FotoDELETE; end; procedure TfrmFotoanlage.pplblBildNrPrint(Sender: TObject); begin pplblBildNr.Caption := 'Bild-Nr. ' + IntToStr(Gi); end; Gruss AS |
Re: Reportbuilder Image Komponente
So wird dass natürlich nix :?
Du erzeugst im OnBeforePrint die Datenmenge neu und lädst jeden Datensatz in das aktuelle Bild. Am Ende dieser Routine ist wieder nur das letzte Bild im Image? Du musst nur einmal die Datenmenge erzeugen (vorm Report) und dann immer nur das aktuelle Bild laden... |
Re: Reportbuilder Image Komponente
Hallo,
musst entschuldigen weiss aber nicht genau was Du meinst. Ich brauche doch eine Schleife um alle Datensätze aus der Datenbank zu bekommen. Hättest Du vielleicht ein Beispiel, kann mir leider nichts genaueres unter Deiner Aussage vorstellen. Gruß AS |
Re: Reportbuilder Image Komponente
Nein, Du brauchst keine Schleife.
Du hast eine Datenbank mit einer beliebigen Anzahl von Datensätzen. Diese verbindest Du mit Deinem Report bzw. Deinem SubReport. Der Report wird bei der Preview bzw. beim Druck den Detail-Bereich automatisch solange wiederholen, wie Du Datensätze hast. Wenn Du DBText-Elemente rein plazierst, werden dann ja auch automatisch die Daten angezeigt. Du kannst ja mal statt dem Bild erst mal nur ein DBText auf den Detail-Bereich setzen und mit dem Feld von Deiner DB verbinden. Siehst Du dann alle in der Datenbank enthaltenen Sätze in der Preview? |
Re: Reportbuilder Image Komponente
Hallo,
wenn ich ein ppdbText Komponente in den Detailbereich setze dann sehe ich jeweils 5 verschiedene Datensätze. Gruß AS |
Re: Reportbuilder Image Komponente
Und sind diese 5 Datensätze auch in der Datenbank?
|
Re: Reportbuilder Image Komponente
ja sind sie. Aber ich verstehe immer noch nicht ganz wie Du mit dem Pfad die Komponente füllen kannst. Wenn ich nämlich der ppdbImage Komponente das Feld zuweise bringt Sie mir gar nichts.
|
Re: Reportbuilder Image Komponente
Ja aber genau hier kommt Deine Routine im OnBeforePrint ins Spiel. Mache doch mal folgendes:
Plaziere ein normales Text-Element rein und schreibe ins OnBeforePrint einfach:
Delphi-Quellcode:
Dann solltest Du den gleichen Effekt wie beim DBTExt haben, oder?
MyText.Caption := TableFeld.Value;
|
Re: Reportbuilder Image Komponente
jupp geht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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