Page tree
Skip to end of metadata
Go to start of metadata

Klasse addon_report steht ab CRM Versionen 4.10 bzw. 5.0 zur Verfügung. Auswertungen haben im TecArt System einen speziellen Platz und folgen bestimmten Einschränkungen bezüglich Layout und Ausgabe in einer Liste. Im Eingabeformluar des Add-ons brauchen dabei lediglich spezifizierte Inhalte ausgegeben werden, die für die Zusammenstellung der Auswertung nötig sind. Eingabefelder wie Start- und Endedatum der Auswertung, der Auslöse-Button zur Absendung der Daten sowie Buttons für den Export der Auswertung in MS Word & Excel Dateien und Button für die Druckvorschau werden bereits in einer generischen Kopf- und Fußzeile für ein Auswertungs-Add-on bereitgestellt.


1. Abstrakte Methoden

Im Gegensatz zu anderen Addon-Komponenten sind die Auswertungen eine Mischung aus View und Grid und beinhalten Methoden aus beiden Komponenten, doch nicht in vollem Umfang ihrer Funktionalität. Bei Auswahl einer Add-on-Auswertung aus der Auflistung, wird zunächst die View-Komponente in Form eines XML-Snipplets geladen, das um unveränderliche Kopf- und Fußzeilen automatisch erweitert wird.

Nach Klick auf die Schaltfläche "Auswerten", wird die Grid-Komponente angesprochen, von der aus die Add-on-spezifischen Eingabedaten zusammen mit den generisch zur Verfügung gestellten Daten an das Request-Array des Add-on übergeben und dort in der get_data() Methode ausgewertet werden können.

1.1. get_actions

Syntax:

array get_actions()

Beschreibung:

Diese Funktion erlaubt es, Aktionen zu definieren, die im Auswertungsformular genutzt werden.

Beispiel:

function get_actions()
{
  return array(
    'simpleOnLoadAction'     => addon_util_action::get_on_load_action(
      'Simple Message Box on load',
      'warning',
      'Message Box Title'
    ),
    'meineDoppelklickAktion' => addon_util_action::get_ajax_action(
      'ajax_class',
      array('event' => '{event}')
    )
  );
}


1.2. get_on_load_actions

Syntax

array get_on_load_actions()

Beschreibung:

Diese Funktion liefert eine als eindimensionales Array definierte Sequenz der nach vollständigem Laden auszuführenden util_action. Die Aktionen werden zuvor in get_actions() definiert.

Diese Methode ist nicht abstrakt, somit optional und muss daher nicht zwingend im Add-on deklariert werden.

Beispiel:

    public function get_on_load_actions()
    {
        return array(
            'simpleOnLoadAction',
            // ... more actions
        );
    }

1.3. get_dblclick_action

Syntax:

array get_dblclick_action()

Beschreibung:

Diese Funktion muss ein Array, bestehend aus Schlüsseln der Aktionen, die in get_actions beschrieben wurden, zurückgeben.

Beispiel:

function get_dblclick_action()
{
	return array('meineDoppelklickAktion');
}  


1.4. get_data

Syntax:

array get_data()

Beschreibung:

Diese Funktion muss die Daten für das Grid bereitstellen. Die Daten werden in verschachtelten Arrays zweiten Grades angelegt. Das äußere Array enthält jeweils die gesamten Datensätze, während die inneren Arrays die Werte der einzelnen Datensätze enthalten. Die Keys der Werte müssen den Spalten entsprechend zugeordnet sein. Wichtig: Die Schlüssel der Arrays dürfen nicht den Wert 0 (Zahlenwert Null) enthalten. 

Diese Funktion ist gleichzeitig der Einsprungspunkt für Add-on-Entwickler, um von dort aus die eigentliche Auswertung mit den übertragenen Formulardaten zu beginnen und im Abschluss das Rückgabe-Array mit den Grid-Daten zusammenzustellen. Die automatisch zur Verfügung gestellten Formulardaten sind unter folgenden Array-Schlüsseln ansprechbar:

  • int date_start Unix timestamp
  • int date_stop Unix timestamp

Beispiel:

function get_data()
{
  $startdate = date('d.m.Y', $this->request['date_start']);
  $stopdate  = date('d.m.Y', $this->request['date_stop']);
	
  return array(
    1 => array('name' => 'Bernhard', 'age' => '22', 'contact' => 35),
    2 => array('name' => 'Beatrice', 'age' => '42', 'contact' => 3632),
    3 => array('name' => 'Frauken' , 'age' => '32', 'contact' => 982690),
    4 => array('name' => 'Gustav'  , 'age' => '55', 'contact' => '353:56'),
  );
}

