Moin ihr lieben,
hab da mal wieder was zusammengepfuscht und verstehe was nicht so ganz...
es bestehen Datensätze in der DB...
die ausgelesen und in einer PDF - Datei per GET angezeigt werden.
es soll in einer Tabelle eine Auflistung mit Preisen stattfinden.
dies ist so auch ok, zum schluss zusammen rechnen und fertig.
im folgenden Code (übrigends ist der nur für Interne zwecke)
lasse ich die Zahlen, die in der DB mit VACHAR gespeichert sind formatieren.
(größerer absatz im quellcode, hier aber nicht aktiv)
als Ergebnis erhalte ich folgendes (s. Bild o_format.png).
was auch soweit richtig ist.
allerdings zeigt er bei der Nettosumme einen punkt und kein komma,
soweit dachte ich mir ja gut fällt nicht so auf und nicht so wild
aber wenn man kleinere Beträge rechnet wie in Bild (o2_format.png)
wird dort die zweite nachkommastelle abgeschnitten und das ja blöd.
also im Quelltext für die Zelle
eingefügt
bzw die // entfernt.
hat auch funktioniert nur war das Ergebnis dann falsch ?!
Bild (m_format.png) ähm ja warum?
in Bild (m2_format.png)
stimmte nun die Formatierung aber Ergebnis auch nicht mehr so ganz richtig ^^
ich nehme an, dass er mit der Formatierung die als betag in der DB hinterlegten 01.22 nicht so rechnet sondern 1.22
kann das angehen?
und habt ihr ne Idee man das machen kann, dass richtig in der Formatierung und Rechnung ist ?
hoffe doch ich hab das soweit Verständlich beschrieben.
liebe grüße
hab da mal wieder was zusammengepfuscht und verstehe was nicht so ganz...
es bestehen Datensätze in der DB...
die ausgelesen und in einer PDF - Datei per GET angezeigt werden.
es soll in einer Tabelle eine Auflistung mit Preisen stattfinden.
dies ist so auch ok, zum schluss zusammen rechnen und fertig.
im folgenden Code (übrigends ist der nur für Interne zwecke)
lasse ich die Zahlen, die in der DB mit VACHAR gespeichert sind formatieren.
(größerer absatz im quellcode, hier aber nicht aktiv)
PHP:
<?php
//Pfad zum font Ordner definieren
define('FPDF_FONTPATH','font/');
require('fpdf.php');
//PDF_MC_Table einbinden
include_once('fpdf_tables.php');
//Neues PDF Anlegen
//Syntax FPDF(Seitenlayout,Maßeinheit,Papierformat)
//$pdf=new FPDF('P','mm','A4');
$pdf=new PDF_MC_Table('P', 'mm', 'A4');
//Neue Seite erzeugen
//Syntax: AddPage([Seitenlayout])
$pdf->AddPage();
require("config.php");
$id=$_GET['id'];
$result = mysql_query("SELECT * FROM angebot where id='".$_GET[id]."'");
while ($daten = mysql_fetch_array($result))
{
$id = $daten['id'];
$anrede = $daten['anrede'];
$name = $daten['name'];
$vorname = $daten['vorname'];
$straße = $daten['straße'];
$plz = $daten['plz'];
$wohnort = $daten['wohnort'];
$kundennummer = $daten['kundennummer'];
$bestellung = $daten['bestellung'];
$bearbeiter = $daten['bearbeiter'];
$email = $daten['email'];
}
$datum = date("d.m.Y", (time()));
//$pdf->Image($foto,146,19,36, 0);
$pdf->Image('logo.jpg',165,10,40, 0);
$pdf->Image('velux.jpg',120,19,36, 0);
$pdf->SetFont('Arial','U',8);
$pdf->Text(20,59,'Adresse-Überschrift');
$pdf->SetFont('Arial','',8);
$pdf->Text(20,63,'Name Empfänger');
$pdf->Text(20,67,'z.H.'.' '.$anrede.' '.$vorname.' '.$name);
$pdf->Text(20,71,$straße);
$pdf->Text(20,75,$plz.' '.$wohnort);
$pdf->SetFont('Arial','',8);
$pdf->Text(20,88,'Kunden- Nr.:'.' '.$kundennummer);
$pdf->Text(20,92,'Bearbeiter:'.' '.$bearbeiter);
$pdf->Text(20,96,'Email:'.' '.$email);
$pdf->Text(20,100,'Datum:'.' '.$datum);
$pdf->SetFont('Arial','B',8);
$pdf->Text(20,110,'Angebot Nr.'.' '.$id);
$pdf->SetFont('Arial','',9);
$pdf->Text(20,120,'Sehr geehrte/r'.' '.$anrede.' '.$name);
$pdf->Text(20,124,'TEXT.');
$pdf->Text(20,128,'TEXT.');
//Tabellenformatierung
$zellenbreite_pos="10"; // Zellenbreite Pos.
$zellenbreite_menge="15"; // Zellenbreite Menge
$zellenbreite_me="15"; // Zellenbreite ME
$zellenbreite_bez="70"; // Zellenbreite Bezeichnung
$zellenbreite_einzelp="20"; // Zellenbreite Einzelpreis
$zellenbreite_gesamtp="20"; // Zellenbreite Gesamtpreis
//Y-Position der Tabellenzeile setzen
//Syntax: setY(Y-Wert)
$pdf->setY(135); // Position der Höhe für Tabelle
$setxtiefe="20"; // Position der Tiefe für Tabelle
//Breite der einzelnen Spalten der Tabellezeile setzen.
//Die Anzahl der Werte die Übergeben werden,ist die Anzahl der Spalten die generiert werden
$pdf->SetWidths(array($zellenbreite_pos,$zellenbreite_menge,$zellenbreite_me,$zellenbreite_bez,$zellenbreite_einzelp,$zellenbreite_gesamtp)); // Länge der einzelenen Zellen
//Zeile erzeugen
//Syntax: Row(array $Spaltenwerte)
$pdf->SetFillColor(180,180,180); //geht nicht
$pdf->SetTextColor(000,000,000); // Textfarbe, Schwarz
$pdf->SetDrawColor(000,000,000); // Rahmenfarbe, Schwarz
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
$pdf->SetAligns(array('C','C','C','L','R','L'));
$pdf->Row(array('Pos.','Menge','ME','Bezeichnung','Einzelpreis','Gesamtpreis'));
//Zeilenumkbruch erzeugen
//Syntax: Ln(Höhe)
$pdf->Ln(1);
$pos=0; //startposition der Pos. in Tabelle
$pos++; //Pos in Tabelle immer +1
// Datensätze aus der Datenbank auslesen
$sql = mysql_query("SELECT * FROM angebot_matereal where verkn_bestellung=$bestellung");
while ($daten = mysql_fetch_array($sql))
{
$id = $daten['id'];
$menge = $daten['menge'];
$me = $daten['me'];
$bezeichnung = $daten['bezeichnung'];
$einzelpreis = $daten['einzelpreis'];
//$gesamtpreis = $daten['gesamtpreis'];
$gesamtpreis = $einzelpreis * $menge; // hier wird der einzelpreis bei Stückzahlen Mal genommen und als Gesamtpreis ausgegeben.
$einzelpreis = number_format($einzelpreis , 2 , ',' , '.'); // Rundet das ergebis der enbtsprechenden zahl (hier 2)
$gesamtpreis = number_format($gesamtpreis , 2 , ',' , '.'); // Rundet das ergebis der enbtsprechenden zahl (hier 2)
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
//Spaltenbreite setzen und Zeile erzeugen
$pdf->SetWidths(array($zellenbreite_pos,$zellenbreite_menge,$zellenbreite_me,$zellenbreite_bez,$zellenbreite_einzelp,$zellenbreite_gesamtp)); // Länge der einzelenen Zellen
$pdf->Row(array($pos++,
$menge,
$me,
$bezeichnung,
$einzelpreis.' '.'€',
$gesamtpreis.' '.'€'));
}
$pdf->Ln();
// ab hier wird zusammengerechnet
$query = "SELECT SUM(einzelpreis*menge) as einzelpreis, menge FROM angebot_matereal WHERE verkn_bestellung=$bestellung";
$gesamtwert = mysql_result(mysql_query($query), 0);
//$gesamtwert = number_format($gesamtwert , 2 , ',' , '.'); // Rundet das ergebis der enbtsprechenden zahl (hier 2)
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
$pdf->SetWidths(array($zellenbreite_pos,$zellenbreite_menge,$zellenbreite_me,$zellenbreite_bez,$zellenbreite_einzelp,$zellenbreite_gesamtp)); // Länge der einzelenen Zellen
$pdf->Row(array('-',
'',
'',
'Nettosumme',
'',
$gesamtwert.' '.'€'));
$steuer = $gesamtwert / 100 * 19; //berechnung UMST
$steuer = number_format($steuer , 2 , ',' , '.'); // Rundet das ergebis der enbtsprechenden zahl (hier 2)
$zuzahlen = $gesamtwert / 100 * 19 + $gesamtwert; //berechnung inkl. UMST
$zuzahlen = number_format($zuzahlen , 2 , ',' , '.'); // Rundet das ergebis der enbtsprechenden zahl (hier 2)
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
$pdf->SetWidths(array($zellenbreite_pos,$zellenbreite_menge,$zellenbreite_me,$zellenbreite_bez,$zellenbreite_einzelp,$zellenbreite_gesamtp)); // Länge der einzelenen Zellen
$pdf->Row(array('-','','','19 %',' ',$steuer.' '.'€'));
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
$pdf->Row(array('-',
'',
'',
'zzgl. Umsatzsteuer 19 %',
' ',
$zuzahlen.' '.'€'));
$pdf->Ln(5);
$pdf->SetFillColor(180,180,180); //geht nicht
$pdf->SetTextColor(000,000,000); // Textfarbe, Schwarz
$pdf->SetDrawColor(999,999,999); // Rahmenfarbe, Weiß
$pdf->SetAligns(array('L')); // Tabelle mit Text auf Links setzen
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
$pdf->SetWidths(array(150)); // Länge der einzelenen Zellen
$pdf->Row(array('Text')); // anklickbar machen aus DB!
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
$pdf->SetWidths(array(150)); // Länge der einzelenen Zellen
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
//$pdf->Row(array('Text'));
$pdf->Row(array('Text'));
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
$pdf->SetWidths(array(150)); // Länge der einzelenen Zellen
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
$pdf->Row(array('Text.'));
$pdf->Ln(5);
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
$pdf->Row(array('Mit freundlichem Gruß'));
$pdf->setX($setxtiefe); // Position der Tiefe für Tabelle
$pdf->SetWidths(array(150)); // Länge der einzelenen Zellen
$pdf->Row(array($bearbeiter));
//Ausgabe
//Syntax Output(Dateiname, Ausgabe Art)
//http://fpdf.de/funktionsreferenz/Output/
//$pdf->Output('multicell_table.pdf', 'D');
$pdf->Output();
als Ergebnis erhalte ich folgendes (s. Bild o_format.png).
was auch soweit richtig ist.
allerdings zeigt er bei der Nettosumme einen punkt und kein komma,
soweit dachte ich mir ja gut fällt nicht so auf und nicht so wild
aber wenn man kleinere Beträge rechnet wie in Bild (o2_format.png)
wird dort die zweite nachkommastelle abgeschnitten und das ja blöd.
also im Quelltext für die Zelle
PHP:
$gesamtwert = number_format($gesamtwert , 2 , ',' , '.');
bzw die // entfernt.
hat auch funktioniert nur war das Ergebnis dann falsch ?!
Bild (m_format.png) ähm ja warum?
in Bild (m2_format.png)
stimmte nun die Formatierung aber Ergebnis auch nicht mehr so ganz richtig ^^
ich nehme an, dass er mit der Formatierung die als betag in der DB hinterlegten 01.22 nicht so rechnet sondern 1.22
kann das angehen?
und habt ihr ne Idee man das machen kann, dass richtig in der Formatierung und Rechnung ist ?
hoffe doch ich hab das soweit Verständlich beschrieben.
liebe grüße