AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge FastReport - Zuordnung Page zu DataSet-Record
Thema durchsuchen
Ansicht
Themen-Optionen

FastReport - Zuordnung Page zu DataSet-Record

Ein Thema von himitsu · begonnen am 25. Okt 2022 · letzter Beitrag vom 28. Okt 2022
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.061 Beiträge
 
Delphi 12 Athens
 
#1

FastReport - Zuordnung Page zu DataSet-Record

  Alt 25. Okt 2022, 13:53
Moin,

wie bekommt man es am Einfachsten hin, zu einem Record-Datensatz die gedruckte Seite zuzuordnen?
Also Record in frxReport1.Dataset zu den Seiten/Bildern vom TfrxBMPExport.

So lange alles perfekt läuft, erzeugt jeder Datensatz eine Seite. (PageNo = RecNo)
Gibt es aber Probleme, z.B. weil der QR-Code zu groß wird, dann sind es mehrere Seiten pro Datensatz.

Nach dem Prepare/Export müsste ich dann wohl irgendwie auf die Komponenten der Seiten zugreifen und mir von dort irgendwie einen Wert rausholen.
frxReport1.PreviewPages.Page[i] ???

Genau hab ich im HauptDataset ein Field und dessen Inhalt hätte ich gern, jeweils zu den Seiten des Exports.
* es gibt auf der Design-Page "ein" vollflächiges TfrxMasterData mit Memos, Barcode usw.
* und jetzt bräuchte ich nach dem Prepare/Export auf den Pages irgendwo einen gespeicherten Wert

* im Barcode. oder frxMemo.TagStr ließe sich über eine Variable <WorkSql."esl_barcode"> der Wert hinterlegen (diese eine Komponente müsste ich dann auch noch irgendwie identifizieren)
* einfacher wäre es wohl sowas direkt an der frxMasterData zu haben, aber dort gibt es kein TagStr, in Description werden Variablen nicht ersetzt und sonst gibt es nichts (im PropertyEditor zu finden)
* * aber eventuell kennt ja das MasterData auch schon intern (codeseitig) seine Zuordnung zu seinem DataSet (RecNo oder eine ID oder Kopie der Fields)


Im Grunde geht es jetzt darum, dass ich die Bilder vom Report zu ESLs zuordnen zu können und die Ausgabe dann an diese Devices zu übertragen.
https://www.delphipraxis.net/211367-...abels-esl.html
(im Moment nehme ich mir einfach die erste Seite und schicke sie an die ID aus dem ersten aktuellen Record)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (25. Okt 2022 um 17:02 Uhr)
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: FastReport - Zuordnung Page zu DataSet-Record

  Alt 25. Okt 2022, 18:20
Ich habe die Tage was vergleichbares gebraucht, bin "einfach" hergegangen und habe keinen Gesamtreport erstellt und als PDF Einzelseiten exportiert, sondern halt Einzelpdf (also für einen Datensatz einen Report, den exportieren,...). nicht schön, dauert lange, funktioniert aber. Über welche Menge von Bildern sprechen wir denn?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.061 Beiträge
 
Delphi 12 Athens
 
#3

AW: FastReport - Zuordnung Page zu DataSet-Record

  Alt 25. Okt 2022, 18:45
Das funktioniert aktuell schon, also je ein Gerät einzeln.

Aber wenn jetzt z.B. ein Artikel mehrere Lagerorte hat und man überall die Labels aktualisieren will, müssten mehrere Reports, bzw. mehrmals der gleiche Report (mit anderen Daten) gedruckt werden
und das ist schon bissl unpraktisch.

Nja, mehr als 4-5 werden es wohl nicht werden, außer jemand will mal ALLE Labels für ALLES aktualsieren (z.B. weil neues Design des Reports)

Wie gesagt, wenn alles super läuft, dann ist es einfach und ich könnte Seite mit RecNo gleichsetzen,
aber schon beim zweiten Test war es mit passiert, dass der QR-Code fehlplatziert war und somit einen Seitenumbruch erzeugte.
Gehe ich dann einfach mit PageNo=RecNo ran, würden ab dem zweiten Gerät die Inhalte nicht mehr stimmen.



