Neues Fenster öffnen

BusinessServerPages; Erstellung von Webapplikationen.

Neues Fenster öffnen

Postby Denise4887 » Wed Mar 05, 2003 12:42 pm

Hallo!

Ich bin überglücklich das es Euch gibt, denn genau sowas habe ich gesucht. Fehlt da nur noch die Antwort auf mein Problem:

Brauche eine möglichkeit wie ich meiner BSP Applikation ein neues Fenster aufrufe (ein Popup sozusagen in dem ich natürlich auch aus der Datenbank auslese). Gebe nämlich zu der Seite Seitenattribute über und rufe in der Seite eine Funktion auf. Hier rufe ich die Seite bis jetzt im Eventhandler unter OnInputProcessing auf:

navigation->goto_page( 'treffer.htm' ).

Jetzt will ich nur noch das die Seite eben nicht in den Frame öffnet von der ich sie aufrufe sondern in einem völlig neuen Fenster ohne Menueleiste etc...

Wäre sehr schön wenn das jemand von Euch wüsste!
Denise4887
.
.
 
Posts: 9
Joined: Wed Mar 05, 2003 12:42 pm

Postby Walter4536 » Wed Mar 05, 2003 12:52 pm

Hi Tobi,

ein kleine Frage hätte ich noch. Wie hast Du das in deiner BSP realisiert? Über einen Button oder einen link? Kannst Du das mal posten?

Gruß,
Steff
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm

Postby Denise4887 » Wed Mar 05, 2003 12:56 pm

Oh das ging ja schnell!

Ja das ist über einen Button realisiert aber ein link wäre auch OK für mich wenn es damit besser geht.
Denise4887
.
.
 
Posts: 9
Joined: Wed Mar 05, 2003 12:42 pm

Postby Walter4536 » Wed Mar 05, 2003 1:18 pm

Hallo Tobi,

über einen link wäre es vermutlich am einfachsten zu lösen. Bei einem einfachen link kannst Du das Attribut target mitgeben.

In etwa so:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. <a href="URI" target="Zielfenster">Verweistext</a>  
  2. Für Zielfenster den Namen eines definierten Framefensters angeben oder einen der folgenden reservierten Namen:
  3. _blank = Verweis in neuem Fenster öffnen,
  4. _self = Verweis im gleichen Fenster öffnen,
  5. _parent = aktuelles Frameset beim Ausführen des Verweises sprengen,
  6. _top = alle Framesets beim Ausführen des Verweises sprengen.
  7.  
GeSHi ©


Mit einem Button geht es sicherlich auch. Du müßtest dann auf das onClick-Ereignis reagieren und dann mit JavaScript ein ähnliches Verhalten produzieren. Evtl. onClick="window.open()"
Einfach mal ausprobieren, aber das sind die Lösungansätze, denn Du mußt in diesem Fall clientseitig (also dem Browser mitteilen), daß Du ein neues Fenster öffnen willst. Serverseitig ist mir nicht bekannt, daß das geht.

Gruß,
Steff
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm

Postby Denise4887 » Wed Mar 05, 2003 2:07 pm

Habe es mal versucht, jetzt checkt er nicht das er auch die Seitenattribute da auf die neue Seite übergeben soll. Vorher wusste er das ja durch das

navigation->goto_page( 'treffer.htm' ).

nehme ich an...
Denise4887
.
.
 
Posts: 9
Joined: Wed Mar 05, 2003 12:42 pm

Postby Walter4536 » Wed Mar 05, 2003 3:07 pm

Hi Tobi,

wie übergibst Du die Parameter bzw. Attribute? An Deiner Stelle würde ich über die Verwendung einer Applikationsklasse nachdenken. Auf diese Art und Weise kannst Du in den entsprechenden Events die Attribute setzen bzw. lesen und so durch die gesamte BSP-Applikation 'durchreichen'.
So kannst Du z.B. im event 'OnInputProcessing' folgendes machen:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.         application->set_attr1&#40; attribute1 &#41;.
  2.         application->set_attr2&#40; attribute2 &#41;.
  3.  
  4.         navigation->goto_page&#40; './nexpage.htm' &#41;.
  5.  
