/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Udskrivning af JTable
Fra : Brian


Dato : 20-04-05 16:53

Hej,

Er det muligt direkte at udskrive indholdet af en JTable til en printer.
Hvordan kunne man ellers gøre det?

På forhånd tak

Brian



 
 
Filip Larsen (20-04-2005)
Kommentar
Fra : Filip Larsen


Dato : 20-04-05 17:20

Brian skrev

> Er det muligt direkte at udskrive indholdet af en JTable til en
printer.

Hvis du tænker på noget report-agtigt så kan jeg anbefale JFreeReport
http://www.jfree.org/jfreereport/.


Mvh,
--
Filip Larsen



Brian (20-04-2005)
Kommentar
Fra : Brian


Dato : 20-04-05 17:42

Hej igen,

Nej, det var måske mere om det var en smart måde at extende Printable også
udskrive tabellen.

Det er måske lige voldsomt at skulle have gang i hele den pakker for at
udskrive en enkelt pakke.

"Filip Larsen" <filip.larsen@nospam.dk> wrote in message
news:4266815a$0$67257$157c6196@dreader2.cybercity.dk...
> Brian skrev
>
>> Er det muligt direkte at udskrive indholdet af en JTable til en
> printer.
>
> Hvis du tænker på noget report-agtigt så kan jeg anbefale JFreeReport
> http://www.jfree.org/jfreereport/.
>
>
> Mvh,
> --
> Filip Larsen
>
>



Brian (14-06-2005)
Kommentar
Fra : Brian


Dato : 14-06-05 14:35

Hej,

Du har vel ikke et example på noget kode til udprintning af en JTable med
JFreeRaport?


På forhånd tak

Brian
"Filip Larsen" <filip.larsen@nospam.dk> wrote in message
news:4266815a$0$67257$157c6196@dreader2.cybercity.dk...
> Brian skrev
>
>> Er det muligt direkte at udskrive indholdet af en JTable til en
> printer.
>
> Hvis du tænker på noget report-agtigt så kan jeg anbefale JFreeReport
> http://www.jfree.org/jfreereport/.
>
>
> Mvh,
> --
> Filip Larsen
>
>



Filip Larsen (14-06-2005)
Kommentar
Fra : Filip Larsen


Dato : 14-06-05 19:20

Brian skrev

> Du har vel ikke et example på noget kode til udprintning af en JTable
med
> JFreeRaport?

Så vidt jeg husker distribueres JFreeReport med en hel del eksempler som
du måske kan benytte. Hvis ikke, så kan jeg kun anbefale, at du mere
detaljeret beskriver hvad du ønsker at opnå og hvori problemet ligger.


Mvh,
--
Filip Larsen



Brian (14-06-2005)
Kommentar
Fra : Brian


Dato : 14-06-05 21:11

Hej igen

Jamen jeg har en JTable med seks kolonner. Denne vil jeg gerne have
udskrevet så simplet som muligt. Men der er mange data, og det kommer til at
fylde flere sider.

Jeg har prøvet at køre nogle af de eksempler - men jeg synes at de er for
indviklede til at man få noget ud af det. Der bruger altid en masse
konfigurationsfiler og andre mærkelige ting. Det jeg ønsker mig er måske er
meget simplet eksempel som kan hjælpe mig igang.

Brian
"Filip Larsen" <filip.larsen@nospam.dk> wrote in message
news:42af202a$0$78280$157c6196@dreader1.cybercity.dk...
> Brian skrev
>
>> Du har vel ikke et example på noget kode til udprintning af en JTable
> med
>> JFreeRaport?
>
> Så vidt jeg husker distribueres JFreeReport med en hel del eksempler som
> du måske kan benytte. Hvis ikke, så kan jeg kun anbefale, at du mere
> detaljeret beskriver hvad du ønsker at opnå og hvori problemet ligger.
>
>
> Mvh,
> --
> Filip Larsen
>
>



Filip Larsen (15-06-2005)
Kommentar
Fra : Filip Larsen


Dato : 15-06-05 00:23

Brian skrev

> Jamen jeg har en JTable med seks kolonner. Denne vil jeg gerne have
> udskrevet så simplet som muligt. Men der er mange data, og det kommer
til at
> fylde flere sider.
>
> Jeg har prøvet at køre nogle af de eksempler - men jeg synes at de er
for
> indviklede til at man få noget ud af det. Der bruger altid en masse
> konfigurationsfiler og andre mærkelige ting. Det jeg ønsker mig er
måske er
> meget simplet eksempel som kan hjælpe mig igang.

