Domino 9 und frühere Versionen > ND7: Entwicklung
DB - Browser
(1/1)
lo:
hallo
vielleicht könnt ihr mir weiterhelfen.
ausgehend von einer notes db mit form und feldern würde ich gerne ein agent programmieren, welcher mir die feldwerte auf knopfdruck ;D in ein geöffnetes (notes fremdes) html formular kopiert.
also von einer view oder einem geöffneten dokument der erste feldwert kopiert, dann im html formular einträgt, das zweite feld kopiert im html formular einträgt, und so weiter. bis zum ende.
kennt einer von euch eine idee wie ich anfangen könnte?
vielen dank.
lo
koehlerbv:
Drei Fragen:
Wie gut bist Du in der Programmierung von Notes / Domino?
Wo soll das ganze passieren - Client oder Server?
Wozu das ganze?
Bernhard
Untitled:
Ich habe hier eine (ziemlich komplizierte aber machbare) Lösung:
Füge zuerst in deine Form ein "Microsoft Web Browser"-Control ein (Menu Create -> Object -> Control).
Nun gibts mühe das Control zu markieren, aber du kannst es in der Objektliste (unten links) auswählen. Es sollte nun "Microsoft Web Browser (Control)" heissen. Öffne den Baum mit einem Klick auf das "+". Zuoberst ist ein Event "Properties". Klicke darauf und ändere "(Name)" von "Microsoft Web Browser" zu "wbrMain".
Füge nun im "Globals"-Teil der Form im Teil "Declarations" folgende Deklaration hinzu:
--- Code: ---Dim firstNav As Boolean
--- Ende Code ---
Diese Variabel wird gebraucht, damit später das Formular nur einmal versendet wird.
Füge nun im Postopen-Event der Maske folgenden Code ein:
--- Code: ---Dim browser As Variant
Set browser = Source.GetObject("wbrMain")
firstNav = True
browser.Navigate "www.google.ch"
--- Ende Code ---
Dies bezweckt, dass das Control mal auf die Google-Seite navigiert.
Wähle nun wieder das Control in der Objektliste aus (ACHTUNG: Es heisst nun "wbrMain"). Suche das Event "Progresschange" (NavigateComplete2 hat bei mir nicht richtig funktioniert).
In diesem Event musst du folgenden Code einfügen:
--- Code: --- If progress < progressmax Then
Exit Sub
End If
With source
.Document.Forms(0).q.Value = "diesistmeinsuchstring"
'.Document.Forms(0).feld2.Value = xxx
'.Document.Forms(0).feld3.Value = yyy
If firstNav Then
.Document.Forms(0).Submit
firstNav = False
End If
End With
--- Ende Code ---
Zuerst wird hier überprüft, ob das HTML-Dokument bereits vollständig geladen wurde, falls nicht wird noch ein weiterer Schritt gewartet. Falls das Dokument vollständig geladen wurde, füllt das Script das Textfeld mit einem String und versendet das Formular. Hier wird die Variable "firstNav" gebraucht. Falls diese nicht gesetzt wird, wird durch das "Submit" erneut ein HTML-Formular geladen und das Progresschange-Event wieder aufgerufen (Endlosschleife).
Wie die Felder im Formular heissen, kannst du im Quellcode der Dokumente entnehmen.
Am Besten machst du das Control am Ende mit einer Hide-When-Formel unsichtbar, damit die Benutzer nichts vom Prozess mitkriegen.
Grüsse
Moritz
lo:
--- Zitat von: koehlerbv am 13.06.06 - 14:24:16 ---Drei Fragen:
Wie gut bist Du in der Programmierung von Notes / Domino?
formeln und so sicher, script und javascript so mittelmässig (es fehlen mir nur teilweise die ideen :-(
Wo soll das ganze passieren - Client oder Server?
client
Wozu das ganze?
leider bekomme ich keinen zugriff auf die datenbank der webappli., der db besitzer hat nen bischen angst vor notes. (keine angst, es ist firmen intern ich bau kein filler)
Bernhard
--- Ende Zitat ---
lo:
hat nicht schlecht geklappt mit deiner vorlage "untitled". danke. ich werd darauf mal aufbauen und schauen wie weit ich komme. 8)
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln