Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: rasacani am 22.02.05 - 10:10:30

Titel: pop up im web
Beitrag von: rasacani am 22.02.05 - 10:10:30
Hallo zusammen

Ich möchte wenn ein Dokument mit einer Maske geöffnet wird eine Meldung hochkommen lassen. Unter Notes habe ich das Problem folgendermaßen gelößt:

Postopen der Maske: 
FIELD SaveOptions := 0;
User2 := User2;
User3 := @Name([CN];User2);
text :="Diese Dienstreise wurde zur Kenntnis genommen von  " + User3 ;
status :=status;
@If (  status = "Zur Kenntnis genommen" & @IsMember("[GGF]"; @UserRoles);
           @Prompt ( [OK]; "Warnung"; text );
         @Success   
        )

Für die Web-Lösung hatte ich an ein JAVA-Skript gedacht welches ich mir aus einer anderen Anwendung gesucht habe:

javascript:
var w = 480;
var h = 340;

if(document.all || document.layers) {
    w = screen.availWidth;
    h = screen.availHeight;
  }


var popW = 700;
var popH = 220;
 
var leftPos = (w-popW)/2;
var topPos = (h-popH)/2;

window.open("/Verzeichnis/Datenbank.nsf/Maske?Openform","Fenster11","screenX="+ leftPos + ",screenY=" + topPos + ",left=" + leftPos+ ",top=" + topPos + "menubar=no,resizable=yes,scrollbars=no,width=" + popW + ",height=" + popH)


Postopen erlaubt aber nur Formel oder LotusScript. Ich sollte noch dabei sagen das ich LotusScript und JAVA nur in bestehenden Anwendungen gesehen habe, teilweise auch dahinter gekommen bin was dort abläuft aber sonst keine Ahnung davon habe.


Gruß Rainer

Titel: Re: pop up im web
Beitrag von: Glombi am 22.02.05 - 10:16:16
Für JavaScript wäre das onLoad Event das richtige.

Andreas
Titel: Re: pop up im web
Beitrag von: rasacani am 22.02.05 - 10:28:59
Das mit dem onLoad Event klingt gut, aber wie bekomme ich da meine Bedingung mit unter.

@If (  status = "Zur Kenntnis genommen" & @IsMember("[GGF]"; @UserRoles);


Ich kann doch kein JAVA
Titel: Re: pop up im web
Beitrag von: Thomator am 22.02.05 - 15:32:09
Hallo Rainer,

mach Dir für die Formel mit @IsMember... ein verstecktes Feld ('isGGF' oder so) in die Maske, wo entsprechend "True" oder "False" reingerechnet wird.

Im onLoad-Ereignis dann:

var stat = document.getElementsByName("status")[0].value;
var role = document.getElementsByName("isGGF")[0].value;

if(stat == "Zur Kenntnis genommen" && role == "True"){
    alert("Warnung:\n\nDiese Dinstreise wurde....");
}

Das Gleiche, wie mit der Rollenzugehörigkeit kannst Du auch wegen dem User, der zur Kenntnis genommen hat, machen (verstecktes Feld und so).

Und so als Tipp: Wenn Du Dich mit Webentwicklung beschäftigst, arbeite Dich unbedingt in JavaScript ein. Das ist essentiell...
Gute Hilfe zur Webentwicklung (unabhängig von Notes):
http://aktuell.de.selfhtml.org/

Thomas

PS: damit Du auch versteckte Felder in die Webmaske reingerechnet bekommst, mußt Du in den Maskeneigenschaften 'HTML für alle Felder generieren' aktivieren.
Titel: Re: pop up im web
Beitrag von: rasacani am 23.02.05 - 10:42:30
Hallo

Die Hilfestellungen haben mich schon weitergebracht.

In der Maske befinden sich jetzt 2 versteckte berechenbare Felder.

User: @UserName
          er wird noch in Funktionen aktualisiert

Rolle: @If (@IsMember("[GGF]";@UserRoles);"GGF";"normal")
          was hier einmal drin ist bleit leider auch dirn.
          Ich benötige aber die Rolle des Users der das Dokument gerade öffnen will um den Vorschlag
          von Thomas zu realisieren.



Titel: Re: pop up im web
Beitrag von: Thomator am 23.02.05 - 18:36:07
Hallo,

Wenn das als Vorgabewert in einem Feld steht, dann wird bei bestehenden Werten natürlich nicht mehr überschrieben.

Vorschlag:

Mach Dir einen Berechneten Wert, den Du als Durchgangs-HTML kennzeichnest.

In dem Berechneten Wert dann den Code:

"<input type=\"hidden\" name=\"<<Feldname>>\"value=\"" + @If (@IsMember("[GGF]";@UserRoles);"GGF";"normal")
+ "\">"

Damit hast Du in der Web-Maske dann immer das Feld mit dem Wert für den Nutzer, der das Dokument öffnet.

Thomas