1.5. get_row_styles

Syntax:

array get_row_styles()

Beschreibung:

Muss ein Array bestehend aus Style-Klasse zurückgeben. Diese Klassen sind als Konstanten in der Klasse addon_utils definiert und können nach belieben kombiniert werden. Die folgenden Klassen stehen zur Verfügung:

  • STYLE_FONTCOLOR_NAVY

  • STYLE_FONTCOLOR_BLUE

  • STYLE_FONTCOLOR_AQUA

  • STYLE_FONTCOLOR_TEAL

  • STYLE_FONTCOLOR_OLIVE

  • STYLE_FONTCOLOR_GREEN

  • STYLE_FONTCOLOR_LIME

  • STYLE_FONTCOLOR_YELLOW

  • STYLE_FONTCOLOR_ORANGE

  • STYLE_FONTCOLOR_RED

  • STYLE_FONTCOLOR_MAROON

  • STYLE_FONTCOLOR_FUCHSI

  • STYLE_FONTCOLOR_PURPLE

  • STYLE_FONTCOLOR_BLACK

  • STYLE_FONTCOLOR_GRAY

  • STYLE_FONTCOLOR_SILVER

  • STYLE_FONTCOLOR_WHITE

  • STYLE_BOLD - Dicke Schrift.

  • STYLE_ITALIC - Kursive Schrift.

Beispiel:

function get_row_styles()
{
  return array(
    addon_utils::STYLE_FONTCOLOR_BLUE . ' ' . addon_utils::STYLE_BOLD,
    addon_utils::STYLE_FONTCOLOR_RED,
    addon_utils::STYLE_FONTCOLOR_RED,
    addon_utils::STYLE_FONTCOLOR_BLUE,
  );
}

1.6. get_columns

Syntax:

array get_columns()

Beschreibung:

Diese Methode muss ein Array aus Spalten zurückgeben. Eine Spalte wird jeweils durch ein assoziatives Array repräsentiert. Diesem können die folgenden Eigenschaften zugewiesen werden:

  • title - ist der Titel, welcher in der Kopfzeile der jeweiligen Spalte steht. Dieser wird automatisch aufgelöst, sofern eine Sprachvariable vorhanden ist. 

  • size - ist die initiale Spaltenbreite in Pixel. Die Spaltenbreite kann nur initial gesetzt werden. Das heißt, dass nach dem ersten Aufruf des Grids durch einen Nutzer, die Spaltenbreiten für diesen gespeichert werden und im nachhinein nicht durch den Entwickler verändert werden können.

  • align - ist die horizontale Ausrichtung des Inhalts und des Spaltenkopfes.

  • type - definiert die Formatierung des Inhalts der Spalte:

    • string - Einfacher Text

    • date - Datum

    • number - Zahl

  • field - ist der interne Bezeichner der Spalte, über den die Daten zugeordnet werden.
  • format - ist die Formatierung der Spalte, wenn vom Typ date oder number.

  • editable - Gridausgabe in Auswertungen unterstützt keine Bearbeitung von Zellen

Hinweis:

Die Reihenfolge wird durch den Entwickler initial bestimmt. Nutzer haben die Möglichkeit, Spalten zu verschieben. Die Reihenfolge kann anschließend nicht durch den Entwickler überschrieben werden. Neue Spalten werden hinten angefügt.

Formate:

Formate für den Typ date:

  • time_short - Zeit kurz aus den Regionaleinstellungen

  • time_medium - Zeit mittel aus den Regionaleinstellungen

  • time_long - Zeit lang aus den Regionaleinstellungen

  • date_short - Datum kurz aus den Regionaleinstellungen

  • date_medium - Datum mittel aus den Regionaleinstellungen

  • date_long - Datum lang aus den Regionaleinstellungen

  • Weiter kann ein eigenes Format definiert werden, welches von date akzeptiert wird.

Wird kein Format angegeben, wird time_long verwendet.

Format für den Typ number:

Es kann ein eigenes Format definiert werden, welches von sprintf akzeptiert wird.

Wird kein Format angegeben, wird das Zahlenformat aus dem CRM verwendet.

function get_columns()
{
  return array(
    array('title' => 'Name', 'size' => 100, 'align' => 'left', 'type' => 'string', 'field' => 'name'),
    array('title' => 'Alter', 'size' => 40, 'align' => 'left', 'type' => 'number', 'field' => 'age', 'format' => '%.2f'),
    array('title' => 'Kontakt', 'size' => 150, 'align' => 'left', 'type' => 'module', 'field' => 'contact', 'module_id' => MODULE_CONTACTS),
  );
}

1.7. get_assignments

Syntax:

array get_assignments()

Beschreibung:

Mit dieser Methode aus der View-Familie, werden diverse Variablen für den Template-Parser bereitgestellt. Sie muss ein assoziatives Array zurückgeben, in welchem der Schlüssel die im Template nutzbaren IDs darstellt. Der Typ des jeweiligen Wertes hängt von dem Widget-Typ bzw. der Nutzung durch den Parser ab. Ausführliche Informationen über verfügbare Arten von Assignments, sind in der View Dokumentation nachzulesen.

Beispiel:

function get_assignments()
{
  return array(
         'textID' => 'Das ist ein Text.',
         'auswahlboxID' => array(
              array('id' => '1', 'value' => '0', 'label' => 'Punkt 1', 'selected' => true),
              array('id' => '2', 'value' => '1', 'label' => 'Punkt 2'                    ),
         ),
         'ifBedingung' => function($scope, $assignments)
         {
              return $scope['myForKey'] == 3;
         }
     );
}


1.8. get_template

Syntax:

string get_template()

Beschreibung:

Diese Funktion muss den Pfad zu einem Template zurückgeben, das für die View-Instanz genutzt werden soll.

Beispiel:

function get_template()
{
  return "templates/view.xml";
}


1.9. get_title

Syntax:

string get_title()

Beschreibung:

Im Rahmen der Auswertungen wird die hier zurückgegebene Zeichenkette in der generisch generierten Kopfzeile als Titel der Auswertung ausgegeben.

Beispiel:

function get_title()
{
  return "My Title";
}

2. Geerbte Methoden



3. XML

3.1. Auswertungen zur Installation bekanntmachen

Im addon.xml werden die zu installierenden Auswertungen unter dem Tag <reports> ... </reports> gruppiert.

Die einzelnen Auswertungen listen sich dann dort mit <report />

Beispiel:

  <reports>
    <report name="testreport" target="reports/testreport/testreport" />
    <report name="otherreport"  target="reports/otherreport/myotherreport" />
  </reports>

3.2. Besonderheiten für Auswertungstemplates

Die Templates für Add-on-Auswertungen unterliegen verschiedenen Einschränkungen, um sich in die Auswertungsumgebung des TecArt Systems zu integrieren und korrekt zu funktionieren.

Die TecArt Auswertungen verfügen über eine generische Kopf- und Fußzeile, wobei im Kopf der Titel der Auswertung und ein Zeitraum mittels Datumfeldern (von - bis) eingetragen wird. In der Fußzeile befindet sich die Schaltfläche zum Absenden und Zusammenstellen der eigentlichen Auswertung sowie mehrere weitere Schaltflächen zum Export und zur Druckvorschau der aufgelisteten Daten. Diese beiden Zeilen werden bei Auswahl einer Add-on-Auswertung automatisch erzeugt und brauchen nicht eigenhändig im Add-on-Template für die jeweilige Auswertung formatiert werden. Das bedeutet gleichermaßen, dass XML-Tags für <header> und <footer> nicht erlaubt sind.

Pflicht für die korrekte Funktion einer Add-on-Auswertung ist ein Formular-Tag <form>, in dem sämtliche weiteren zu übertragenen Konfigurationen und Eingabeinhalte nach dem bekannten Add-on-Schema von <row> und <col> positioniert werden. Das Formular muss ein on-submit Attribut mit dem Wert "save" besitzen. Die dazugehörige Add-on-Action wird ebenfalls automatisch bereitgestellt.

Beispiel:

<?xml version="1.0" encoding="UTF-8"?>
<layout type="fluid-full">
    <row size="1">
      <col size="7" align="left" valign="middle">
        <headline value="$title" size="5" hposition="left" icon="bar-chart" />
      </col>
    </row>
    <row flex="1">
      <col size="2">
        <field type="text" label="textinput" />
      </col>
    </row>
</layout>



  • No labels