Leitfaden für die Skripterstellung in ACL 14.1

Funktionen zur Gruppierung von Datensätzen nach Monaten verwenden

Um die Dinge zu vereinfachen, wurden in den vorherigen Tutorials bei vielen Beispielen für Analytics-Funktionen literale Eingabewerte verwendet – „john SMITH“, „VT-123-45“ usw. Wie führen Sie jedoch eine Funktion für die gesamte Wertemenge eines Felds in einer Analytics-Tabelle aus?

Indem Sie eine Funktion auf ein gesamtes Feld anwenden, können Sie hilfreiche Aufgaben einfacher erledigen, wie beispielsweise die Gruppierung von Datensätzen in einer Tabelle nach Monaten.

Eine Möglichkeit, um eine Funktion auf alle Werte eines Felds anzuwenden, besteht im Erstellen eines Kalkulationsfelds. Ein Kalkulationsfeld ist ein von Ihnen erstelltes Feld, das oft auf einem tatsächlichen physischen Feld basiert, dessen Werte jedoch vollständig durch Analytics berechnet wurden.

Ähnlich wie bei der Ausgabe einer Funktion können Sie sich ein Kalkulationsfeld als einen virtuellen Datenwert vorstellen, der im Speicher existiert und durch Analytics berechnet wurde. Sobald sie einmal berechnet wurden, können die virtuellen Daten in anschließenden Operationen verwendet werden.

Wir können ein Kalkulationsfeld namens Monat erstellen, das unter Verwendung der MONTH()-Funktion den Monatsteil jedes Datums in ein Feld namens „Rechnungsdatum“ extrahiert. Dann können wir die Datensätze in der Tabelle nach Monaten gruppieren.

Das Kalkulationsfeld erstellen

  1. In Analytics öffnen Sie Beispielprojekt.ACL und die Tabelle VLL_Trans (Tabellen\Verbindlichkeiten\VLL_Trans).

    Wenn Beispielprojekt.ACL nicht verfügbar ist, öffnen Sie eine beliebige Tabelle mit einem Datumsfeld. Damit dieses Beispiel funktioniert, muss das Feld den Datentyp „Datumzeit“ aufweisen.

  2. Führen Sie die folgenden Schritte aus, um das Kalkulationsfeld Monat zu erstellen:
    1. Oben in der Tabellenansicht klicken Sie auf Tabellenlayout bearbeiten .
    2. Im Dialogfeld Tabellenlayout klicken Sie auf Neuen Ausdruck einfügen .
    3. Im Feld Name geben Sie Monat ein. Kopieren Sie diese Version der MONTH( )-Funktion und fügen sie in das Feld Standardwert ein:

      MONTH(Rechnungsdatum)

      Wenn Sie die Tabelle VLL_Trans nicht verwenden, aktualisieren Sie den Feldnamen, damit er Ihren Daten entspricht.

    4. Klicken Sie auf Eingabe bestätigen  und schließen das Dialogfeld Tabellenlayout.
    5. In der Tabellenansicht klicken Sie mit der rechten Maustaste auf den Kopf der Spalte Rechnungsdatum. Wählen Sie Spalten hinzufügen unter Verfügbare Datenfelder, doppelklicken Sie auf Monat und klicken Sie auf OK.

      Ergebnis: Das Kalkulationsfeld Monat wird der Ansicht hinzugefügt. Es beinhaltet den Monatsanteil jedes Datums der Spalte Rechnungsdatum und wird als eine Zahl von 1 bis 12 angezeigt.

    6. Klicken Sie auf Projekt speichern , um Ihre Änderungen zu speichern.

Datensätze nach Monaten gruppieren

Da Sie nun das Kalkulationsfeld Monat erstellt haben, können Sie es verwenden, um die Datensätze der Tabelle VLL_Trans nach Monaten zu gruppieren.

  1. Wählen Sie im Hauptmenü Analyse > Summenstruktur.
  2. Wählen Sie in der Liste Summenstruktur für das Feld Monat.
  3. Wählen Sie in der Liste Zwischensummenfelder das Feld Rechnungsbetrag.
  4. Klicken Sie auf die Registerkarte Ausgabe, wählen Sie Datei, geben Sie in das Feld Name den Text VLL_Trans_gruppiert ein, und klicken Sie dann auf OK.

    Ergebnis: Analytics gibt die neue Tabelle aus, in der die Datensätze der Tabelle VLL_Trans nach Monaten gruppiert sind. Für jeden Monat gibt es eine Zwischensumme des Rechnungsbetrags und die Anzahl der Datensätze des Monats.

    MonatRechnungsbetragAnzahl
    185.670,2212
    24.496,566
    32.941,805
    4467,401
    58.272,575
    61.582,862
    73.101,984
    821.146,962
    932.577,3220
    1041.595,8919
    1170.779,2619
    126.008,517

