Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: geissbock am 16.03.07 - 09:05:04
-
Hallo,
bin noch wenig vertraut mit Notes-Progrmmierung fürs Web. Soll ein Formular fürs Web entwickeln. Hab also eine Makse entworfen und mit ein wenig CSS ansehnlich hinbekommen. Die Maske enthält verschieden Teilmasken, die dann die Eingabefelder enthalten. Nun soll das Formular per Button mit FileSave und FileClosewindow gespeichert werden. Dabei soll ein Agent im webquerySave entsprechend Inhalte aus dem akktuelen Dokument auslesen und neue NotesDokumente erstellen, die diese Inhalte dann erhalten. Aber nichts passiert. Warum nicht? Hier der Agent, der im WebQuerySave ausgelöst wird:
'-----------------Declarations-----------------
Dim s As New NotesSession
Dim docNew As NotesDocument
Dim docNewQuelle As NotesDocument
Dim docSelected As NotesDocument
Dim dbThis As NotesDatabase
Dim docThis As NotesDocument
Dim dbpath As String
Dim getUNID As String
Dim strproduktname As String
Dim strname As String
'-----------------Declarations-----------------
Set dbThis = s.CurrentDatabase
Set docThis = s.DocumentContext
dbpath = Replace(dbThis.FilePath, "\","/")
strproduktname = docThis.fdProduktnameTX(0)
Msgbox (strproduktname)
strname = docThis.fdNameTX(0)
Msgbox (strname)
Set docNew = dbThis.CreateDocument
docNew.Form = "fmdaten"
docNew.fdProduktnameTX=strproduktname
Call docNew.Save(True,True)
getUNID = docNew.UniversalID
Set docNewQuelle = dbThis.CreateDocument
docNewQuelle.Form = "fmQuelle"
docNewQuelle.fdNameTX=strname
Call docNewQuelle.MakeResponse( docNew )
Call docNewQuelle.Save(True,True)
By the way: Noch eine Frage zu Notes-Feldern im Web. Standardmässig ist die Größe der Felder ja sehr klein. Mit Size=100 in den HTML-Attributen kann ich die Länge ja vergrößern, aber wie kann ich die Höhe des Feldes beeinflussen, damit mehrzeilige Eingaben möglich sind?
Thanx Klaus
-
Lass das
dbpath = Replace(dbThis.FilePath, "\","/")
mal weg. Laut Hilfe werden dort Array als Parameter erwartet, Du verwendest aber nur Strings.
Kann sein, dass der Agent da aussteigt.
Ausserdem solltest Du ein Error Handling einbauen und Fehlermeldungen ausgeben.
Andreas
-
Hallo,
danke für die Antwort, aber das war es noch nicht. Der Agent ist nun mal ganz am Anfang. Ich wollte eben erst mal probieren, was da so geht, deswegen noch kein Errorhandling, aber da werd ich wohl jetzt mal investieren, denn Debuggen ist ja hier leider nicht möglich. Werden die Fehlermeldungen dann einfach im Server-Log ausgeworfen?
Gruß Klaus
-
Ich nehm bei sowas zum Beispiel diese Einträge:
Stil: width:98%; font-family:Verdana, Geneva, Arial, Helvetica, sans-serif; font-size:12px
Andere: rows="10"
für ein klassisches Textfeld
-
Hallo Thomas,
auch dafür Dank, aber irgendwie hab ich heut die Seuche. Auch das funzt bei mir nicht. Hab extra mal ne ganze neue Maske mit nur einem Textfeld erstellt und die Werte eingestellt, wie Du's beschrieben hast, aber das Feld wird trotzdem im Web nur einzeilig dargestellt.
Gruß Klaus
-
Führ Mehrzeilige Eingabefelder musst Du "Allow Multivalue" beim Textfeld aktivieren, dann kannst Du die grösse des "textarea" mit Cols= und Rows= bestimmen.
-
Hallo umi,
super. danke, das war der entscheidende Hinweis. Wenn mir jetzt noch jemand sagen kann, warum der blöde WebQuerySave-Agent keine Dokumente erzeugt, könnte ich doch noch beruhigt in Wochenende gehen.
-
Kein Errorhandling -> Kein Wochenende :-)
-
Bau mal ein Fehlerhandling ein. Das kann so aussehen:
ganz oben im initialize:
on error goto errorhandler
und ganz unten
exit sub
errorhandler:
msgbox "Fehler in Agent ..." & error & " (" & err & ") in Zeile " & erl
exit sub
Dann schreibt Dir der Agent die Fehler in die Domino-Konsole.
-
oder direkt mit print, dann siehst Du die Fehler im Web
-
Guten Morgen,
Am Freitag doch verzweifelt aufgegeben. Aber nun muss es doch weitergehen ;-))
Also das Errorhandling habe ich eingebaut. Allerdings mit dem Print, denn auf die Konsole habe ich hier keinen Zugriff. Der Fehler liegt wohl gar nicht im Agenten, der wird erst gar nicht gestartet. Ich habe in der Schaltfläche zum Speichern des Formulars, folgende Formel stehen.
@Command([FileSave]);
@PostedCommand([FileCloseWindow])
Funktioniert das im Web nicht? Es wird weder ein Dokument gespeichert noch der Agent gestartet.
Danke Klaus
-
Hallo,
ich muss leider nochmal nerven, denn ich komm einfach nicht weiter. Also nehm ich den Agenten raus aus dem WebQuerySave, wir das Dokument korrekt abgespeichert, bleibt aber offen. Füg ich nun den Agenten ein, kommt eine Meldung dass er die Seite nicht finden kann und es wird nichts gespeichert und auch weder der Agent noch eine Print Anweisung ausgeführt. Was mach ich denn hier falsch. In der Brauserleiste steht dann übrigen das hier:
http://servername/formname?OpenForm&Seq=1
Was versucht er denn hier zu öffnen?
Danke Klaus
-
Wie sind denn die Einstellungen des WQS Agenten? Der muss shared sein, auf Target='none' gestellt werden und auf Webuser gestellt sein.
Ansonsten musst Du Dir mal die Log.nsf auf dem Server ansehen. Da sollte dann im Zweifel ein Fehler vermeldet sein.
Was bekommst Du als Rückmeldung? Agent Processed?
Und ist der Button aus dem Du ihn aufrufst ein normaler Notes-Designer Button?