mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-25 14:10:28 +01:00
1 line
12 KiB
Plaintext
1 line
12 KiB
Plaintext
|
<strong><span style="font-size:28px;">Smarty</span></strong><h1>Features</h1>Mit Hilfe der integrierten Template-Engine Smarty können einfach und flexibel zeichenbasierte Ausgabestrukturen von Datenformaten wie CSV, XML oder JSON an die Bedürfnisse des Kunden angepasst werden. Im Grunde muss lediglich das vorhandene Zielformat in eine Textdatei kopiert und mit den entsprechenden Variablen gefüllt werden. Diese können dabei noch umformatiert werden.<br />Belegdaten finden sich z.B. in der Smarty-Variable $beleg und werden in gewohnter PHP-Objektschreibweise angesprochen, z.B. $beleg->kundennummer oder $beleg->belegnr. Die Namensgebung gleicht der Benennung von Datenbank-Spaltennamen. Auch ein Zugriff auf komplexere Strukturen ist möglich (je nach Beleg). So kann im Lieferschein auf den zu Grunde liegenden Auftrag zugegriffen werden: $beleg->auftrag->lieferdatum.Verkürztes Beispiel mit fiktivem Format<p> {* Beleg-Stammdaten -------------------------------- *}<br />{$beleg->status}<br />{$beleg->datum|date_format:'%d.%m.%Y'}<br />{$beleg->belegnr}<br />{$beleg->kundennummer}<br />{$beleg->name}<br />{* Zugriff auf Daten des zugrundeliegenden Auftrages *}<br />{$beleg->auftrag->lieferdatum}<br />{* Weitere Felder entfernt *}</p><p>{* Positionen - Beginn ------------------------------ *}<br /> {* Schleife durchläuft alle verfügbaren Positionen *}<br /> {foreach from=$beleg->positionen key=keypos item=position}<br /> {$position->nummer}<br /> {$position->bezeichnung}<br /> {$position->beschreibung}<br /> {$position->menge}<br /> {$position->preis}<br /> {* Weitere Felder entfernt *} <br /> {/foreach}<br />{* Positionen - Ende -------------------------------- *}</p><h1>Datenmanipulation und Strukturen</h1><h2>Formatumwandlung</h2> Datumswerte können nach Anforderung ausgegeben werden:<ul><li>Int. Datumsformat (ISO 8601): {$beleg->datum|date_format:'%Y-%m-%d'}</li><li>Deutsches Datumsformat (DIN 5008): {$beleg->datum|date_format:'%d.%m.%Y'}</li></ul>Zahlen können nach Bedarf umformatiert werden. Hier am Beispiel der Spalte "Menge":<ul><li>Ausgabe ohne Nachkommastellen (als Ganzzahl): {$position->menge|string_format:'%d'}</li><li>Ausgabe mit einer Nachkommastelle: {$position->menge|string_format:'%.1f'}</li><li>Ausgabe mit zwei Nachkommastellen: {$position->menge|string_format:'%.2f'}</li></ul>Grundsätzlich können alle Formate ausgegeben werden, die durch die Funktion <a href="https://www.php.net/manual/de/function.sprintf.php" target="_blank">sprintf in PHP</a> verfügbar sind.<h2>Anrufen komplexerer Strukturen</h2><h3>ArtikelStammdaten aus Positionen anprechen</h3><p>Über die Belegpositionen können auch "darunterliegende" Strukturen abgerufen werden, die nicht direkt im Beleg gespeichert sind. Ein Beispiel dafür ist das Gewicht eines Artikels. Dieses kann über {$position->articledata->gewicht} abgerufen werden. So kann, z.B. durch eine Multiplikation mit der Menge der Position und dem Aufaddieren aller Gewichte, auch das Gesamtgewicht aller Artikel eines Beleges berechnet und übertragen werden.<br />Über $position->articledata können alle Spalten aus der Tabelle artikel angesprichen werden. Dabei sollte immmer beachtet werden ob Informationen aus den Artikel-Stammdaten evtl. in der Auftragsposition beereirts verändert worden sein könnten. Im Zweifelsfall sollte der Wert aus dem Beleg verwendet werden.</p><h1>Beispiele</h1> Im Folgenden haben wir Ihnen einige Beispiele zusammengefasst, die die Ausgabe verschiedener Lieferscheinformate in den Formaten EDI, CSV und XML ermöglichen. Bitte prüfen Sie bei eigener Anwendung die Spaltenbeschriftungen
|