Siehe Bild: https://www.delphipraxis.net/211367-...ml#post1511793
Falls es einen "falschen" Seitenumbruch gibt, und nur die erste Hälfte vom Label zu sehen wäre, wäre nicht so schlimm,
so lange es wenigstens der richtige (zugehörige) halbe Inhalt ist und bei den nachfolgenden Labels nicht das Falsche drauf stünde.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (25. Okt 2022 um 18:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.061 Beiträge
 
Delphi 12 Athens
 
#4

AW: FastReport - Zuordnung Page zu DataSet-Record

  Alt 25. Okt 2022, 19:00
Dass es möglich ist und der FR weiß was wo ist, das hatte ich heute schon erfahren/gesehn.
Mitbekommen, dass wir für einen Kunden mal was gebaut hatten. (von dem, der jetzt die neuen Labels designen soll)
Da kann man in der Druckvorschau auf Zahlen (frxMemos) klicken, im OnClick geht ein InputQuery auf, man kann andere Werte eingeben und die werden dann zurück in die Datenbank geschrieben.

Der bekommt im OnClick (FastScript) das Memo als Sender und das kennt alles Nötige (z.B. seine ID im .TagStr) .... ich muß jetzt nur noch rausbekommen, wie ich von außen da dran komm.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#5

AW: FastReport - Zuordnung Page zu DataSet-Record

  Alt 25. Okt 2022, 20:06
Dass es möglich ist und der FR weiß was wo ist, das hatte ich heute schon erfahren/gesehn.
Ja, weil jedes View im Report ein Objekt ist. Das Schema ist so (ohne Beachtung von FR Besonderheiten!):
Delphi-Quellcode:
procedure memWertPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean);
var
  sValue: String;
begin
  if Sender is TfrxMemoView then
  begin
    sValue := TfrxMemoView(Sender).Text;
    Modified := InputQuery('Bearbeiten', 'Wert ändern:', sValue);
    if Modified then
      TfrxMemoView(Sender).Text := sValue;
  end;
end;
Ich verstehe dein Problem nicht. Jedes Label soll auf eine Seite gedruckt werden. Ein Datensatz ist ein Label. Dann brichst du nach jedem Datensatz die Seite zwangsweise um.

Wenn es dir weiter hilft, kannst du meine Testanwendung verwenden und ein neues Projekt erstellen. Den Bericht designen und alle Daten für den Bericht als JSON Datei(en) hinterlegen und das gesamte Projektverzeichnis als Anhang hier einstellen. Dann kann ich es mir ansehen.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: FastReport - Zuordnung Page zu DataSet-Record

  Alt 25. Okt 2022, 21:16
klar, Einzeln drucken ist nicht so sexi - aber es erfüllt halt seinen Zweck. Vor allem wenn du das Resultat einzeln dann an das jeweilige Gerät übertragen musst.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.061 Beiträge
 
Delphi 12 Athens
 
#7

AW: FastReport - Zuordnung Page zu DataSet-Record

  Alt 25. Okt 2022, 21:44
Einzeln: Ich bekomme ja pro Seite ein Bitmap,
aber falls da was verrutscht, wäre es praktisch, wenn ich wüsste welche Seite/Bitmap zu welchem Datensatz gehört.

Aktuell verwende ich einfach blind die erste Seite (erstes exportiertes Bitmap) und sende sie an das im ersten aktuellen Datensatz verlinke Gerät.




Der Report/Designer ist in einem PixelModus:
frxReport.DotMatrixReport=True
frxDesignerForm.Units=2 (GridType=Pixel)
frxDesignerForm.Grid3=10 (GridSize in Points)
...
frxDesignerForm.ShowBandCaptions=0 -> das MasterData (alle Bänder) ohne Caption, damit die Anzeige im Designer nahezu wie im Ausdruck ist

nahezu = weil die Geräte haben nur 2 oder 3 Farben (hier Schwarz, Weiß und Rot) ... der Report und die Druckvorschau haben noch keine Farbglättung, bzw. viele Fonts auch ein Antialiasing, was später erst im exportierten Bitmap repariert wird, damit der Import nicht anfängt das häßlich zu rastern

Die Page ist z.B. 296 * 128 px groß (für den mittelgroßen kleinen ESL)

Im ReportDesigner gibt es einen TfrxMasterData, der über die ganze Seite positioniert ist.
Darin mehrere Memos, Barcode usw.
Im Prinzip gebe ich nur vor, dass es den einen MasterData gibt und wie die Seite eingerichtet ist (anhand des zugeordneten Gerätes) und dass es im DataSet eine bestimmte Spalte gebn muß, aber was da dann drin liegt, das entscheiden dann später die Designer.

Der FastReport erstellt im Prepare daraus je eine "Gruppe" pro Datensatz.

Also "normal" ein Record im frxReport.DataSet = ein MasterData + Memos usw. = eine Seite
und mehrere Records = gleichviele Seiten
ABER bei Problemen auch mal mehrere Seiten für einen Record, wenn das frxMasterData durch zu großen oder verschobenen Inhalt vergrößert wird. (den Überstand abschneiden, haben wir nicht hinbekommen)



Im Prinzip will ich jetzt einfach nur wissen welcher MasterData (oder welche Komponente ala Memo/Barcode) für einen der Datensätze auf welcher Seite liegt, bzw. auf welcher Seite das jeweilige MasterData beginnt.
Miniaturansicht angehängter Grafiken
beispielreport.png   beispielpreview.png   beispieloverflow.png  
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Okt 2022 um 13:59 Uhr)
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#8

AW: FastReport - Zuordnung Page zu DataSet-Record

  Alt 25. Okt 2022, 23:38
ABER bei Problemen auch mal mehrere Seiten für einen Record, wenn das frxMasterData durch zu großen oder verschobenen Inhalt vergrößert wird. (den Überstand abschneiden, haben wir nicht hinbekommen)
Das kommt nicht vor, wenn der Report richtig designt ist. Hier solltest du ansetzen. DotMatrixReport ist mit Vorsicht einzusetzen. Mit der Konstante fr01cm kannst du Pixel in Millimeter umrechnen. Ein Report mit 7,83 x 3,38 wird im BMP Export mit 296 x 128 px gespeichert.

Wie viele ESL Größen außer 296 x 128 px gibt es? Wird für jede Größe ein eigenes Label-Design hinterlegt, oder soll es nach bestimmten Regeln automatisch erfolgen?

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.061 Beiträge
 
Delphi 12 Athens
 
#9

AW: FastReport - Zuordnung Page zu DataSet-Record

  Alt 26. Okt 2022, 01:22
Wie gesagt, das Drucken selber ist nicht das Problem und die Größen der Seiten (exportieren Bitmaps) passen ... abgesehn von dem Splittfehlerchen.

Wir hatten nur beim Test paar Mal das Problem, dass ein Datensatz (MasterData) auf zwei Seiten zerteilt war.


Ja, bezüglich DotMatrixReport hatte ich vorhin auch in der Hilfe gelesen, dass es nicht genau das ist, was man wir/ich sich unter dem Namen vorstellte.
https://www.fast-report.com/document...ix_reports.htm

Das mit fr01cm war schon bekannt, daher schon lange Page.SetSizeAndDimensions(DMPAPER_USER, _Width / fr01cm, _Height / fr01cm);
Überhaupt erstmal rauszubekommen was intern das für Werte sind (bisher ja immer nur über den Designer eingestellt), die man da angeben muß und dann eben auch noch das fr01cm zu finden, was schon ein bissl Arbeit,
sowie wo man gewisse Optionen programmseitig findet, welche in den OptionsDialogen gemacht werden konnten.

Aber wir sind eh noch etwas am rumprobieren, bezüglich einiger Settings.

Ja, was ist "richtig designt ist" ... sooo winzig und Pixelgenau mußte es bisher nie sein ... viele Einstellungen ausprobiert, aber dieses Problem noch nicht verhindern können.



ShiftMode bei allen Komponenten ist auf smDontShift und die Margins und Gaps sind auf 0, damit selbst bei den winzigen "Rändern", um Alles, es keine automatischen Verschiebungen gibt, denn bei den pixel-kleinen Abständen überschneiden sich auch so schon die Komponenten.
MasterData.AllowSplit=False, ShiftEngine=seDontShift, StartNewPage=True (oder False ... egal, weil kein Unterschied)
irgendwo gab es noch was bezüglich Overlap (finde es grade nicht), was wir ausprobiert hatten.

Wenn ich absichtlich den QRCode unten bzw. rechts überstehen lasse, dann kommt das im Anhang bei raus.
Das ist eigentlich aktuell unser wichtigstes Problem, weswegen ich eben nicht einfach sagen kann PageNo=RecNo und weswegen ich aus dem Report auslesen wollte was wo liegt, damit es "sicher" richtig ist.




Ja, von einem Designer hatten wir schon den Wunsch, dass man einen Report designen und auf unterschedliche Größen anpassen kann,
aber aktuell ist es eh technisch nicht möglich. (bzw. keine Zeit da jetzt auch noch einiges umzubauen)
Theoretisch könnte man im ReportScript oder in einem Feld des DataSet auch das Format mitgeben, aber intern (unser Code) ist es etwas schwer dieses dann zum ReportDesigner, bzw. für die Nach-/Vorarbeiten beim Drucken durchzureichen.
- Vor/beim Prepare, bzw. vorm Öffnen des Designers, müsste dann entsprechend die Seiten-Größe gesetzt werden (falls sie nicht passt) und auch in den Nacharbeiten am Bitmap.
- Falls der exportierte ReportDruck nicht ganz pixelgenau ist, wird das eine Rundungspixel im Width/Height nochmal angepasst, denn für Barcodes kommt es bei diesen kleinen Größen auf jedes Pixel an, da nach Übergaben an die HerstellerAPI wird das Bild im Seitenverhältnis gestetcht, falls es nicht passt. Ja, wir hatten ausversehn dort in deren API anfangs mal ein Pixel in der Höhe vergessen, dann fehlten dadurch in der Breite auch 3 Pixel und schon war der Barcode nicht mehr lesbar ... schlimmer noch, teilweise wurden auch falsche Daten erkannt und die auch noch bei jedem Scan unterschiedlich.

Also aktuell: ein designeter Report = eine GeräteGröße (ist aber für den Anfang auch erstmal OK so)



Unser Probierpacket hat 15 Verschiedne (meistens 2 von Jedem, von den Großen 1 und manche auch mehr)
Der/die Hersteller haben wesentlich mehr im Angebot. (bis hin zu extrem Großen mit mehreren Metern Länge)
Effektiv werden es wohl 1 bis vielleicht 5 sein, denke ich mal, aber das ist im Prinzip egal. (hab da meine Verwaltungsdaten und Schnittstellen relativ unabhängig gestaltet, bis hin, dass für den Export auch andere API/Anbieter hinzugefügt werden können)

Das Template lässt sich aktuell über die API nicht vom Programm erstellen (der deutsche Anbieter/Cloud hier hat auch noch eine etwas ältere API, so dass zusätzlich auch noch Anderes fehlt, was der Chinese schon bietet).
Da ich somit eh die Templates erstellen mußte (das unsere Kunden machen zu lassen ... zu gefählich ... wie gesagt, ein Pixel hatten wir auch schonmal übersehn), hab ich passend auch alle Geräte unseres Probepacks ... mir die Definitionen (Name,Width,Height,Color,Rotation) rausgesucht und als Liste in unserem System.





Nochmal, wie gesagt, im Grunde brauch ich nur eine Zuordnung von Record zu Page. (irgendwie muß das ja gehen)
Damit wäre dann auch alles egal, wie Report nicht richtig designed, sowie sonstige jetzt noch unbekannte oder zukünftige Probleme.
Da womöglich zukünftig auch einige Kunden selber solche Reports erstellen werden, kann ich garnichts ausschließen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Okt 2022 um 01:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.061 Beiträge
 
Delphi 12 Athens
 
#10

AW: FastReport - Zuordnung Page zu DataSet-Record

  Alt 26. Okt 2022, 13:36
Nach langer Suche dort angekommen
https://www.fast-report.com/en/blog/...view-mode-vcl/
mir ganz unten den vesteckten Hinweis im Gauge1OnContentChanged zu Herzen genommen
{frxReport1.}PreviewPages.Page[i].AllObjects

und nun kämpfe ich mich da mal durch.

Auf den ersten Blick passt es genau, zur Report-Vorschau im Post #7 (abgesehn vom TfrxNullBand)
Code:
--- 0 -------------------------------------------
TfrxNullBand
TfrxMasterData MasterData1
TfrxMemoView Memo2
TfrxMemoView Memo3
TfrxBarCodeView BarCode1
TfrxMemoView Memo4
TfrxMemoView Memo5
--- 1 -------------------------------------------
TfrxMasterData MasterData1
TfrxBarcode2DView Barcode2D1
--- 2 -------------------------------------------
TfrxMasterData MasterData1
TfrxMemoView Memo2
TfrxMemoView Memo3
TfrxBarCodeView BarCode1
TfrxMemoView Memo4
TfrxMemoView Memo5
--- 3 -------------------------------------------
TfrxMasterData MasterData1
TfrxBarcode2DView Barcode2D1
Weiter rein, sagen sämtliche Indexwerte rein garnichts und das DataSet ist auch immer NIL.
Code:
--- 0 -------------------------------------------
[nil] [nil]
TfrxNullBand
TfrxMasterData MasterData1
   col 0
   row 0
   bnd 6
   idx 0
   grp 0
   pg0 False
   pg.idx 0
   pg.grp 0
   dsn WorkSql
   ds [nil] [nil]
   vds TfrxUserDataSet
TfrxMemoView Memo2
TfrxMemoView Memo3
TfrxBarCodeView BarCode1
TfrxMemoView Memo4
TfrxMemoView Memo5
--- 1 -------------------------------------------
[nil] [nil]
TfrxMasterData MasterData1
   col 0
   row 0
   bnd 6
   idx 0
   grp 0
   pg0 False
   pg.idx 0
   pg.grp 0
   dsn WorkSql
   ds [nil] [nil]
   vds TfrxUserDataSet
TfrxBarcode2DView Barcode2D1
--- 2 -------------------------------------------
[nil] [nil]
TfrxMasterData MasterData1
   col 0
   row 0
   bnd 6
   idx 0
   grp 0
   pg0 False
   pg.idx 0
   pg.grp 0
   dsn WorkSql
   ds [nil] [nil]
   vds TfrxUserDataSet
TfrxMemoView Memo2
TfrxMemoView Memo3
TfrxBarCodeView BarCode1
TfrxMemoView Memo4
TfrxMemoView Memo5
--- 3 -------------------------------------------
[nil] [nil]
TfrxMasterData MasterData1
   col 0
   row 0
   bnd 6
   idx 0
   grp 0
   pg0 False
   pg.idx 0
   pg.grp 0
   dsn WorkSql
   ds [nil] [nil]
   vds TfrxUserDataSet
TfrxBarcode2DView Barcode2D1
Delphi-Quellcode:
  for i := 0 to frxReport1.PreviewPages.Count - 1 do begin
    OutputDebugString(PChar('--- ' + IntToStr(i) + ' -------------------------------------------'));
    OutputDebugString(PChar(frxReport1.PreviewPages.Page[i].DataSet.SecureClassName + ' ' + frxReport1.PreviewPages.Page[i].DataSet.SecureName));
    for P in frxReport1.PreviewPages.Page[i].AllObjects do begin
      if TObject(P) is TComponent then
        OutputDebugString(PChar(TObject(P).SecureClassName + ' ' + TComponent(P).SecureName))
      else
        OutputDebugString(PChar(TObject(P).SecureClassName));

      if TObject(P) is TfrxMasterData then begin
        OutputDebugString(PChar(' col ' + IntToStr(TfrxMasterData(P).Columns)));
        OutputDebugString(PChar(' row ' + IntToStr(TfrxMasterData(P).RowCount)));
        OutputDebugString(PChar(' bnd ' + IntToStr(TfrxMasterData(P).BandNumber)));
        OutputDebugString(PChar(' idx ' + IntToStr(TfrxMasterData(P).IndexTag)));
        OutputDebugString(PChar(' grp ' + IntToStr(TfrxMasterData(P).GroupIndex)));
        OutputDebugString(PChar(' pg0 ' + BoolToStr(TfrxMasterData(P).Page = frxReport1.Pages[0], True)));
        OutputDebugString(PChar(' pg.idx ' + IntToStr(TfrxMasterData(P).Page.IndexTag)));
        OutputDebugString(PChar(' pg.grp ' + IntToStr(TfrxMasterData(P).Page.GroupIndex)));
        OutputDebugString(PChar(' dsn ' + TfrxMasterData(P).DataSetName));
        OutputDebugString(PChar(' ds ' + TfrxMasterData(P).DataSet.SecureClassName + ' ' + TfrxMasterData(P).DataSet.SecureName));
        OutputDebugString(PChar(' vds ' + TfrxMasterData(P).VirtualDataSet.SecureClassName + ' ' + TfrxMasterData(P).VirtualDataSet.SecureName));
      end;
    end;
  end;
Das "eine" Memo oder den QRCode könnte ich verwenden, aber welches soll ich da nehmen (kann ja nicht wissen, was auf dem Report drauf ist)
Das frxMasterData selber sagt bisher garnichts.
Im VirtualDataSet und der Page selber schau ich dann mal weiter.

Am Einfachsten mal den Hersteller fragen, warum TfrxMasterData kein TagStr hat und ob er es schnell einbauen kann ... dann wäre ich fertig.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Okt 2022 um 13:58 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:46 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