GeSHi ©


Auf der Folgeseite kannst Du dann aus der Applikationsklasse die entsprechenden Attribute wieder entnehmen und im event 'OnInitialization' für die Seite setzen.
Was man auch machen kann ist die Parameter bzw. Attribute wie folgt setzen:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. navigation->set_parameter&#40; name = 'gv_error_code'
  2.                                           value = 'technical' &#41;.
  3.  
GeSHi ©


Gruß,
Steff
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm

Postby Denise4887 » Wed Mar 05, 2003 3:53 pm

ja also Deine zweite Variante kommt mir bekannt vor bei mir sieht es wie folgt aus:

nachname = request->get_form_field( name = 'NACHNAME' ).
navigation->set_parameter( name = 'NACHNAME' ).

Lese eben aus HTML Eingabefeldern aus.

Dann habe ich in der Folgeseite in den Seitenattributen noch die Attribute drin stehen und dann geht es wenn ich eben die Seite im GLEICHEN Frame aufrufe aber in das andere Fenster das ich mit Javascript öffne da übergibt er nix rein :-(
Denise4887
.
.
 
Posts: 9
Joined: Wed Mar 05, 2003 12:42 pm

Postby Walter4536 » Wed Mar 05, 2003 4:02 pm

Hi Tobi,

dann würde ich es auf jeden Fall mit der Applikationsklasse machen, denn das müßte klappen. Du mußt eben nur darauf achten, dass Du die Applikation auf 'zustandsbehaftet' setzt.

Gruß,
Steff
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm

Postby Denise4887 » Wed Mar 05, 2003 5:30 pm

Ah ja das hört sich ja gut an, aber da ich ein ziemlicher Neuling in dem Thema bin weiß ich jetzt gerade gar nicht was Du mit Applikationsklassen meinst ...

Was ist das und wie benutze ich das?
Denise4887
.
.
 
Posts: 9
Joined: Wed Mar 05, 2003 12:42 pm

Postby Walter4536 » Wed Mar 05, 2003 5:44 pm

Hi Tobi,

wenn Du in der BSP-Applikation auf Eigenschaften gehst oder innerhalb der SE80 auf den Knoten Deiner BSP-Applikation gehst, dann siehst Du ebenfalls unter 'Eigenschaften' das Feld 'Anwendungklasse'. Dort kannst Du eine beliebige, von Dir definierte ABAP-Klasse eintragen. Wie diese Klasse aussieht bestimmst Du selbst. Wichtig ist auch, dass Du das Feld 'Zustandsbehaftest' einschaltest.

Die Klasse kannst Du nun mit jeglicher Business-Logik befüllen. Ganz am Anfang, wenn Deine BSP-Applikation startet, wird von Deiner Klasse ein Objekt erzeugt und persistent gehalten (wenn zustandsbehaftet an), d.h. Du kannst dann von jeder Seite aus auf die Methoden Deiner Klasse bzw. der Instanz (die übrigens immer 'application' heißt) zugreifen. Für die Attribute bzw. Parameter, die Du in dem Objekt halten möchtest empfiehlt es sich 'sprechende' Methodennamen zu verwenden (sogenannte getter und setter-Methoden, also z.B. getAttribute1( ). )

Schau Dir auch mal die F1-Hilfe zum Feld 'Anwendungsklasse' an. Da stehen auch noch ein paar nützliche Infos drin. Wenn Du nicht weiterkommst, Du weißt ja, wo DU uns findest ;-)

Gruß,
Steff
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm

Next

Return to BSP + BHTML

Who is online

Users browsing this forum: No registered users and 3 guests

cron