Har du kigget på koden til org.jfree.report.demo.HelloWorld?


Mvh,
--
Filip Larsen



Brian (15-06-2005)
Kommentar
Fra : Brian


Dato : 15-06-05 09:42

Hej igen,

Hvilket Jar-fil skal jeg have i min class-path for at kunne køre HelloWorld
Exsamplet?
"Filip Larsen" <filip.larsen@nospam.dk> wrote in message
news:42af6740$0$78280$157c6196@dreader1.cybercity.dk...
> Brian skrev
>
>> Jamen jeg har en JTable med seks kolonner. Denne vil jeg gerne have
>> udskrevet så simplet som muligt. Men der er mange data, og det kommer
> til at
>> fylde flere sider.
>>
>> Jeg har prøvet at køre nogle af de eksempler - men jeg synes at de er
> for
>> indviklede til at man få noget ud af det. Der bruger altid en masse
>> konfigurationsfiler og andre mærkelige ting. Det jeg ønsker mig er
> måske er
>> meget simplet eksempel som kan hjælpe mig igang.
>
> Har du kigget på koden til org.jfree.report.demo.HelloWorld?
>
>
> Mvh,
> --
> Filip Larsen
>
>



Filip Larsen (15-06-2005)
Kommentar
Fra : Filip Larsen


Dato : 15-06-05 17:43

Brian skrev

> Hvilket Jar-fil skal jeg have i min class-path for at kunne køre
HelloWorld
> Exsamplet?

Ja, det er vist gået hen og blevet noget af et puslespil at finde ud af.
Med JFreeReport 0.8.5-5 får jeg følgende:

For at kunne kompilere HelloWorld.java:

jcommon-1.0.0-rc1.jar
jfreereport-core-0.8.5-5.jar
jfreereport-gui-base-0.8.5-5.jar

For at kunne køre HelloWorld.java uden NoClassDefFoundError desuden:

jfreereport-output-pageable-base-0.8.5-5-jar
jfreereport-output-pageable-graphics-0.8.5-5.jar
jfreereport-output-support-pagelayout-0.8.5-5.jar
jfreereport-output-meta-0.8.5-5.jar

Nu skulle du kunne preview'e uden fejl. For at få
eksporteringsmuligheder skal du så udvælge hvilke output moduler du vil
bruger. Med PDF er det fx:

itext-1.2.3.jar
jfreereport-gui-pdf-0.8.5-5.jar
jfreereport-output-pageable-pdf-0.8.5-5.jar
jfreereport-output-support-itext-0.8.5-5.jar

og tilsvarende for andre output medier.


Mvh,
--
Filip Larsen



Brian (16-06-2005)
Kommentar
Fra : Brian


Dato : 16-06-05 09:06

Hej,

Jeg har faktisk få "hul" igennem, og kan udskrive mine data til en pdf - men
jeg får en fejl, som jeg ikke helt kan finde ud af hvorfor jeg får:

INFO: System.out log target started ... previous log messages could have
been ignored.
INFO: Pixie library found. WMF file support will be available.
INFO: Registering fonts for the iText library; using a cached font
registry.
INFO: Font C:\WINDOWS\Fonts\LucidaSansRegular.ttf cannot be used as
embedded font due to licensing restrictions.
INFO: Font C:\WINDOWS\Fonts\LucidaTypewriterBold.ttf cannot be used as
embedded font due to licensing restrictions.
INFO: Font C:\WINDOWS\Fonts\LucidaTypewriterBoldOblique.ttf cannot be used
as embedded font due to licensing restrictions.
INFO: Font C:\WINDOWS\Fonts\LucidaTypewriterOblique.ttf cannot be used as
embedded font due to licensing restrictions.
INFO: Font C:\WINDOWS\Fonts\LucidaTypewriterRegular.ttf cannot be used as
embedded font due to licensing restrictions.
INFO: Font C:\Program
Files\Java\jdk1.5.0_01\jre\lib\fonts\LucidaBrightDemiBold.ttf cannot be
used as embedded font due to licensing restrictions.
INFO: Font C:\Program
Files\Java\jdk1.5.0_01\jre\lib\fonts\LucidaBrightDemiItalic.ttf cannot be
used as embedded font due to licensing restrictions.
INFO: Font C:\Program
Files\Java\jdk1.5.0_01\jre\lib\fonts\LucidaBrightItalic.ttf cannot be used
as embedded font due to licensing restrictions.
INFO: Font C:\Program
Files\Java\jdk1.5.0_01\jre\lib\fonts\LucidaBrightRegular.ttf cannot be used
as embedded font due to licensing restrictions.
INFO: Font C:\Program
Files\Java\jdk1.5.0_01\jre\lib\fonts\LucidaSansDemiBold.ttf cannot be used
as embedded font due to licensing restrictions.
INFO: Font C:\Program
Files\Java\jdk1.5.0_01\jre\lib\fonts\LucidaSansRegular.ttf cannot be used
as embedded font due to licensing restrictions.
INFO: Completed font registration.
INFO: setReport(..): started pagination ...
WARN: Invalid column name specified on query: Brian
WARN: Invalid column name specified on query: Brian
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
WARN: Invalid column name specified on query: asdf
etc......

Kode:
/**************************
package CVR.Print;
import CVR.Lang.ILanguage;
import CVR.IO.Sheet;

import java.util.Vector;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.OutputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.File;
import javax.swing.table.TableModel;
import javax.swing.*;

import org.jfree.report.*;
import org.jfree.report.style.FontDefinition;
import org.jfree.report.style.ElementStyleSheet;
import org.jfree.report.elementfactory.TextFieldElementFactory;
import org.jfree.report.elementfactory.LabelElementFactory;
import org.jfree.report.elementfactory.StaticShapeElementFactory;
import org.jfree.report.elementfactory.DateFieldElementFactory;
import org.jfree.report.modules.gui.base.PreviewDialog;
import org.jfree.report.util.Log;
import org.jfree.ui.FloatDimension;
import org.jfree.report.modules.gui.pdf.PDFSaveDialog;
import org.jfree.report.modules.output.pageable.pdf.PDFOutputTarget;
import
org.jfree.report.modules.output.pageable.base.PageableReportProcessor;

public class PrinttoPdf extends Printer implements WindowListener
{
private ILanguage language;
private Vector data;

private TableModel createData ()
{
return Sheet.instance().getModel();
}

private PageHeader createPageHeader ()
{
final PageHeader header = new PageHeader();
header.getStyle().setStyleProperty(ElementStyleSheet.MINIMUMSIZE,
new FloatDimension(0, 18));
header.getStyle().setFontDefinitionProperty(new
FontDefinition("Serif", 10));
header.setDisplayOnFirstPage(true);
header.setDisplayOnLastPage(false);

// is by default true, but it is defined in the xml template, so I
add it here too.
header.addElement(StaticShapeElementFactory.createRectangleShapeElement(null,
Color.decode("#AFAFAF"), null,new Rectangle2D.Float(0, 0, -100, -100),false,
true));
final DateFieldElementFactory factory = new
DateFieldElementFactory();
factory.setName("date1");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(-100, 14));
factory.setHorizontalAlignment(ElementAlignment.RIGHT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("<null>");
factory.setFormatString("d-MMM-yyyy");
factory.setFieldname("Temp");
header.addElement(factory.createElement());
header.addElement(StaticShapeElementFactory.createHorizontalLine("line1",
Color.decode("#CFCFCF"),new BasicStroke(2), 16));
return header;
}

private PageFooter createPageFooter ()
{
final PageFooter pageFooter = new PageFooter();
pageFooter.getStyle().setStyleProperty(ElementStyleSheet.MINIMUMSIZE,
new FloatDimension(0, 30));
pageFooter.getStyle().setFontDefinitionProperty(new
FontDefinition("Dialog", 10));
pageFooter.addElement(StaticShapeElementFactory.createRectangleShapeElement(null,
Color.black, null, new Rectangle2D.Float(0, 0, -100, -100), true, false));
final LabelElementFactory factory = new LabelElementFactory();
factory.setName("Label 2");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(-100, 0));
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.TOP);
factory.setText("Some Text for the page footer");
factory.setDynamicHeight(Boolean.TRUE);
pageFooter.addElement(factory.createElement());
return pageFooter;
}

private ReportFooter createReportFooter ()
{
final ReportFooter footer = new ReportFooter();
footer.getStyle().setStyleProperty(ElementStyleSheet.MINIMUMSIZE,
new FloatDimension(0, 48));
footer.getStyle().setFontDefinitionProperty(new
FontDefinition("Serif", 16, true, false, false, false));
final LabelElementFactory factory = new LabelElementFactory();
factory.setName("Label 2");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(-100, 24));
factory.setHorizontalAlignment(ElementAlignment.CENTER);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setText("*** END OF REPORT ***");
footer.addElement(factory.createElement());
return footer;
}

private ReportHeader createReportHeader ()
{
final ReportHeader header = new ReportHeader();
header.getStyle().setStyleProperty(ElementStyleSheet.MINIMUMSIZE,
new FloatDimension(0, 48));
header.getStyle().setFontDefinitionProperty(new
FontDefinition("Serif", 20, true, false, false, false));
final LabelElementFactory factory = new LabelElementFactory();
factory.setName("Label 1");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(-100, 24));
factory.setHorizontalAlignment(ElementAlignment.CENTER);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setText("LIST OF CONTINENTS BY COUNTRY");
header.addElement(factory.createElement());
return header;
}

private JFreeReport createReportDefinition ()
{
JFreeReportBoot.getInstance().start();
final JFreeReport report = new JFreeReport();
report.setName(getDescription());
TextFieldElementFactory factory = new TextFieldElementFactory();
factory.setName("T1");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(150, 12));
factory.setColor(Color.black);
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("-");
factory.setFieldname("asdf");
report.getItemBand().addElement(factory.createElement());

factory = new TextFieldElementFactory();
factory.setName("T2");
factory.setAbsolutePosition(new Point2D.Float(125, 0));
factory.setMinimumSize(new FloatDimension(150, 12));
factory.setColor(Color.black);
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("-");
factory.setFieldname("Adress");
report.getItemBand().addElement(factory.createElement());

factory = new TextFieldElementFactory();
factory.setName("T3");
factory.setAbsolutePosition(new Point2D.Float(225, 0));
factory.setMinimumSize(new FloatDimension(150, 12));
factory.setColor(Color.black);
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("-");
factory.setFieldname("Zip-code");
report.getItemBand().addElement(factory.createElement());

factory = new TextFieldElementFactory();
factory.setName("T4");
factory.setAbsolutePosition(new Point2D.Float(275, 0));
factory.setMinimumSize(new FloatDimension(150, 12));
factory.setColor(Color.black);
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("-");
factory.setFieldname("Postdistrict");
report.getItemBand().addElement(factory.createElement());

factory = new TextFieldElementFactory();
factory.setName("T4");
factory.setAbsolutePosition(new Point2D.Float(350, 0));
factory.setMinimumSize(new FloatDimension(150, 12));
factory.setColor(Color.black);
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("-");
factory.setFieldname("Phone-number");
report.getItemBand().addElement(factory.createElement());

factory = new TextFieldElementFactory();
factory.setName("T4");
factory.setAbsolutePosition(new Point2D.Float(400, 0));
factory.setMinimumSize(new FloatDimension(150, 12));
factory.setColor(Color.black);
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("-");
factory.setFieldname("CVR-number");
report.getItemBand().addElement(factory.createElement());
return report;
}

public String getDescription ()
{
return "Preview of report";
}

public PrinttoPdf(ILanguage language)
{
this.language = language;
}

public void Print()
{
final TableModel data = createData();
final JFreeReport report = createReportDefinition();
report.setData(data);
report.setReportFooter(this.createReportFooter());
report.setReportHeader(this.createReportHeader());
report.setPageFooter(this.createPageFooter());
report.setPageHeader(this.createPageHeader());
try
{
final PreviewDialog preview = new PreviewDialog(report);
preview.addWindowListener(this);
preview.pack();
preview.setVisible(true);
}
catch (ReportProcessingException e)
{
Log.error("Failed to generate report ", e);
}
savePDF(report, "Brille.pdf");

}

public boolean savePDF (final JFreeReport report, final String fileName)
{
OutputStream out = null;
try
{
out = new BufferedOutputStream(new FileOutputStream(new
File(fileName)));
final PDFOutputTarget target = new PDFOutputTarget(out);
target.configure(report.getReportConfiguration());
target.open();

final PageableReportProcessor proc = new
PageableReportProcessor(report);
proc.setOutputTarget(target);
proc.processReport();
target.close();
return true;
}
catch (Exception e)
{
System.err.println("Writing PDF failed.");
e.printStackTrace();
return false;
}
finally
{
try
{
if (out != null)
{
out.close();
}
}
catch (Exception e)
{
System.err.println("Saving PDF failed.");
e.printStackTrace();
}
}
}

public void getdata(Vector vector)
{
data = vector;
}

public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void windowOpened(WindowEvent e) {}
public void windowClosing (WindowEvent e) {}
}
**************************/

Har du nogen forklaring på denne Warming?

Er det muligt at gøre sådan at al den debug information ikke bliver
udskrevet?

og sidst men ikke mindst: Ved du hvordan man gøre hver anden "række" i
rapporten hvid, og hver anden eksempelvis grå?


På forhånd tak

Brian



Brian (17-06-2005)
Kommentar
Fra : Brian


Dato : 17-06-05 14:37

Hej igen,

Så har jeg fået løst mine problemer - og derfor er den foregående mail ikke
aktuel længere.

Men jeg har lige et par spørgsmål som jeg håber jeg kan få hjælp til:

Hvordan bruger man Itemband til at farve hver anden linie grå? Jeg har leget
lidt med Itemband - men alle linierne bliver i samme farve!

Er det muligt at slippe for de debud informationer som der udskrives når man
laver en rapport?

På forhånd tak

Brian



Brian (20-06-2005)
Kommentar
Fra : Brian


Dato : 20-06-05 22:32

Hej igen,

Kan nogle fortælle mig hvad Jar-filen gnujaxp.jar indeholder? Er den vigtig?
Den kolidere nemlig på en eller anden mærkelig måde med min applikation, og
jeg håber derfor ikke at jeg får behov for at bruge den.

Brian



Martin Husted Hartvi~ (21-06-2005)
Kommentar
Fra : Martin Husted Hartvi~


Dato : 21-06-05 09:39



http://www.gnu.org/software/classpathx/jaxp/jaxp.html




On Mon, 20 Jun 2005 23:32:11 +0200, Brian <theonlyone12234@hotmail.com>
wrote:

> Hej igen,
>
> Kan nogle fortælle mig hvad Jar-filen gnujaxp.jar indeholder? Er den
> vigtig?
> Den kolidere nemlig på en eller anden mærkelig måde med min applikation,
> og
> jeg håber derfor ikke at jeg får behov for at bruge den.
>
> Brian
>
>


Brian (20-04-2005)
Kommentar
Fra : Brian


Dato : 20-04-05 17:52

Hvordan indsætter man et side skift i en klasser der extender eller
implementerinter Printable?
"Brian" <theonlyone43221@hotmail.com> wrote in message
news:42667c0e$0$22694$ba624c82@nntp04.dk.telia.net...
> Hej,
>
> Er det muligt direkte at udskrive indholdet af en JTable til en printer.
> Hvordan kunne man ellers gøre det?
>
> På forhånd tak
>
> Brian
>



Martin Rytter (21-04-2005)
Kommentar
Fra : Martin Rytter


Dato : 21-04-05 11:20

Hej

Brian wrote:
> Er det muligt direkte at udskrive indholdet af en JTable til en printer.
> Hvordan kunne man ellers gøre det?

Jeg kan anbefale at kikke på
http://java.sun.com/products/java-media/2D/forDevelopers/sdk12print.html
hvis du ønsker at lave en så grundliggende implementering som muligt.
Som allerede nævnt er et decideret rapport api et alternativ. Men nu har
du da noget at vælge imellem ;)

Jeg er tidligere lykkedes med at tage udgangspunkt i ovennævnte
tutorial, men du skal nok være forberedt på at eksperimentere lidt hvis
du har nogle særlige krav.

Husk at der ikke kun findes java.awt.print.* men også javax.print.*.

God fornøjelse.

--
Martin Rytter, martin@ryt.dk, Odense, Denmark.

Thomas Thorndahl (22-04-2005)
Kommentar
Fra : Thomas Thorndahl


Dato : 22-04-05 12:39

Hej Brian

"Brian" <theonlyone43221@hotmail.com> skrev i en meddelelse
news:42667c0e$0$22694$ba624c82@nntp04.dk.telia.net...
> Er det muligt direkte at udskrive indholdet af en JTable til en printer.
> Hvordan kunne man ellers gøre det?

Hvis du bruger Tiger (JDK1.5) der er kommet et par print()-methoder på
JTable samt en getPrintable(...). Se detaljer i API-DOC.

Mvh
Thomas Thorndahl



Søg
Reklame
Statistik
Spørgsmål : 177452
Tips : 31962
Nyheder : 719565
Indlæg : 6408137
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste