Autor Thema: InViewEdit: Wert per Script in die gew. Zelle übernehmen  (Gelesen 1245 mal)

Offline azique

  • Frischling
  • *
  • Beiträge: 40
Hallo

ich möchte für den Benutzer einer Ansicht, die inviewedit unterstützt eine Auswahlmöglichkeit schaffen - wie man es im Dokument selbst mit einer Dialoglist o. ä. machen würden.

Ich habe mir also gedacht, dass man eine DialogBox mit einer Maske anzeigen könnte, deren einziges Feld eben diese Auswahl bereitstellt. Auf diese Weise lasse ich mir in anderem Kontext z. B. eine Liste aller verfügbaren Ansichten generieren. Und die gewählten Werte werden dann in das Dokument übernommen.

Jetzt ist die Übernahme des gewählten Wertes mein Problem: kann ich diesen Wert (oder überhaupt irgendeinen beliebigen Text) per Script in die Zelle schreiben, die der Benutzer gerade für die Eingabe verwendet?

Muss ich dazu den QUERY_REQUST abbrechen und den Wert an den SAVE_REQUEST senden?

Vielleicht habt ihr ja eine zündende Idee, wie ich das so oder auf andere Weise umsetzen kann. Zur Not habe ich die Möglichkeit, die auch in der Designer-Hilfe zu diesem Thema beschrieben wird: eingegebenen Wert im VALIDATE_QUERY prüfen und evtl. eine Fehlermeldung mit den erlaubten Werten ausgeben. Das ist mir aber eigentlich einen Schritt zu spät. Ich möchte eben vorher wissen, was erlaubt ist und direkt auswählen können.

edit: Lossa hatte dazu hier http://atnotes.de/index.php?topic=31092.msg195963#msg195963 etwas geschrieben, was die Einschränkung anging, dass kein echtes Drop-Down verfügbar ist.

Vielen Dank schon mal im Voraus
« Letzte Änderung: 13.02.07 - 12:19:47 von azique »
verbindlichst,
Johannes Pietsch


____________________
Ausbildung zum Fachinformatiker/Anwendungsentwicklung am 05.02.07 erfolgreich beendet.
Datenbankentwicklung für Lotus Notes 6.5, 7.0

Offline azique

  • Frischling
  • *
  • Beiträge: 40
Re: InViewEdit: Wert per Script in die gew. Zelle übernehmen
« Antwort #1 am: 13.02.07 - 13:13:55 »
Ich habe es jetzt folgendermaßen gemacht und es funktioniert:

Code
select case Requesttype
case QUERY_REQUEST:
	select case Colprogname(0):
	case "dieSpalteAufDieEsAnkommt": ' nur in dieser Spalte den Wert per Script setzen
		dim wert as variant
		Dim ws As New NotesUIWorkspace
		Dim auswahl As New NotesDocument(db)
		auswahl.Auswahlwerte = Split("Firmenwagen:Zug",":")
		auswahl.FeldFuerAuswahl = Columnvalue(0)
			
		If ws.DialogBox("MaskeMitFeldFürAuswahl",True,True,False,False,False,False,"Fahrzeug wählen",auswahl) Then
			wahl = auswahl.FeldFuerAuswahl
			Call Inviewedit(Source, SAVE_REQUEST, Colprogname, wahl, Continue)
		End If

		continue = False ' damit nicht noch nachher in die Zelle geschrieben werden kann, funktioniert. Allerdings:
		Call ws.viewrefresh() ' aktualisiert die Ansicht, damit die Wertänderung gleich angezeigt wird
	end select
end select

Ich hoffe, das hilft denen, die vor einem ähnlichen Problem stehen.

Etwaige Ungereimtheiten im Code kommen vom Kopieren, einfach anpassen, damit es passt ;)

edit: Achja, ich würde euch empfehlen, darauf zu achten, dass ihr continue = False nicht vergesst, wenn ihr eine Spalte bearbeiten wollt, die mehr als ein Feld repräsentiert ;) Das geht mit dieser hier dargestellten Vorgehensweise nämlich auch hervorragend.
Wenn eure Spalte bspw. Datum+", "+Zeit anzeigt, könnt ihr diese beiden Felder mit einer Dialogbox einzeln füllen. Aber wie gesagt: Continue = False nicht vergessen, sonst schmiert euch Notes ab, weil es versucht, eine Spalte zu bearbeiten, die nicht eindeutig einem Feld zugeordnet ist. Jedenfalls glaube ich, dass es daran liegt.

Danke für die Aufmerksamkeit :)
« Letzte Änderung: 13.02.07 - 15:27:40 von azique »
verbindlichst,
Johannes Pietsch


____________________
Ausbildung zum Fachinformatiker/Anwendungsentwicklung am 05.02.07 erfolgreich beendet.
Datenbankentwicklung für Lotus Notes 6.5, 7.0

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz