In diesem Abschnitt:
Referenz: |
Wie einfach ein Benutzer Daten findet, hängt ganz von der Anordnung der Spalten auf einer Seite ab. Es gibt viele Design-Optionen. Mit StyleSheet-Attributen oder Befehlen können Sie:
Feature |
Beschreibung |
Anwendbar auf |
---|---|---|
SQUEEZE |
Stellt die Spaltenbreite ein. |
HTML (benötigt FONT=DEFAULT-FIXED) PS |
SET SPACES |
Stellt die Anzahl der Leerstellen zwischen Spalten ein. |
HTML (benötigt SET STYLEMODE=FIXED) |
SEQUENCE |
Stellt die Spaltenreihenfolge ein. |
PS HTML EXL2K Hinweis: kann nicht mit EXL2K FORMULA verwendet werden.) |
FOLD-LINE |
Reduziert die Reportbreite, indem Spalten gestapelt werden. |
PS |
OVER |
Stapelt die Spalten übereinander. |
HTML PS |
IN {n|+n} |
Stellt die absolute oder relative Anfangsposition einer Spalte ein. |
HTML (benötigt SET STYLEMODE=FIXED) PS |
Vorgehensweise: |
Der Wert des SQUEEZE-Attributs in einem StyleSheet bestimmt die Spaltenbreite in einem Report. Sie können einen SET-Parameter anstelle eines StyleSheets verwenden, um den Wert von SQUEEZE einzustellen. Falls es widersprüchliche StyleSheet- und SET-Werte gibt, überschreibt der StyleSheet-Wert den SET-Wert. Genaueres über SET finden Sie im Handbuch Reportanwendungen entwickeln .
Wenn SQUEEZE auf ON (der Default) steht, wird die StyleSheet-Spaltenbreite ignoriert. Spaltenbreite hängt von Ihren Browser-Defaulteinstellungen ab.
Wenn Sie SQUEEZE verwenden, hängt davon die Anzeige von Kopfzeilen, Fußzeilen und Spaltentiteln im Report ab. Weitere Informationen finden Sie unter Kopfzeilen, Fußzeilen, Titel und Labels verwenden.
Diese Syntax gilt für HTML-Reports. Informationen über die Syntax für einen PDF- oder PS-Report finden Sie unter Spaltenbreite bestimmen (PDF oder PS).
[TYPE=REPORT,] SQUEEZE={ON|OFF}, $
Hierbei gilt:
Wendet die Spaltenbreite auf den gesamten Report an. Ist nicht erforderlich, da es der Default ist.
Bestimmt die Spaltenbreite basierend auf dem breitesten Datenwert oder Spaltentitel (je nachdem welcher größer ist). ON ist der Defaultwert.
Bei HTML verringert der Web-Browser die Spaltenbreite auf den kürzesten Spaltentitel oder Feldwert.
Bestimmt die Spaltenbreite basierend auf dem Feldformat in der Masterdatei. Leerstellen füllen die Spaltenbreite auf, bis die Länge des Spaltentitels oder Feldformats (je nachdem, was größer ist) erreicht ist.
Hinweis: SQUEEZE wird für Spalten, die mit der OVER-Phrase erstellt wurden, nicht unterstützt.
Diese Anfrage verwendet SQUEEZE=ON (der Default) für einen HTML-Report. Die Spaltenbreite basiert auf der Breite des Datenwertes oder des Spaltentitels, je nachdem, was breiter ist.
SET PAGE-NUM = OFF TABLE FILE GGSALES SUM UNITS DOLLARS BY CATEGORY BY PRODUCT ON TABLE SET STYLE * TYPE=REPORT, GRID=OFF, FONT=COURIER, $ ENDSTYLE END
Bei Kategorie, Stückabsatz und Absatz in Dollar ist der Spaltentitel breiter als die zugehörigen Datenwerte. Bei Produkt bestimmen die breiteren Datenwerte die Spaltenbreite. Der HTML-Report ist:
Diese Anfrage stellt SQUEEZE für einen HTML-Report auf OFF ein. Die Spaltenbreite basiert auf dem Feldformat in der Masterdatei.
SET PAGE-NUM = OFF TABLE FILE GGSALES SUM UNITS DOLLARS BY CATEGORY BY PRODUCT ON TABLE SET STYLE * TYPE=REPORT, GRID=OFF, SQUEEZE=OFF, FONT=COURIER, $ ENDSTYLE END
Leerzeichen füllen die Spaltenbreite bis zu der Länge des Feldformats für Kategorie (A11) und Produkt (A16) auf. Der HTML-Report ist:
Diese Syntax ist für PDF- oder PS-Reports. Die Syntax für einen HTML-Report finden Sie unter Die Spaltenbreite ermitteln (HTML).
[TYPE=REPORT,] COLUMN=identifier, SQUEEZE={ON|OFF|width}, $
Hierbei gilt:
Wendet die Spaltenbreite auf den gesamten Report an. Ist nicht erforderlich, da es der Default ist.
Geben Sie einen Wert unter Verwendung des COLUMN-Attributs an, das in Eine Reportkomponente in einem WebFOCUS StyleSheet identifizieren beschrieben wird. Falls Sie den Spaltenidentifikator weglassen, gilt der Wert für SQUEEZE für alle Spalten in einem Report. Sie können auch SET SQUEEZE verwenden, um die Breite aller Spalten festzulegen.
Bestimmt die Spaltenbreite basierend auf dem breitesten Datenwert oder Spaltentitel (je nachdem welcher größer ist). ON ist der Defaultwert.
Bestimmt die Spaltenbreite basierend auf dem Feldformat in der Masterdatei. Leerstellen füllen die Spaltenbreite auf, bis die Länge des Spaltentitels oder Feldformats (je nachdem, was größer ist) erreicht ist.
Ist eine Messgröße für die Spaltenbreite, die mit dem UNITS-Attribut angegeben wird.
Falls der breiteste Datenwert die angegebene Messgröße übersteigt:
Und das Feld ist ... | Folgendes wird angezeigt... |
---|---|
Alphanumerisch | Es wird vom Wert so viel angezeigt, wie in die angegebene Breite passt, gefolgt von einem Ausrufezeichen (!), um anzuzeigen, dass der Wert abgeschnitten wurde. |
numerisch | Sternchen (*) werden anstelle des Feldwertes angezeigt. |
Hinweis: SQUEEZE wird für Spalten, die mit der OVER-Phrase erstellt wurden, nicht unterstützt.
Diese Anfrage verwendet SQUEEZE=2.5, um die Default-Spaltenbreite des PRODUCT-Feldes in einem PDF-Report zu vergrößern. Bitte beachten Sie, dass dieses Feature hauptsächlich bei gedruckten Reports verwendet wird. Je nach Auflösung Ihres Bildschirms wird die Spaltenbreite eventuell anders angezeigt, als sie gedruckt wird.
SET ONLINE-FMT = PDF TABLE FILE GGSALES SUM UNITS BY PRODUCT ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLE * TYPE=REPORT, COLUMN=PRODUCT, SQUEEZE=2.5, $ ENDSTYLE END
Der PDF-Report ist:
Vorgehensweise: |
Per Default werden Reportspalten durch ein oder zwei Leerzeichen abgetrennt, abhängig von der Ausgabebreite. Der Parameter SET SPACES oder ON TABLE SET SPACES steuert die Anzahl von Leerzeichen zwischen Spalten in einem Report.
In einer horizontalen Sortierphrase (ACROSS) bestimmt der Parameter SPACES den Abstand zwischen horizontalen Sortiergruppen. Innerhalb eines Sets ist der Abstand zwischen Spalten immer eine Leerstelle und dies kann nicht geändert werden.
Dieses Feature gilt für HTML-Reports. Sie müssen den Parameter STYLEMODE auf FIXED einstellen.
Diese Syntax gilt für HTML-Reports.
Für alle Reportanfragen in einer Prozedur
SET SPACES = {n|AUTO}
Für eine Reportanfrage
ON TABLE SET SPACES {n|AUTO}
Hierbei gilt:
Ist eine ganze Zahl zwischen 1 und 8, die die Anzahl von Leerzeichen zwischen Reportspalten angibt.
Fügt automatisch zwischen Reportspalten ein oder zwei Leerzeichen ein. AUTO ist der Defaultwert.
Diese Anfrage verwendet ACROSS mit ON TABLE SET SPACES. Der Parameter ON TABLE SET STYLEMODE FIXED ist erforderlich für HTML.
TABLE FILE CENTORD SUM QUANTITY LINEPRICE ACROSS ORDER_NUM BY PLANT AS 'Plant' WHERE ORDER_NUM EQ '28003' OR '28004' ON TABLE SET SPACES 7 ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLEMODE FIXED END
Das ACROSS-Set besteht aus den Feldern namens Menge und Zeilensumme. Der Abstand zwischen jedem Set sind sieben Leerstellen:
Vorgehensweise: |
Sie können die Reihenfolge ändern, in der vertikale Sortierspalten (BY) in einem Report angezeigt werden. Dieses Feature trifft auf horizontale Sortierzeilen (ACROSS) oder gestapelte Spalten (OVER) nicht zu.
Diese Syntax trifft auf PDF-, PS-, HTML- und EXL2K-Reports zu.
[TYPE=REPORT,] COLUMN=identifier, SEQUENCE=sequence, $
Hierbei gilt:
Wendet die Spaltenreihenfolge auf den gesamten Report an. Ist nicht erforderlich, da es der Default ist.
Geben Sie einen Wert unter Verwendung des COLUMN-Attributs an, das in Eine Reportkomponente in einem WebFOCUS StyleSheet identifizieren beschrieben wird.
Ist eine Zahl, die für die Reihenfolge der ausgewählten Spalte steht.
Die Zahlen müssen sich nicht in sequenzieller Reihenfolge befinden oder in Intervallen von eins. Die Reihenfolge der Spalten ist aufsteigend. NOPRINT-Spalten sind nicht inbegriffen.
Diese Anfrage ändert die Reihenfolge, in der Spalten normalerweise im Report angezeigt werden, d.h. erstens SNAME, zweitens PRODCAT und drittens LINEPRICE.
SET ONLINE-FMT = PDF
TABLE FILE CENTORD
SUM LINEPRICE AS 'Sales'
BY SNAME BY PRODCAT AS 'Product'
WHERE SNAME EQ 'eMart' OR 'City Video'
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLE *
TYPE=REPORT, COLUMN=SNAME, SEQUENCE=3, $
TYPE=REPORT, COLUMN=PRODCAT, SEQUENCE=2, $
TYPE=REPORT, COLUMN=LINEPRICE, SEQUENCE=1, $
ENDSTYLE
END
LINEPRICE (Sales) ist jetzt die erste Spalte, PRODCAT (Produkt) die zweite Spalte (wie per Default) und SNAME (Ladenname) die dritte Spalte. Der PDF-Report ist:
In diesem Abschnitt: Vorgehensweise: |
Sie können Spalten in einem Report stapeln, um die Reportbreite zu verringern oder um Werte in einem Report zu vergleichen, indem eine Matrix erstellt wird. Sie können Folgendes verwenden, um Spalten zu stapeln:
FOLD-LINE und OVER unterscheiden sich darin, dass FOLD-LINE die zweite Zeile (nicht die zweite Spalte) direkt unter der ersten Zeile anfangen lässt, jedoch leicht eingerückt. OVER stapelt die Werte einer Spalte tatsächlich direkt übereinander. Sie können FOLD-LINE und OVER in derselben Anfrage verwenden.
display_command fieldname ... FOLD-LINE fieldname ...
oder
{ON|BY} fieldname FOLD-LINE
Hierbei gilt:
Ist ein Anzeigebefehl. Es gibt keine Absetzung, wenn eine Zeile nach einem Anzeigefeld gefaltet wird.
Ist ein Anzeigefeld oder ein Sortierfeld, dass in eine separate Zeile platziert wird, wenn sich der Wert des ON- oder BY-Feldes ändert. Wenn eine Zeile an einem Sortierfeld gefaltet wird, wird sie um zwei Leerzeichen von der vorhergehenden Zeile abgesetzt.
Ist eine vertikale Sortierphrase. Die Begriffe sind synonym.
Nachfolgend wird beschrieben, wie Sie FOLD-LINE verwenden, um die Breite Ihres Reports zu verringern. In diesem Beispiel werden Spalten gestapelt, wenn sich der Wert des Sortierfeldes CATEGORY ändert.
TABLE FILE GGSALES SUM UNITS BUDUNITS BY CATEGORY ON CATEGORY FOLD-LINE ON TABLE SET ONLINE-FMT PDF ON TABLE SET PAGE-NUM OFF END
Der Report ist:
Ohne FOLD-LINE sieht der Report folgendermaßen aus:
display_command fieldname1 OVER fieldname2 OVER fieldname3 ...
Hierbei gilt:
Ist ein Anzeigebefehl.
Ist ein Anzeigefeld oder berechneter Wert. Ein Textfeld ist nicht gültig.
Diese Anfrage enthält eine ACROSS-Phrase in einem HTML-Report, um horizontal nach Abteilung zu sortieren. Es werden zwei OVER-Phrasen verwendet, um Spalten zu stapeln.
TABLE FILE EMPLOYEE
SUM GROSS OVER DED_AMT OVER
COMPUTE NET/D8.2M = GROSS - DED_AMT;
ACROSS DEPARTMENT
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLE *
TYPE=REPORT, GRID=OFF,$
ENDSTYLE
END
Wenn OVER verwendet wird, werden die Spalten GROSS, DED_AMT und NET zum Zweck der Lesbarkeit gestapelt:
Ohne die Verwendung von OVER sieht der HTML-Report folgendermaßen aus:
Wenn Spalten in die Reportausgabe platziert werden, werden sie durch Abstände abgetrennt. Sie können die Größe der Abstände zwischen Spalten mit den StyleSheet-Attribute LEFTGAP und RIGHTGAP steuern.
Per Default werden die Abstände zwischen Spalten außerhalb der Begrenzungen platziert, die für die Felder in der Reportausgabe vorbehalten sind. Es definiert daher die Breite oder der Komprimierungswert, die oder der für ein Feld definiert ist, die Größe des Textbereichs für den Datenwert. Die Breite der Abstände zwischen Spalten zählt nicht. Die umgebende Box, die verwendet wird, um Ränder und Hintergrundfarbe zu definieren, wird basierend auf der Datenbreite plus dem linken Abstand plus dem rechten Abstand bestimmt.
Abstände außerhalb der Spaltenbegrenzungen müssen berücksichtigt werden, wenn Sie versuchen, Felder in Reports auszurichten, die die Phrase OVER verwenden.
Diese Verbesserung sowie manche andere Verbesserungen in WebFOCUS Release 7.6 Version 11 wurden konzipiert, um die Entwicklung von mehrzeiligen Reports mit leeren AS-Namen (Spaltentiteln) zu unterstützen. Sofern nicht anders angegeben, funktionieren diese Features mit nicht leeren Titeln, wurden jedoch nicht so konzipiert, dass sie Ausrichtung mit nicht leeren Spaltentiteln unterstützen.
Per Default werden Spaltentitel links neben den Feldwerten in einem Report platziert, der OVER verwendet. OVER Titel und OVER Wert werden jeweils bemessen durch die Kombination der drei Parameter LEFTGAP, WIDTH und RIGHTGAP:
Mit OVER und leeren AS-Namen wird jeder Datenwert zu einer Datenzelle, die verwendet werden kann, um Zeilen und Spalten innerhalb der Datenlinien des Reports zu konstruieren. Um Datenwerte auf einer niedrigeren Zeile mit den Werten darüber auszurichten, müssen Sie die Breiten für die Spalten auf niedrigerer Ebene berechnen, die die Breiten der Daten darüber berücksichtigen und die Breiten aller linken und rechten Abstände zwischen ihnen.
Es kann kompliziert sein, die Größe jeder Spalte zu berechnen, wenn Sie Daten und Kopfzeilen in Reports mit OVER ausrichten. Jede Berechnung für die Spaltenbreite muss außerdem die externen linken und rechten Abstände berücksichtigen und diese Abstände sind kumulativ, wenn die Anzahl der Spalten in einer gegebenen Zeile zunimmt.
Mit dem StyleSheet-Attribut GAPINTERNAL=ON können Sie die Abstände innerhalb der Spaltenbegrenzungen für PDF-Reportausgabe platzieren. Dieses Feature macht es wesentlich einfacher, Felder und Kopfzeilen in Reports auszurichten, die die Phrase OVER verwenden, um mehrere Zeilen zu erstellen.
Hinweis: OVER wird jetzt mit SQUEEZE unterstützt.
TYPE=REPORT, GAPINTERNAL={OFF|ON}
Hierbei gilt:
Platziert die linken und rechten Abstände außerhalb der definierten Feldbreite. OFF ist der Defaultwert.
Platziert die linken und rechten Abstände innerhalb der definierten Feldbreite.
Mit GAPINTERNAL=OFF müssen Sie die Summe linker und rechter Abstände und der Feldbreiten berücksichtigen, wenn Sie die Breite gestapelter Spalten definieren.
Mit GAPINTERNAL=ON entspricht die definierte WIDTH dem gesamten Platz, der von der gegebenen Datenzelle oder Spalte verwendet wird. Dies entfernt den kumulativen Effekt, da sich die OVER-Werte über eine Zeile hinweg fortsetzen.
Die folgende Anfrage mit der GGSALES-Datenquelle platziert das Feld PRODUCT über die Felder UNITS und DOLLARS und stellt GAPINTERNAL auf OFF:
SET LAYOUTGRID=ON TABLE FILE GGSALES "Product<+0>" "Units<+0>Dollars" SUM PRODUCT AS '' OVER UNITS/D8C AS '' DOLLARS/D12.2CM AS '' BY PRODUCT NOPRINT ON TABLE PCHOLD FORMAT PDF ON TABLE SET STYLE * TYPE=REPORT, SQUEEZE=ON, FONT=ARIAL, SIZE=8, LEFTMARGIN=1, TOPMARGIN=1, LEFTGAP=.1, RIGHTGAP=.1, GAPINTERNAL=OFF, $ TYPE=REPORT, BORDER=ON, $ TYPE=HEADING, BORDERALL=ON, $ TYPE=HEADING, LINE=1, ITEM=1, POSITION = PRODUCT, $ TYPE=HEADING, LINE=2, ITEM=1, POSITION = UNITS, $ TYPE=HEADING, LINE=2, ITEM=2, POSITION = DOLLARS, $ TYPE=REPORT, COLUMN=PRODUCT(2), SQUEEZE=2, $ TYPE=REPORT, COLUMN=UNITS, SQUEEZE=1, $ TYPE=REPORT, COLUMN=DOLLARS, SQUEEZE=1, $ END
Für UNITS und DOLLARS wurden jeweils ein Zoll definiert, während für das Feld PRODUCT zwei Zoll definiert wurden. Mit GAPINTERNAL=OFF zeigt LAYOUTGRID, dass die Breiten, die verwendet werden, um die Spalten zu platzieren, breiter sind als die Breiten, die in der Anfrage angegeben wurden. Der zusätzliche Platz, der durch den externen linken und den externen rechten Abstand erzeugt wird, ist hierfür verantwortlich:
Die Kopfzeilenränder sind im Report rechts ausgerichtet aufgrund des Attributs SQUEEZE=ON im StyleSheet. Es wurde dem Report zusätzlicher Platz hinzugefügt, um die Kopfzeilen auszurichten. Wenn Sie die StyleSheet-Deklaration für das Feld PRODUCTS in JUSTIFY=RIGHT ändern, können Sie sehen, dass der zusätzliche Platz verhindert, dass der Produktwert mit dem Dollarwert ausgerichtet wird:
Wenn Sie die StyleSheet-Deklaration in GAPINTERNAL=ON ändern, führt dies dazu, dass die angegebenen Breiten verwendet werden, da die Abstände intern sind und in den angegebenen Werten enthalten sind:
In der folgenden Reportausgabe sehen Sie, dass die Werte richtig ausgerichtet werden, selbst wenn die PRODUCT-Werte mit JUSTIFY=RIGHT definiert werden:
Vorgehensweise: |
Sie können die absolute oder relative Anfangsposition für eine Spalte in einem Report angeben. Eine relative Anfangsposition ist eine Anzahl von Zeichen rechts von der letzten Spalte.
Wenn Sie dieses Feature mit einem HTML-Report verwenden, stellen Sie den Parameter STYLEMODE auf FIXED.
field IN {n|+n}
Hierbei gilt:
Ist die Spalte, die positioniert wird.
Ist eine Zahl, die die absolute Position der Spalte angibt.
Wenn n mit ACROSS verwendet wird, gibt dieser Wert die Anfangsposition des ACROSS-Sets an.
Wenn n mit FOLD-LINE oder OVER verwendet wird, gibt dieser Wert die Zeile an, auf der sich das verwiesene Feld befindet.
Ist eine Zahl, die die relative Position der Spalte angibt. Der Wert von n ist eine Anzahl von Zeichen rechts der Spalte.
Diese Anfrage gibt absolute Positionierung für die drei Spalten im Report an. Der Parameter ON TABLE SET STYLEMODE FIXED ist erforderlich für HTML.
TABLE FILE CENTQA SUM CNT.PROBNUM IN 1 AS 'Total #,Problems' SUM CNT.PROBNUM IN 45 AS '# Problems,by Product' BY PLANT NOPRINT BY PRODNAME IN 15 WHERE PLANT EQ 'ORL' ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLEMODE FIXED END
Die Spalten werden so angeordnet, dass sie gut gelesen werden können:
Diese Anfrage verwendet die Phrase IN mit dem horizontale Sortierfeld PLANT, um die Anfangsposition der Spalte anzugeben. Sie verwendet auch relative Positionierung, um zusätzliche Leerzeichen zwischen den PROBNUM-Spalten hinzuzufügen. Der Parameter ON TABLE SET STYLEMODE FIXED ist für HTML-Reports erforderlich.
TABLE FILE CENTQA
SUM PROBNUM IN +8
ACROSS PLANT IN 35
BY PROBLEM_CATEGORY
WHERE PLANT EQ 'BOS' OR 'ORL'
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLEMODE FIXED
END
Das ACROSS-Set fängt in der Spalte 35 an, und es gibt acht zusätzliche Leerzeichen zwischen den Datenspalten in ACROSS:
Die folgende Anfrage verwendet OVER, um Spalten zu stapeln, und IN, um sie zu positionieren.
TABLE FILE EMPLOYEE SUM GROSS IN 40 OVER DED_AMT IN 40 BY DEPARTMENT BY LAST_NAME IN 20 ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLEMODE FIXED END
Im Report werden GROSS und DED_AMT gestapelt, angefangen in Spalte 40. LAST_NAME fängt in Spalte 20 an.
WebFOCUS |