UB BRAUNSCHWEIG
Symbolfoto
  • Impressum
  • Startseite
  • allegro-C von A-Z
  • Druckversion


a30 - Plattformunabhängiges Programm zur Nutzung von allegro-Datenbanken im Netz auf der Basis des Systems "Adobe Flex"


Anhang 3: Eigene Jobs einbinden

1. HTML-Menüdatei
Nur zwei Dinge werden gebraucht, um einen Job  abc.job  per Menü anzubinden:

Ein Eintrag im Menü, d.h. in der Datei  a30men.htm  oder  a30son.htm  in folgender Form:
     
<a href="event:X abc">[Bezeichnung von Job abc]</a>

Eine avanti-Jobdatei  abc.job, mit beliebigem Inhalt aus avanti-FLEX-Befehlen.

In dem Job verwendet man die Codes aus Anhang 1, um Teile der Antwort bestimmten Bereichen im a30-Fenster zuzuordnen, d.h. man schreibt darin z.B. so etwas wie

write "_!_POP Es ist ein Fehler aufgetreten" n

oder

write "_!_STA Alles OK" n

Die Codes mit ihren Inhalten können in beliebiger Reihenfolge auftreten.
Wenn ein Code mehrfach auftritt, wird der letzte der Inhalte wirksam, außer im Fall _!_POP.
Vollautomatisch an jeden Job übergeben werden die folgenden Variablen
#urN = interne Nummer des aktuellen Satzes
#urS = Suchbefehl der zuletzt gebildeten Ergebnismenge
  und aus der a30_ini.php:
#uDP = StandardAnzeigeparameter (default d-a30)
#uSO = Sortierpunkte
#uJO = Jobdateiname
#uIP = IP-Nummer des Client
d.h. diese können Sie dann im Job sofort verwenden.

Andere kann man auf folgende Weise durch Anhängen an den Aufruf übergeben:
X abc--V123=xyz--Vubc=...
Im  abc.job  kommen diese dann mit # anstelle von 
V an, d.h. als #123 und #ubc.
Sonderfall:  Mit  ...--Vubc=INT--... kann man den Inhalt des INT-Tabs in #ubc übergeben.
Darin stehen dann i.a. einige Datenfelder. Die Zeilen werden mit ;# aneinandergehängt!
Mit der schlichten Sequenz
var #ubc
ins 

kann man hernach im Job die Datenfelder aus INT in den gerade geladenen oder leeren aktuellen Datensatz einsortieren lassen.

2. Methode zum Aufruf von JavaScript-Funktionen aus ActionScript

Der Kern von a30 ist das ActionScript-Programm  a30.swf.
Es kann nur aus einer HTML-Seite heraus gestartet werden, in die es auf eine genau definierte Weise eingebaut ist.
Solche HTML-Seiten kann man mehrere haben, in denen das Programm a30 mit unterschiedlichen Optionen gestartet wird (Anh.4).

Die HTML-Seite kann zusätzliche JavaScript-Funktionen enthalten. Diese kann man aus dem ActionScript heraus aufrufen und ihnen auch Variablen übergeben, z.B. zwecks Validierung.

Eine solche JavaScript-Funktion ist in  demo.htm  eingebaut:

function a30s(urL,urN,urS)
{
 ...
oder aber enthalten in a30.js, das in demo.htm einbezogen wird mit
<script src="a30.js" language="javascript"></script>


Dabei sind 
   urL : eine relative oder absolute URL
   urN : die interne Nummer des aktuellen von a30 angezeigten Satzes
   urS : der Suchbefehl, mit dem die letzte Ergebnismenge zusammengestellt wurde.

Diese Funktion kann man in einer eigenen  name.htm  frei modifizieren.
In der Funktion  a30s()  kann, aber muß nicht, von den Variablen urN und urS Gebrauch gemacht werden.
Ein schönes Verfahren ist es, wenn  
a30s()  ein neues, kleineres Fenster öffnet und dort die Ergebnisdaten des Aufrufs anzeigen läßt.
Das ist in  demo.htm  so angelegt:

<script language="javascript">
  var Fenster=0;

  function a30s(urL,urN,urS) // Formular in eigenem (kleineren) Fenster aufmachen
  {
// falls Fenster schon offen, zumachen, dann neu oeffnen
   if(Fenster!=0 && Fenster.closed==false) Fenster.close();
   if(urL.indexOf('?')==-1)
    Fenster = window.open(urL +"?urN=" + urN +"&urS=" +urS,"_blank","width=400,height=300");
   else
    Fenster = window.open(urL +"&urN=" + urN +"&urS=" +urS,"_blank","width=400,height=300");
   Fenster.focus();
  }
</script>

Aufgerufen wird die Funktion aus a30 heraus, indem man in eine HTML-Menüdatei (siehe 1.) einen Link folgender Form einbringt, hier mit urL=grec.php:

<a href="event:S:grec.php">Satz in eigenem Fenster anzeigen</a>

Die Variablen urN und urS liefert a30 automatisch selber an die Funktion a30s().
Handelt es sich, wie hier, um eine relative URL, also eine ohne http:// vorn, dann gilt als Arbeitspfad derjenige der Datenbank, nicht derjenige von a30, obwohl die HTML-Datei dort liegt, aus der heraus a30 aufgerufen wird. Das wird erreicht, indem a30 selber vor die Angabe  abc.php  noch  ../dbname/  setzt, wenn es sich bei  dbname  um den Kurznamen der Datenbank in der Datei  angebot.txt  handelt. (Das Skript  grec.php  gehört zu PHPAC.)
Einen Link wie diesen kann man auch einbauen in die Anzeige eines Datensatzes unter dem Tag  EXT, wofür standardmäßig die Parameterdatei  d-a30.apr zuständig ist.
Anm.: Der IE und Opera machen kein neues, kleineres Fenster auf, sondern eine neue Registerkarte! Auf der JavaScript-Ebene arbeiten Browser nach wie vor nicht alle identisch.
Evtl. muß man in den Einstellungen des Browsers dafür sorgen, daß er popups zuläßt.

ein Kapitel zurück zurück zum Inhaltsverzeichnis ein Kapitel vor




[i] zuletzt aktualisiert: 07.03.2012
Email: ub@tu-bs.de