In diesem Abschnitt: |
Sie können Reportkomponenten unter Bedingungen formatieren, eine Grafik anzeigen lassen sowie Links in Ihren Report mit einbeziehen und dies alles von den Werten in Ihrem Report abhängig machen. Mit bedingtem Styling können Sie:
Fügen Sie, um Reports bedingt zu formatieren, der StyleSheet-Deklaration das WHEN-Attribut hinzu. Das WHEN-Attribut gibt eine Bedingung an, die für jede Instanz einer Reportkomponente ausgewertet wird (d. h. für jede Zelle einer Tabellenreport-Spalte, jedes Element in einem Diagramm oder jede Freiform-Reportseite). Die StyleSheet-Deklaration wird auf jede Instanz angewendet, die die Bedingung erfüllt, und wird von jeder Instanz ignoriert, die die Bedingung nicht erfüllt.
Sie können auch sequenzielle bedingte Formatierung anwenden.
Hinweis: Die Variablen TABPAGENO und TABLASTPAGE können nicht verwendet werden, um Styling mit bedingtem Styling (WHEN) zu definieren.
Vorgehensweise: |
Sie können sequenzielle bedingte Logik auf eine Reportkomponente anwenden, indem Sie eine Reihe von Deklarationen erstellen, die je eine andere Bedingung haben. Diese Funktion der StyleSheets entspricht einer Sequenz von eingebetteten IF-THEN-ELSE-Anweisungen. Wenn verschiedene bedingte Deklarationen dieselbe Reportkomponente angeben (z. B. dieselbe Spalte) und dasselbe Feld in der Bedingung auswerten, werden sie als Gruppe verarbeitet. Folgendes gilt für jede Instanz der Reportkomponente (z. B. für jede Zelle einer Spalte):
Ein Beispiel finden Sie unter Sequenzielle bedingte Formatierung verwenden.
TYPE=type, [subtype,] attributes, WHEN=field1 operator {field2|value},$
oder
TYPE=type, [subtype,] attributes, WHEN=FORECAST, $
Hierbei gilt:
Ist der Wert des TYPE-Attributs. Sie können eine beliebige Reportkomponente angeben. Genaues finden Sie unter Eine Reportkomponente in einem WebFOCUS StyleSheet identifizieren.
Sind alle weiteren Attribute, wie z. B. COLUMN, ACROSS oder ITEM, die benötigt werden, um die Reportkomponente zu identifizieren, auf die Sie die Deklaration anwenden.
Sind die Attribute in der StyleSheet-Deklaration, die vom WHERE-Attribut bedingt gemacht werden. Hierzu können die meisten Formatierungs-, Grafiken- und Hyperlink-Attribute gehören.
Identifiziert die Reportfelder, die verglichen werden. Kann Folgendes sein:
Falls Sie ein Feld verwenden möchten, dass im Report nicht angezeigt werden soll, können Sie das Feld in der Reportanfrage angeben und die NOPRINT-Option verwenden, um das Anzeigen des Feldes zu verhindern (z. B. PRINT fieldname NOPRINT).
Sie können einen Präfixoperator auf ein Feld in einem Report wie folgt anwenden:
Das Feld darf kein gepacktes (P) numerisches Feld sein.
Definiert, wie die Bedingung erfüllt wird. Sie können die folgenden relationalen Operatoren verwenden:
EQ, wobei die Bedingung erfüllt ist, wenn die Werte auf der linken und rechten Seite gleich sind. Falls die Werte, die verglichen werden, alphanumerisch sind, muss ihre Groß- und Kleinschreibung übereinstimmen.
NE, wobei die Bedingung erfüllt ist, wenn die Werte auf der linken und rechten Seite nicht gleich sind.
LT, wobei die Bedingung erfüllt ist, wenn der Wert auf der linken kleiner als der Wert auf der rechten Seite ist.
LE, wobei die Bedingung erfüllt ist, wenn der Wert auf der linken kleiner oder gleich dem Wert auf der rechten Seite ist.
GT, wobei die Bedingung erfüllt ist, wenn der Wert auf der linken größer als der Wert auf der rechten Seite ist.
GE, wobei die Bedingung erfüllt ist, wenn der Wert auf der linken größer oder gleich dem Wert auf der rechten Seite ist.
Ist eine Konstante, wie z. B. eine Zahl, eine Zeichenfolge oder ein Datum. Sie müssen nichtnumerische Konstanten, wie z. B. Zeichenfolgen und Daten, in einfache Anführungszeichen setzen.
Obwohl Sie hier keine Funktionen oder Operatoren verwenden können, um den Wert anzugeben, können Sie ein Temporärfeld (COMPUTE oder DEFINE) mit Funktionen und Operatoren definieren und es dann hier anstelle einer Konstanten angeben.
Identifiziert Felder, die mit dem FORECAST-Befehl erzeugt wurden.
In diesem Beispiel ist zu sehen, wie Sie sequenzielle bedingte Formatierung auf einen Report anwenden. Dieser Report verwendet sequenzielle bedingte Logik, um jede Zeile basierend auf ihrer Gesamtbestellung zu formatieren (LINEPRICE).
TABLE FILE CENTORD
HEADING
"Order Revenue"
" "
SUM ORDER_DATE LINEPRICE AS 'Order,Total:'
BY HIGHEST 10 ORDER_NUM
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
1. TYPE=DATA, BACKCOLOR=AQUA, STYLE=BOLD+ITALIC,
WHEN=LINEPRICE GT 500000, $
2. TYPE=DATA, BACKCOLOR=YELLOW, STYLE=BOLD,
WHEN=LINEPRICE GT 400000, $
3. TYPE=DATA, BACKCOLOR=ORANGE, STYLE=ITALIC,
WHEN=LINEPRICE GT 100000, $
4. TYPE=DATA, BACKCOLOR=SILVER, FONT='Arial', $
TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $
ENDSTYLE
END
Beachten Sie:
Die Ausgabe ist:
In diesem Beispiel ist zu sehen, wie Sie bedingte Formatierung auf einen Report anwenden. Die Bedingte Formatierung lenkt die Aufmerksamkeit auf Bestellungen, die über 200.000 betragen.
Beachten Sie, dass, da keine bestimmte Spalte in der Deklaration angegeben ist, die Formatierung auf die gesamte Zeile angewendet wurde.
TABLE FILE CENTORD
HEADING
"Order Revenue"
" "
SUM ORDER_DATE LINEPRICE AS 'Order,Total:'
BY HIGHEST 10 ORDER_NUM
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
TYPE=DATA, BACKCOLOR=AQUA, STYLE=BOLD, WHEN=LINEPRICE GT 200000, $
TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $
ENDSTYLE
END
Die Ausgabe ist:
Dieses Beispiel zeigt, wie Sie bedingte Formatierung verwenden können, um die Aufmerksamkeit auf Spalten zu lenken, die in der Bedingung nicht angegeben sind. Die WHEN-Bedingung besagt, dass die Bestellnummern für Bestellungen über 200.000 fett gedruckt und mit einem Hintergrund in Aqua angezeigt werden sollen.
Beachten Sie, dass die Spalte, die in der WHEN-Bedingung (LINEPRICE) ausgewertet wird, sich von der Spalte unterscheidet, die formatiert wird (ORDER_NUM). Es muss sich hierbei nicht um dieselbe Spalte handeln.
TABLE FILE CENTORD
HEADING
"Order Revenue"
" "
SUM ORDER_DATE LINEPRICE AS 'Order,Total:'
BY HIGHEST 10 ORDER_NUM
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
TYPE=DATA, COLUMN=ORDER_NUM,
BACKCOLOR=AQUA, STYLE=BOLD, WHEN=LINEPRICE GT 200000, $
TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $
ENDSTYLE
END
Die Ausgabe ist:
Das nachfolgende Beispiel zeigt, wie auf einen ACROSS-Wert verwiesen werden kann mit entweder dem ACROSS-Feldnamen oder dem ACROSS-Spaltenkennzeichner (A1, A2).
In diesem Beispiel werden die ACROSS-Werte in bedingtem Styling verwendet, um eine eindeutige Hintergrundfarbe für alle ACROSS-Spalten in der Kategorie Kaffee einzustellen, und einen zusätzlichen Schriftstil für die ACROSS-Spalte Espresso.
SET ACROSSTITLE=SIDE TABLE FILE GGSALES SUM DOLLARS/I8M AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT WHERE CATEGORY EQ 'Coffee' OR 'Food'; ON TABLE SET PAGE-NUM NOPAGE ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * SQUEEZE=ON,UNITS=IN,ORIENTATION=PORTRAIT,$ TYPE=REPORT,FONT='ARIAL',SIZE=10,BORDER=LIGHT,$ TYPE=ACROSSTITLE,COLOR=WHITE, BACKCOLOR=GREY,$ TYPE=ACROSSVALUE,COLOR=WHITE, BACKCOLOR=GREY,$ TYPE=TITLE,COLOR=WHITE, BACKCOLOR=GREY,$ TYPE=DATA, ACROSSCOLUMN=DOLLARS, BACKCOLOR=THISTLE, WHEN=CATEGORY EQ 'Coffee',$ TYPE=DATA, ACROSSCOLUMN=DOLLARS, STYLE=BOLD+ITALIC, WHEN=A2 EQ 'Espresso', $ ENDSTYLE END
Die Ausgabe ist:
In diesem Beispiel ist zu sehen, wie Sie bedingte Formatierung auf ein Datenvisualisierungs-Balkendiagramm anwenden. Diese Reportanfrage enthält ein Datenvisualisierungsbalkendiagramm, um die Daten in der Spalte LINEPRICE grafisch darzustellen. Sie verwendet bedingte Formatierung, um die Aufmerksamkeit auf Bestellungen zu lenken, die über 200.000 betragen. Sie wendet diese Formatierung bedingt auf die Datenspalten (TYPE=DATA) und auf das Balkendiagramm (GRAPHTYPE=DATA) an.
Beachten Sie, dass Datenvisualisierung nur für HTML-Reports unterstützt wird.
TABLE FILE CENTORD HEADING "Order Revenue" " " SUM ORDER_DATE LINEPRICE AS 'Order,Total:' BY HIGHEST 10 ORDER_NUM ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLESHEET * TYPE=REPORT, GRID=OFF, $ TYPE=DATA, BACKCOLOR=AQUA, STYLE=BOLD, WHEN=LINEPRICE GT 200000, $ GRAPHTYPE=DATA, COLUMN=LINEPRICE, $ GRAPHTYPE=DATA, GRAPHCOLOR=AQUA, WHEN=LINEPRICE GT 200000,$ TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $ ENDSTYLE END
Die Ausgabe ist:
In diesem Beispiel ist zu sehen, wie Sie bedingte Formatierung basierend auf den Werten eines verborgenen (NOPRINT) Feldes anwenden. In diesem Report wird bedingte Formatierung verwendet, um die Aufmerksamkeit auf die Angestellten zu lenken, die gekündigt haben.
Beachten Sie, dass die Attributbedingung WHEN ein Feld (STATUS) auswertet, das im Report verborgen ist. Obwohl das Feld, das in der Bedingung ausgewertet wird, in die Reporanfrage aufgenommen werden muss, können Sie verhindern, dass es im Report angezeigt wird, indem Sie die NOPRINT-Option verwenden, wie es in der folgenden Anfrage zu sehen ist.
TABLE FILE CENTHR HEADING "Employee List for Boston" " " "For Pay Levels 5+" " " "Resigned Employees Shown in <0>Red Bold" " " PRINT LNAME FNAME PAYSCALE STATUS NOPRINT BY ID_NUM WHERE PLANT EQ 'BOS' AND PAYSCALE GE 5 ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLESHEET * TYPE=REPORT, GRID=OFF, $ TYPE=DATA, COLUMN=LNAME, COLOR=RED, FONT='Arial', STYLE=BOLD, WHEN=STATUS EQ 'RESIGNED', $ TYPE=DATA, COLUMN=FNAME, COLOR=RED, FONT='Arial', STYLE=BOLD, WHEN=STATUS EQ 'RESIGNED', $ TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $ TYPE=HEADING, LINE=5, STYLE=-BOLD, $ TYPE=HEADING, LINE=5, ITEM=2, STYLE=BOLD, COLOR=RED, $ ENDSTYLE END
Die Ausgabe ist:
In diesem Beispiel ist zu sehen, wie Sie bedingte Formatierung auf eine Sortiergruppe anwenden. In diesem Report wird bedingte Formatierung verwendet, um die Aufmerksamkeit auf die Angestellten zu lenken, die gekündigt haben.
Beachten Sie, dass eine bedingte Deklaration Formatierung auf alle Sortiergruppenzeilen anwenden kann. Sie können dies erreichen, indem Sie das Sortierfeld (STATUS) in der Attributbedingung WHEN auswerten.
TABLE FILE CENTHR
HEADING
"Employee List for Boston"
" "
"For Pay Levels 5+"
" "
PRINT LNAME FNAME PAYSCALE
BY STATUS SKIP-LINE
WHERE PLANT EQ 'BOS' AND PAYSCALE GE 5
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
TYPE=DATA,
COLOR=RED, FONT='Arial', STYLE=BOLD, WHEN=STATUS EQ 'RESIGNED',$
TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $
ENDSTYLE
END
Die Ausgabe ist:
Diese Version der Reportanfrage verwendet zwei Deklarationen, die je eine Spalte angeben (LNAME und FNAME), um dieselbe bedingte Formatierung nicht auf alle, sondern nur auf zwei Spalten anzuwenden:
TABLE FILE CENTHR
HEADING
"Employee List for Boston"
" "
"Pay Levels 5+"
" "
PRINT LNAME FNAME PAYSCALE
BY STATUS SKIP-LINE
WHERE PLANT EQ 'BOS' AND PAYSCALE GE 5
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
TYPE=DATA, COLUMN=LNAME,
COLOR=RED, FONT='Arial', STYLE=BOLD, WHEN=STATUS EQ 'RESIGNED', $
TYPE=DATA, COLUMN=FNAME,
COLOR=RED, FONT='Arial', STYLE=BOLD, WHEN=STATUS EQ 'RESIGNED', $
TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $
ENDSTYLE
END
Die Ausgabe ist:
Im Folgenden wird beschrieben, wie Sie bedingte Formatierung auf prognostizierte Werte in einem Report anwenden können.
DEFINE FILE GGSALES SDATE/YYM = DATE; SYEAR/Y = SDATE; SMONTH/M = SDATE; PERIOD/I2 = SMONTH; END TABLE FILE GGSALES SUM UNITS DOLLARS BY CATEGORY BY PERIOD WHERE SYEAR EQ 97 AND CATEGORY EQ 'Coffee' ON PERIOD RECAP MOVAVE/D10.1= FORECAST(DOLLARS,1,3,'MOVAVE',3); ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLE * TYPE=REPORT, GRID=OFF, $ TYPE=REPORT, BACKCOLOR=SILVER, WHEN=FORECAST, $ END
Die Ausgabe ist:
WebFOCUS |