Im Rahmen der Erweiterung des Kontextmenüs durch kundenspezifische Einträge (per JavaScript Funktion 'sapbi_addToMenu') muss eine JavaScript-Funktion angegeben werden, die beim Auswählen des kundenspezifischen Eintrags ausgeführt wird. Diese Funktion ist für die Verarbeitung des Befehls verantwortlich.
Die Funktion muss folgende Schnittstelle unterstützen:
JavaScript-Funktion
|
JavaScript-Funktion zur Befehlsverarbeitung |
Parameter |
Beschreibung |
parameter
|
Freier Parameter Der Parameter ermöglicht es, mit einer Funktion mehrere Menüeinträge zu verarbeiten. Siehe Beispiele. |
cell_type
|
Kontext der Zelle ' ' = Kein spezieller 'CHARACTERISTIC' = Merkmal 'CHARACTERISTIC_VALUE' = Merkmalswert 'STRUCTURE' = Struktur 'STRUCTURE_VALUE' = Strukturbestandteil 'DATA' = Datenzelle 'EXCEPTIONS' = Web Item Liste der Exceptions 'CONDITIONS' = Web Item Liste der Bedingungen 'DOCUMENT_LIST' = Web Item Liste von Dokumenten |
Filter
|
Kontext der Zelle Je nach Wert von 'cell_type' sind hier verschiedene Werte sinnvoll: 'CHARACTERISTIC', 'CHARACTERISTIC_VALUE', 'STRUCTURE', 'STRUCTURE_VALUE': Iobjnm 'EXCEPTIONS': Exception ID 'CONDITIONS': Condition ID 'DOCUMENT_LIST': Dokumenten ID Siehe Abschnitt „Beispiel“ unten. |
parameter1
|
Genauere Festlegung des Kontexts der Zelle cell_type = 'CHARACTERISTIC_VALUE': Schlüssel des Merkmalswertes cell_type = 'STRUCTURE_VALUE': STRUCTURE_MEMBER_ID_1 |
parameter2
|
Genauere Festlegung des Kontexts der Zelle cell_type = 'CHARACTERISTIC_VALUE': Knotentyp im Falle von einem Hierarchieknoten cell_type = 'STRUCTURE_VALUE': STRUCTURE_MEMBER_ID_2 |
item
|
Name des Web Items, auf dem das Menü aufgerufen wird |
dataprovider |
Name des Data Providers, auf dem das Menü aufgerufen wird |
x
|
Zelle ist auf der Datenspalte x Dieser Parameter wird insbesondere für die Bericht/Bericht-Schnittstelle (BBS) benötigt. |
Y
|
Zelle ist auf der Datenzeile y Dieser Parameter wird insbesondere für die Bericht/Bericht-Schnittstelle (BBS) benötigt. |
Zur Verarbeitung kann das JavaScript-API zum Ausführen von Befehlen verwendet werden. Weitere Informationen: JavaScript-API zum Ausführen von Befehlen
Mit diesem Beispiel wird das Kontextmenü um die Eintrage erweitert, mit denen man die Eigenschaft alternierende Zeilen ein- oder ausstellen kann. Dazu werden zwei Kontextmenü-Einträge hinzugefügt. Der Menühandler (in diesem Fall die Javascript-Funktion alternate_context_menu) setzt den Befehl um.
<bi:bisp xmlns="http://www.w3.org/TR/REC-html40" xmlns:bi="http://xml.sap.com/2005/01/bi/wad/bisp" xmlns:jsp="http://java.sun.com/JSP/Page" >
<html >
<head >
<title >BEx Web Application</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body >
<bi:QUERY_VIEW_DATA_PROVIDER name="DP_1" >
<bi:INITIAL_STATE type="CHOICE" value="QUERY" >
<bi:QUERY value="0D_DX_M01_Q0006" />
</bi:INITIAL_STATE>
</bi:QUERY_VIEW_DATA_PROVIDER>
<bi:TEMPLATE_PARAMETERS name="TEMPLATE_PARAMETERS" />
<p >
<bi:ANALYSIS_ITEM name="ANALYSIS_ITEM_1" designwidth="400" designheight="200" >
<bi:DATA_PROVIDER_REF value="DP_1" />
</bi:ANALYSIS_ITEM>
</p>
<p >
<bi:SCRIPT_ITEM name="SCRIPT_ITEM_1" designwidth="300" designheight="70" >
<bi:SCRIPT value="biLargeData:U83SWLZ98BKCPBMOXEYJDNX54" />
</bi:SCRIPT_ITEM>
</p>
<!-- insert data providers, items and other template content here -->
</body>
</html>
</bi:bisp>
Der Inhalt des Parameters Script sieht wie folgt aus:
function alternate_context_menu(parameter, cellType, filter, parameter1, parameter2, item, dataProvider, x, y){
var commandSET_ITEM_PARAMETERS_1 = new sapbi_Command( "SET_ITEM_PARAMETERS" );
var paramITEM_TYPE = new sapbi_Parameter( "ITEM_TYPE", "ANALYSIS_ITEM");
commandSET_ITEM_PARAMETERS_1.addParameter( paramITEM_TYPE );
var paramINIT_PARAMETERS = new sapbi_Parameter( "INIT_PARAMETERS" );
var paramListINIT_PARAMETERS = new sapbi_ParameterList();
commandSET_ITEM_PARAMETERS_1.addParameter( paramINIT_PARAMETERS );
var paramALTERNATE_STYLES = new sapbi_Parameter( "ALTERNATE_STYLES",parameter );
paramListINIT_PARAMETERS.addParameter( paramALTERNATE_STYLES );
paramINIT_PARAMETERS.setChildList( paramListINIT_PARAMETERS );
var paramTARGET_ITEM_REF = new sapbi_Parameter( "TARGET_ITEM_REF", item);
commandSET_ITEM_PARAMETERS_1.addParameter( paramTARGET_ITEM_REF );
return sapbi_page.sendCommand( commandSET_ITEM_PARAMETERS_1 );
}
/* Add Contextmenu entries */
sapbi_addToMenu("Alternate Styles on", "alternate_context_menu", "X", "", "", "top", "", "");
sapbi_addToMenu("Alternate Styles off", "alternate_context_menu", "", "", "", "top", "", "")