Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Deutscher Perl Workshop 2014 PORF Practice

Ähnliche Präsentationen


Präsentation zum Thema: "Deutscher Perl Workshop 2014 PORF Practice"—  Präsentation transkript:

1 Deutscher Perl Workshop 2014 PORF Practice
Einfache Erzeugung von verschiedenen Report-Formaten + Designs a la Perl Ralf Peine Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

2 Übersicht Die Aufgabe Warum ein neues Report Framework ? Einen Report in 4+n Statements erstellen Was bereits fertig ist Beispiele zeigen / laufen lassen Was noch angedacht ist Bevor ich Factories in der SW-Entwicklung vorstelle, möchte ich zunächst in eine reale Fabrik schauen. Denn hier sind die für die SW neuen Komponenten schon länger im Einsatz. Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

3 Die Aufgabe DB Application Tabellen (Perl) Report %hash @array $object
Wird durch PORF erstellt und vorkonfiguriert Verarbeitung von Datensatz Übergabe als ... WriteAll() %hash DB Application (Perl) @array Tabellen Report Nur Ausgabe $object Datei o. $string $other Liest, verarbeitet und erzeugt Daten irgendwie HTML weitere beliebige Formate Text Zur Laufzeit dynamisch erweiterbar CSV Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

4 Gibt es das noch nicht? Ralf Peine Deutscher Perl Workshop 2014
PORF (Perl Open Report Framework)

5 Report Framework? Es gibt mehr als 5000 Treffer für Report in Packages auf CPAN Text::Report Data::Report Nicht mehr gepflegt Keine Informationen über die Performance Verwendet Plugins mit Klassen → langsam ? Nur Text als Ausgabe Einziges Framework Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

6 Wichtige, aber fehlende Features
Leicht zu benutzen, fertig „von der Stange“ Möglichkeit, alles anzupassen (Wert / sub {…}) Verschiedene Reports für dasselbe Format in einer Applikation verwenden Erzeugung und Konfiguration von beliebigen zusätzlichen Formaten zu Laufzeit „Massen-Daten“ kompatibel (Performance/Speicherplatz) bis zu 1 Million Zeilen pro Sekunde in eine Datei schreiben Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

7 Einen Report in 4+n Statements schreiben!
„use“ zählt nicht use Report::Porf::Framework; my $report_framework = Report::Porf::Framework::Get(); my $report = $report_framework- >CreateReport($format); $report->ConfigureColumn (-header => 'Vorname', -value_named => 'Prename' ); $report->ConfCol (-h => 'Nachname', -val_nam => 'Surname'); $report->CC(-h => 'Alter', -vn => 'Age'); $report->ConfigureComplete(); $out_file_name); 1 2 n = 1 n = 2 n = 3 3 4 Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

8 Wem die Kurzform noch zu lang ist: Ultrakurzform für Perl Profis
Danke, getty Header Value Accessor $report->cc(Vorname => 'Prename'); # $hash{Prename} $report->cc(Nachname => ); # $array[1] $report->cc(Zeit => 'Time()' ); # $object.Time() $report->cc('Alter(Monate)' => '12 * $_[0]->{Age}' ); # sub { } $report->cc('Alter(Monate)' => sub { return 12 * $_[0]->{Age}; } ); $_[0] Keyword für freien Zugriff Wird umgewandelt in diese sub Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

9 @getty: Es geht noch viel kürzer!!
Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

10 Array von Hashes => @data_list PORF als Einzeiler !!
use Report::Porf::Framework; Report::Porf::Framework::auto_report( 'Table::Simple' => html => => file_name); => file_name); my $report_string = Report::Porf::Framework:: Defaults Defaults, im Framework einstellbar Ausgabe auf Terminal In Datei in String Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

11 Ergebnisse im Format „Text“
*============+============+============* | Vorname | Nachname | Alter | * * | Vorname 1 | Name | | | Vorname 2 | Name | | | Vorname 3 | Name | | | Vorname 4 | Name | | | Vorname 5 | Name | | | Vorname 6 | Name | | | Vorname 7 | Name | | | Vorname 8 | Name | | | Vorname 9 | Name | | | Vorname 10 | Name | | | Vorname 11 | Name | | | Vorname 12 | Name | | | Vorname 13 | Name | |*============+============+============* Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