Sie können die CMOY( )-Funktion verwenden, um ein zweites Kalkulationsfeld zu erstellen, falls Sie die Namen der Monate anzeigen möchten. CMOY ist eine Abkürzung für „Character Month of Year“, also „Monat des Jahres in Zeichen“.

  1. In der Tabelle VLL_Trans führen Sie dieselben Schritte durch, die Sie zur Erstellung des Kalkulationsfelds Monat und zum Hinzufügen zur Tabellenansicht befolgt haben. Beachten Sie jedoch die folgenden Unterschiede:
    • Geben Sie im Feld Name Monat_2 ein.
    • Kopieren Sie diese Version der CMOY( )-Funktion und fügen Sie sie in das Feld Standardwert ein:

      CMOY(Rechnungsdatum; 9)

    Ergebnis: Das Kalkulationsfeld Monat_2 wird der Ansicht mit dem Namen jedes Monats hinzugefügt.

  2. Führen Sie dieselben Schritte wie bei der Gruppierung der Datensätze nach Monaten in der Tabelle VLL_Trans durch, jedoch mit den folgenden Unterschieden:
    • Wählen Sie in der Liste Andere Datenfelder den Eintrag Monat_2.
    • Auf der Registerkarte Ausgabe geben Sie den Namen der Ausgabedatei als VLL_Trans_gruppiert_2 ein.

    Ergebnis: Analytics gibt die neue Tabelle aus, in der die Datensätze der Tabelle VLL_Trans nach Monaten gruppiert sind. Nun sind jedoch auch die Monatsnamen enthalten.

    MonatRechnungsbetragAnzahlMonat_2
    185.670,2212Januar
    24.496,566Februar
    32.941,805März
    4467,401April
    58.272,575Mai
    61.582,862Juni
    73.101,984Juli
    821.146,962August
    932.577,3220September
    1041.595,8919Oktober
    1170.779,2619November
    126.008,517Dezember

Oft ist es hilfreich, ein Kalkulationsfeld erstellen, um eine Funktion für viele Werte auszuführen. Dasselbe Ergebnis können Sie jedoch auch erzielen und dadurch Ihre Arbeit in Analytics optimieren, indem Sie Funktionen direkt in Analytics-Befehle einbetten.

Eine Funktion einbetten, um Datensätze nach Monaten zu kopieren

Wir verwenden das Beispiel von oben, erstellen aber diesmal keine Kalkulationsfelder. Stattdessen betten wir die Funktionen direkt in den Summenstruktur-Befehl ein.

  1. Öffnen Sie die Tabelle VLL_Trans.
  2. Wählen Sie im Hauptmenü Analyse > Summenstruktur.

MONTH( )-Funktion einbetten

  1. Klicken Sie auf Summenstruktur für und dann auf Ausdruck.
  2. Im Ausdruck-Generator doppelklicken Sie in der Liste Funktionen auf MONTH( Datum/Datumzeit).

    Tipp

    Um die Funktion MONTH( ) leichter zu finden, wählen Sie aus dem Dropdownfilter am oberen Ende der Liste Funktionen den Eintrag Datum und Zeit aus.

  3. Im Textfeld Ausdruck wählen Sie Datum/Datumzeit und doppelklicken in der Liste Verfügbare Datenfelder auf Rechnungsdatum.

    Im Textfeld Ausdruck sollte nun MONTH(Rechnungsdatum) stehen.

    Hinweis

    Der Ausdruck sollte Ihnen bekannt vorkommen. Es ist derselbe Ausdruck wie im Kalkulationsfeld des vorherigen Beispiels. Nun ist er jedoch in den Summenstruktur-Befehl eingebettet.

  4. Klicken Sie auf OK, um den Ausdruck-Generator zu verlassen. Klicken Sie erneut auf OK, und Sie verlassen das Dialogfeld Datenfelder wählen.

CMOY( )-Funktion einbetten

  1. Klicken Sie auf Andere Datenfelder und dann auf Ausdruck.
  2. Im Ausdruck-Generator doppelklicken Sie in der Liste Funktionen auf CMOY(Datum/Datumzeit ; Länge).
  3. Im Textfeld Ausdruck ersetzen Sie Datum/Datumzeit durch Rechnungsdatum und Länge durch 9.

    Im Textfeld Ausdruck sollte nun CMOY( Rechnungsdatum ; 9) stehen.

  4. Klicken Sie auf OK, um den Ausdruck-Generator zu verlassen. Klicken Sie erneut auf OK, und Sie verlassen das Dialogfeld Datenfelder wählen.

Die Operation „Summenstruktur“ abschließen

  1. Wählen Sie in der Liste Zwischensummenfelder das Feld Rechnungsbetrag.
  2. Klicken Sie auf die Registerkarte Ausgabe, wählen Sie Datei, geben Sie in das Feld Name den Text VLL_Trans_gruppiert_3 ein, und klicken Sie dann auf OK.

    Ergebnis: Analytics gibt die neue Tabelle aus, in der die Datensätze der Tabelle VLL_Trans nach Monaten gruppiert sind. Sie erkennen die beiden eingebetteten Funktionen.

    MONTH(Rechnungsdatum)RechnungsbetragAnzahlCMOY(Rechnungsdatum; 9)
    185.670,2212Januar
    24.496,566Februar
    32.941,805März
    4467,401April
    58.272,575Mai
    61.582,862Juni
    73.101,984Juli
    821.146,962August
    932.577,3220September
    1041.595,8919Oktober
    1170.779,2619November
    126.008,517Dezember

Fazit

Sie haben zwei unterschiedliche Methoden verwendet, um genau dasselbe Ergebnis zu erhalten:

  • Kalkulationsfeld Das Erstellen eines Kalkulationsfelds vor der Verwendung des Felds in einem Befehl ist ein stärker literaler und schrittweiser Ansatz. Falls Sie das Kalkulationsfeld mehrmals verwenden möchten, könnte dies der geeignete Ansatz sein.
  • Eingebettete Funktion Ein stärker optimierter Ansatz besteht darin, das Erstellen eines Kalkulationsfelds zu umgehen und eine Funktion in einen Befehl einzubetten. Dies könnte der geeignete Ansatz für Skripting sein, um effizientere Skripts zu erstellen.

Wenn Sie die Verwendung von Funktionen zur Erstellung von Kalkulationsfeldern oder das Einbetten von Funktionen in Befehle üben möchten, wiederholen Sie einige oder alle der oben aufgeführten Übungen und verwenden dabei die DOW( )- und CDOW( )-Funktionen.

DOW( ) und CDOW( ) sind MONTH( ) und CMOY( ) sehr ähnlich, sie extrahieren jedoch aus einem Datum den Wochentag und nicht den Monat.

Tipp

Mit DOW( ) und CDOW( ) könnten Sie analysieren, wie sich die Umsatzzahlen für einzelne Wochentage unterscheiden.

In der Befehlszeile können Sie die DISPLAY-Methode verwenden, um ein Gefühl für die Ausgabe zu erhalten, falls Sie ein Kalkulationsfeld erstellen oder eine Funktion in einen Befehl einbetten.

  1. Fügen Sie bei geöffneter VLL_Trans-Tabelle die folgende Version der Funktion UPPER( ) in die Befehlszeile ein, schreiben Sie DISPLAY und ein Leerzeichen vor die eingefügte Funktion, und drücken Sie die Eingabetaste.

    UPPER(Lieferant.Lieferantenname)

    Die Funktion UPPER( ) wandelt den Eingabetext in Großbuchstaben um.

    Wenn der erste Datensatz in der Tabelle VLL_Trans ausgewählt ist, lautet die Funktionsausgabe „MORE POWER INDUSTRIES“.

  2. Wählen Sie in der Tabelle die Datensatznummer 6 aus.

    Klicken Sie auf die Datensatznummer, um den Datensatz auszuwählen. Die ausgewählte Datensatznummer wird grün hervorgehoben.

  3. Geben Sie die Funktion in die Befehlszeile ein, und drücken Sie die Eingabetaste.

    Die Funktionsausgabe lautet „UNITED EQUIPMENT“.

  4. Wählen Sie ein oder zwei andere Datensätze aus und wiederholen Sie den Vorgang.

    Fazit: Auf Basis einzelner Datensätze sehen Sie, was ein Kalkulationsfeld oder eine eingebettete Funktion für alle Werte des Felds Lieferant.Lieferantenname ausgeben würde.

    Sie können diese Testmethode für jede Analytics-Funktion verwenden, die als Eingabe ein Feld annimmt.

Lernen Sie, wie Sie Variablen mit einer Funktion verwenden und dadurch Interaktivität ermöglichen: Variablen mit einer Funktion verwenden, um Benutzereingaben zu ermöglichen