Autor Thema: Kombinationsfeld zeigt Wert nicht an  (Gelesen 2384 mal)

Offline SVU

  • Frischling
  • *
  • Beiträge: 18
  • Geschlecht: Männlich
Kombinationsfeld zeigt Wert nicht an
« am: 04.12.06 - 10:24:22 »
Hallo zusammen!

Ich bin neu hier im Forum und hab über die Suche nichts zu meinem Problem gefunden. Also starte
ich mal eine eigene Anfrage:

Ich öffne über eine Aktion in einer View ein Dialogfenster, in dem ich per Script Felder im Profil
ändere. Im Postopen des Formulars, das für das Dialogfenster verwendet wird, wird der aktuelle
Wert aus dem Profil ausgelesen und in ein Felder eingetragen.
Das Problem ist: Das Felde (Kombinationsfeld) zeigt den Wert nicht an! Erst wenn ich mit der Maus
in das Feld klicke, taucht der Wert plötzlich auf.

Hier mal der Code aus dem Postopen:

Code
Sub Postopen(Source As Notesuidocument)
	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim doc As NotesDocument
	Dim pdoc As NotesDocument
	Dim profileSubstitute As String
	Dim profileStatus As String
	
	Set doc = Source.Document
	Set db = session.CurrentDatabase
	Set pdoc = db.GetProfileDocument("Profil")
	profileSubstitute = pdoc.GetItemValue("f_Subst_" & doc.GetItemValue("f_Department")(0))(0)
	profileStatus = pdoc.GetItemValue("Subst_" & doc.GetItemValue("f_Department")(0) & "_act")(0)
	Call doc.ReplaceItemValue("f_Vertretung",profileSubstitute)
	Call doc.ReplaceItemValue("f_Aktiviert",profileStatus)
	Call Source.RefreshHideFormulas
End Sub

Das Feld f_Department ist bearbeitbar und enthält einen Vorgabewert.
Das Feld f_Vertretung soll die aktuell eingestellte Vertretung der in f_Department gewählten
Abteilung anzeigen. Tut es aber erst, nach dem man reinklickt!

Der gleiche Code ist auch im Onchange des Feldes f_Department hinterlegt. Da klappt es auch nicht.
Seltsamerweise funtioniert es im Template, aber nicht in der Datenbank, obwohl in beiden doch
der selbe Code drin steckt.  ???

Zur Info:
Notes Client: 6.5.5
Notes Server: 6.5.4

Bitte helft mir, ich weiß hier nicht mehr weiter!

Gruß
Sascha
« Letzte Änderung: 04.12.06 - 16:40:14 von SVU »
Gruss
Sascha

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Kombinationsfeld zeigt Wert nicht an
« Antwort #1 am: 04.12.06 - 15:18:47 »
Du änderst Werte im Backend, speicherst diese nicht, lädst die Werte im Frontend nicht neu und wunderst Dich, dass Du nichts siehst????

Aus der Designer-Hilfe zu NotesUIDocument.Reload:
Zitat
Refreshes the current document with any changes that have been made to the corresponding back-end document. Refreshing the current document updates its representation in memory, as well as visually on the workspace, to reflect the changes that have been made to the back-end document.
Speicher mal doc und schau, obs dann klappt. Wenn nicht, hau auch noch ein source.Reload hinein.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline SVU

  • Frischling
  • *
  • Beiträge: 18
  • Geschlecht: Männlich
Re: Kombinationsfeld zeigt Wert nicht an
« Antwort #2 am: 04.12.06 - 16:07:35 »
Hallo m3!

Danke für deine Antwort!

Ich hab vergessen zu erwähnen, daß ich's auch schon im Frontend versucht hab
(Source.FieldSetText statt doc.ReplaceItemValue). Das hat leider auch nicht geklappt!
Auch ein Source.Refresh und ein Source.Reload hab ich schon ausprobiert - ohne Erfolg.
Speichern kann ich das doc nicht, weil ich als zugrunde liegendes Dokument ein temporäres
Wegwerf-Dokument verwende. Die Änderungen werden über einen Button per Skript
direkt ins Profil zurückgeschrieben. Außerdem ist es sehr seltsam, daß exakt genau der
gleiche Code im Template funktioniert, nur eben nicht in der Datenbank.

Der Wert wird ja scheinbar auch ins Feld geschrieben, sonst würde er ja nicht angezeigt werden,
wenn ich ins Feld reinklicke.

Ich fürchte, ich muß mir für das Dialogfenster einen anderen Ansatz einfallen lassen.
Sehr mystetriös, das ganze  :-:

Gruß
Sascha
Gruss
Sascha

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Kombinationsfeld zeigt Wert nicht an
« Antwort #3 am: 04.12.06 - 16:11:01 »
Das kann nur funktionieren wenn du deine Werte schon beim Aufrufen der Dialogbox. Also eine Ecke vorher in die Felder einträgst.

@Martin Souce.refresh und Source.reload funktionieren in Dialogboxen nicht wirklich.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline SVU

  • Frischling
  • *
  • Beiträge: 18
  • Geschlecht: Männlich
Re: Kombinationsfeld zeigt Wert nicht an
« Antwort #4 am: 04.12.06 - 16:38:48 »
Hallo Thomas!

Vielen Dank für den Tip!

Ich hab den Code jetzt ins Queryopen verschoben. Ich mußte dann nur die Abteilung (f_Department)
fest vorgeben, da der Vorgabewert zu diesem Zeitpunkt wohl noch nicht aus dem Feld ausgelesen
werden kann.

Es funktioniert!

(Mich wundert nur, daß es im Template vorher auch funktioniert hat  :-\)

Auf jeden Fall nochmals danke an euch beide!

Gruß
Sascha
Gruss
Sascha

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Kombinationsfeld zeigt Wert nicht an
« Antwort #5 am: 04.12.06 - 16:51:28 »
Das kann nur funktionieren wenn du deine Werte schon beim Aufrufen der Dialogbox. Also eine Ecke vorher in die Felder einträgst.

@Martin Souce.refresh und Source.reload funktionieren in Dialogboxen nicht wirklich.
Thomas, jup. Das Dialogbox hab ich wieder mal überlesen. Sorry.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz