Übersicht Bei der Gestaltung von Drucktasten setzt das S10 Framework im Prinzip keine Grenzen, so dass Sie entweder den Standardbutton verwenden und anpassen können, oder selbst Elemente definieren, durch die der Benutzer eine Aktion auslösen kann. In der Regel soll eine Methode in der jeweiligen S10 ABAP-Klasse aufgerufen werden, dies erreichen Sie durch den Aufruf der JavaScript-Methode S10Apply() . HTML-Code für einen Pushbutton: <button type='button' class='button' onclick='S10Apply("mybapmethod")'> Click me </button> Aufgerufene ABAP-Methode: method myabapmethod * Implementation endmethod Hinweise:
|
Beispiel 1: Diagramme generieren (Das komplette Beispiel finden Sie hier: Charts und Diagramme) HTML-Code: <button type="button" class="toolbarbutton" onclick="S10Apply('generate_random');"> zufällige Daten generieren </button> Die ABAP-Methode erzeugt einige zufällige Daten, aus denen später im HTML ein Diagramm erzeugt wird: method generate_random. data: o_rand type ref to cl_abap_random_int, seed type i. " random number sequence. seed = cl_abap_random=>seed( ). cl_abap_random_int=>create( exporting seed = conv i( sy-uzeit ) min = 5 max = 150 receiving prng = o_rand ). diagram_01 = 'A;' o_rand->get_next( ) ';' o_rand->get_next( ). diagram_01 = diagram_01 '|B;' o_rand->get_next( ) ';' o_rand->get_next( ). diagram_01 = diagram_01 '|C;' o_rand->get_next( ) ';' o_rand->get_next( ). endmethod. |
Beispiel 2: Kundenkontakt ändern (Aus dem S10 Demosystem: CIS Demo mit Fiori Launchpad) HTML-Code: (Hier wird neben dem Methodennamen zusätzlich ein Parameter mitgegeben, in diesem Fall die ID des ausgewählten Kundenkontakt.) <button type="button" class="button" style="float:right;" onclick="S10Apply('change_visit', document.getElementById('visitid1').value)"> Bearbeiten </button> Die ABAP-Methode : * call up visit change screen method change_visit. * create separate visit object for change data: mychangevisit type ref to visit. create object mychangevisit. mychangevisit->kunnr = kunnr. mychangevisit->s10setuservalue( exporting attrname = 'visitid' uservalue = s10actionparameter( ) ). * visit date for 'delete' message data: vdatetime_long type string. vdatetime_long = mychangevisit->s10getuservalue( 'vdatetime_long' ). mychangevisit->change( ). * re-determine next visit call method s10session->mymain->('BUILD_MYCUSTOMERS'). next_visit( ). * re-determine dependent fields case mychangevisit->visitid. when myvisit1->visitid. myvisit1->s10rebuild( ). when myvisit2->visitid. myvisit2->s10rebuild( ). when myvisit3->visitid. myvisit3->s10rebuild( ). endcase. if mychangevisit->visitid is initial. s10infomessage( s10localize( id = 'visit_deleted_1') ). endif. endmethod. |
Beispiel 3: Toolbar für Kundendaten HTML-Code: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=400"> <link rel='stylesheet' type='text/css' href='../../../style/s10.style.css'> <link rel='stylesheet' type='text/css' href='../../../style/custom.style.css'> <script src='../../synactiveS10/synactiveS10.java.js'></script> <title>Kunde</title> </head> <body style="width:100%; margin:0px; padding:0px;" onload='init();' class="colorscheme9"> <div class="headerarea" style="width: 100%; padding:10px;"> <b>Bearbeiten Kunde</b> <br /> <br /> <button type="button" class="toolbarbutton" onclick="S10Apply('display');"> Anzeigen </button> <button type="button" class="toolbarbutton" onclick="S10Apply('change');"> Ändern </button> <button type="button" class="toolbarbutton" onclick="S10Logoff();"> Beenden </button> </div> <div style="padding:10px"> <label class="label output" name="kunnr" for="kunnr"></label><br> <input type="text" class="input" required name="kunnr" id="kunnr" style="width: 140px;"> <span class="output" name="kunnr@text"></span> </div> </body> </html> |
Komponente S10 Framework |