Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Gruenkohl am 11.08.05 - 10:37:01

Titel: im uidoc ein Kombinationsfeld füllen
Beitrag von: Gruenkohl am 11.08.05 - 10:37:01
Guten Morgen zusammen,

versuche in einem PostOpen ein Kombinationsfeld im uidoc zu füllen. Aber das will nicht so wir es will.  :-\
Das Feld ist immer leer. Ich habe in dem Feld die Haken gesetzt für "Auswahl bei Dokumenten.....aktualisieren". Das bringt aber auch nichts. ???

Wenn ich aus dem Feld ein Textfeld mache, werden die Werte angezeigt.

Hat da jemand eine Idee?

Ich habe dann versucht das Dokument vor dem öffnen zu füllen (als Doc) und anschließen zu öffnen, aber das habe ich auch nicht hinbekommen, da ich im dem Script eine Schleife habe, mit der ich dynamische andere Felder fülle.

Da wären wir auch bei einer weiteren Frage, wie kann ich einen Feldnamen im Backend dynamisch angeben?

Danke und Gruss
Andreas
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Axel am 11.08.05 - 10:42:36
Hi,

du musst deine Werte für das Kombi-Feld in ein verstecktes Textfeld (mit Mehrfachwerten) schreiben und dieses als Auswahl im Kombi-Feld angeben.

Da wären wir auch bei einer weiteren Frage, wie kann ich einen Feldnamen im Backend dynamisch angeben?

Das verstehe ich jetzt nicht so ganz. Kannst du das bitte mal etwas näher erläutern.


Axel
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Glombi am 11.08.05 - 10:44:04
Also mit
 Call Source.FieldSetText( "Feldname", "Feldwert")
geht es ganz einfach.

Andreas
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Gruenkohl am 11.08.05 - 10:50:03
Hi Axel,

hier ein Beispiel:
Code
Set Doc = View.GetFirstDocument
Do until Doc is nothing
  For i = 1 to 5
    doc2.Feldx+(i) = Doc.Feld1
    doc2.Feldy+(i) = Doc.Feld2
  Next
Loop
Im uidoc geht das ja, hier ein Beipiel:
Code
Set view = db.GetView( "vwKategoriegueltig" )
	Set doc = view.GetFirstDocument
	zaehler = 0
	While Not ( doc Is Nothing ) And zaehler < 30
		zaehler = zaehler + 1
		Call source.fieldsettext("txtUmsatzKategorie_"+Left$(zaehler, 2),doc.txtKategorieBezeichnung(0))
		Call source.fieldsettext("txtUmsatzKategorieBeschr_"+Left$(zaehler, 2),doc.txtKategorieBeschreibung(0))
		Call source.fieldsettext("txtUmsatzKategorieEinheit_"+Left$(zaehler, 2),doc.diaKategorieEinheit(0))
		Call source.fieldsettext("txtUmsatzKategorieUID_"+Left$(zaehler, 2),doc.txtKategorieUID(0))
		Call source.fieldsettext("txtUmsatzKennzeichen_"+Left$(zaehler, 2),doc.optKategorieKennzeichen(0))
Set doc = view.GetNextDocument( doc )
Wend
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Axel am 11.08.05 - 10:54:51
Hi,

so oder so ähnlich sollte es gehen:

Dim item As NotesItem

Set Doc = View.GetFirstDocument
Do until Doc is nothing
 For i = 1 to 5

   Set item = doc.ReplaceItemValue( doc2.Feldx+(i), Doc.Feld1 )
   Set item = doc.ReplaceItemValue( doc2.Feldy+(i), Doc.Feld2 )

 Next
Loop

Axel
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Gruenkohl am 11.08.05 - 11:05:26
@Axel:

Das habe ich auch schon versucht. Es sind aber dann alle Felder leer.
In der Hilfe stand auch was davon, dass man das Doc speichern muss, bevor die Werte übernommen werden. Das wollte ich eigentlich nicht habe es aber getestet.


Was du zum füllen im uidoc geschrieben hast, habe ich versucht aber dann muss ich erst F9 drücken, bevor die Werte sichtbar werden.
Diese Lösung hatte ich auch schon mit einem DBLookup um die Werte zu ziehen (also danach noch F9 drücken).

Wenn die Felder, die den Suchschlüssel dafür enthalten, über dem Auswahlfeld stehen, müsste es doch eigentlich klappen oder nicht? ???

Hat mich sehr gewundert das es nicht ging. Die Werte aus dem oberen Feldern waren bis zum drücken von F9 nicht verfügbar.
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Glombi am 11.08.05 - 11:12:54
Das
 doc2.Feldx+(i)
funktioniert nicht. Verwende stattdessen

call doc2.ReplaceItemValue("Feldx"& cstr(i), Doc.Feld1(0) )

Andreas
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Axel am 11.08.05 - 11:22:51
Das
 doc2.Feldx+(i)
funktioniert nicht. Verwende stattdessen

call doc2.ReplaceItemValue("Feldx"& cstr(i), Doc.Feld1(0) )

Auweia, das Brett war aber ziemlich groß. So wie ich das geschrieben hatte konnte es ja nicht gehen. **Grumml**  :-\  Das hat das Fehlerteufelchen ganz gewaltig zugeschlagen.  >:D

Was du zum füllen im uidoc geschrieben hast, habe ich versucht aber dann muss ich erst F9 drücken, bevor die Werte sichtbar werden.

Versuch's mal mit

If Source.EditMode Then Call Source.Refresh

im QueryOpen - Event und PostModeChange - Event der Maske.

Axel
 
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Gruenkohl am 11.08.05 - 11:32:15
@Axel:
Super, das refresh im PostModeChange hat was gebracht. ;D
Im QueryOpen hatte ich eine Fehlermeldung bekommen.

Danke

@Glombi:
Danke, werd das mal testen. Wenn es nicht klappt oder ich zu blöd bin, mach den Thread noch mal auf.

Gruss Andreas
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Axel am 11.08.05 - 11:40:58
Im QueryOpen hatte ich eine Fehlermeldung bekommen.


Was für eine Fehlermeldung?


Axel
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Gruenkohl am 11.08.05 - 11:52:34
Property or Method is not available during QueryOpen: Refresh
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Axel am 11.08.05 - 11:57:17
Hi,

sorry, ich meinte auch PostOpen und nicht QueryOpen.


Axel
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Gruenkohl am 11.08.05 - 12:12:15
Jut, aber im PostModeChange hat gereicht, ich habe jetzt nur das Problem, dass es bei den ersten drei Feldern klappt und bei denen danach (noch 2) bekomme ich die Meldung "Eintrag im Index nicht gefunden". ???

Wenn ich bei den Feldern mit @IF abfrage ob das Feld mit dem Suchkey gefüllt ist, sind alle Felder leer. ???
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Axel am 11.08.05 - 12:45:57
Hi,

ist bei den Feldern die Option "Auswahl bei Dokumentenaktualisierung aktualisieren" gesetzt?


Axel
Titel: Re: im uidoc ein Kombinationsfeld füllen
Beitrag von: Gruenkohl am 11.08.05 - 12:52:55
Verflixt, dachte das hätte ich überall gesetzt.  :-[
Danke