12 Ergebnisse im Format „HTML“
Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

13 Aktuell implementierte Optionen $report->ConfigureColumn() / ConfCol() / CC()
Layout Mögliche Werte -header h constant: Text -align a constant: (left|center|right) (l | c | r) -width w constant: integer -format f constant: string for sprintf -color c constant / sub {…} Die sub {…} macht bedingtes Einfärben einfach möglich. Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

14 Aktuell implementierte Optionen (2) $report->ConfigureColumn() / ConfCol() / CC()
Daten Zugriff Mögliche Werte Typ -value_named -val_nam -vn constant / sub {…} %hash -value_indexed -val_idx -vi constant / sub {…} @array -value_object -val_obj -vo constant / sub {…} $object -value v constant / sub {…} any Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

15 Mehr Beispiele, HTML Datenspalten von Report dynamisch erzeugt
durch sub {...} Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

16 Mehr Beispiele, HTML (2) Ralf Peine Deutscher Perl Workshop 2014
PORF (Perl Open Report Framework)

17 Wie ist das implementiert ?
Mehr Beispiele, HTML (3) Wie ist das implementiert ? $report->ConfigureColumn (-header => 'Dices', -a => 'C', -value => sub { return $dices_to_image->($_[0]->{'Dices'}); } ) if $report->IsFormat('HTML'); Spezielle „-value“ Option verwenden Nur für HTML Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

18 Mehr Beispiele, HTML (4) Anonyme „sub“
erzeugen my $dices_to_image = sub { my $throws = shift; # Dice throw values my $result = ''; my $number_html_code; foreach my $number (split (//, $throws)) { if ($number =~ /^\d$/) { $number_html_code = "<img src='dice_$number.jpg'/>" } else { $number_html_code = "?"; } $result .= $number_html_code; } return $result; }; Parameter der Sub In einzelne Zeichen zerlegen Ziffern durch Bild ersetzen Alles Andere als „?“ darstellen Rückgabe Speichern Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

19 Beispiele - zeigen - laufen lassen
Praxis Beispiele - zeigen - laufen lassen Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

20 Was noch angedacht ist Mehr als eine Zeile für ein Daten Objekt:
| <Vorname> | <Nachname> | <Alter> | <m/w> | <PLZ> | | <Stadt / Ort> | <Straße> | <Hausnummer> | Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

21 Was noch angedacht ist (2)
Verschiedene Daten Objekt Typen mit verschiedenen Spalten in derselben Tabelle | Person | <Vorname> | <Nachname> | <Alter> | <m/w> | | Firma | <Name> | <Typ> | | Adresse | <Straße> | <Nr> | | <PLZ> | <Stadt / Ort> | Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

22 Was noch angedacht ist (3)
Zellen über mehrere Spalten / Zeilen Visitenkarten mit Foto | | <Vorname> | | Picture | <Nachname> | | | <Alter> | <m/w> | | /Foto | Phone | <Phone> | | | | < > | | | Web | <web> | | | Xing | <Xing> | | | Twitter | <Twitter> | | Adresse | <Straße> | <Nr> | | <PLZ> | <Stadt / Ort> | Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

23 Was noch angedacht ist (4)
Seitenbasierte Layouts mit Kopf- und Fuß-Zeilen Formulare Die komplette Seite wird durch Zellen, Kopfzeilen und Fußzeilen definiert. Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)

24 Perl Open Report Framework Übersicht für Benutzer des Frameworks
Danke ! Das war PORF Praxis Perl Open Report Framework Übersicht für Benutzer des Frameworks Ralf Peine Ralf Peine Deutscher Perl Workshop 2014 PORF (Perl Open Report Framework)


Herunterladen ppt "Deutscher Perl Workshop 2014 PORF Practice"

Ähnliche Präsentationen


Google-Anzeigen