Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Toady am 28.01.03 - 14:57:09

Titel: Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: Toady am 28.01.03 - 14:57:09
Hallo Leute,

ich habe folgendes Problem:

Im geöffneten Doc übernehme ich per uidoc.FieldGetText den Inhalt eines Feldes(Typ: Kontrollkästchen) und füge ihn dann per uidoc.FieldSetText in ein anderes Doc (gleiche Form) ein. Im neuen Doc bleiben die ausgewählten Kästchen aber immer leer; es wird also kein Inhalt übernommen. Habe keinen blassen Dunst warum. Bei allen anderen Feldtypen (Datum, Text etc.) geht das ohne Probleme.
Hoffe Ihr könnt mir helfen.

Danke!
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: klaussal am 28.01.03 - 14:59:26
... und was sagt der debugger ?

... und was sagt: Dokument -> Eigenschaften ?

sind die felder im dok gefüllt ?
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: Toady am 28.01.03 - 15:08:47
Hallo klaussal,

also der Debugger sagt gar nichts. Es werden einfach keine Werte übernommen.

Ist eine ReservierungsDB an der ich arbeite. Wenn ein neues Doc zur Reservierung eines Raumes angelegt wird, kann ich für mehrere Tage reservieren. Zusätzlich kann ich über Auswahl (Kontrollkästchen) die Einrichtung des Raumes bestimmen. Speichere ich das Doc ab, so wird für jeden Termin ein eigenes Doc angelegt. Dabei werden alle Werte übernommen nur die des Kontrollkästchens nicht. Hab keine Ahnung warum!

Danke und Gruß
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: klaussal am 28.01.03 - 15:13:08
im debugger kann man sehen, ob die werte übernommen werden.

sind die feldeigenschaften ok ?
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: Till_21 am 28.01.03 - 15:13:14
Im geöffneten Doc übernehme ich per uidoc.FieldGetText den Inhalt eines Feldes(Typ: Kontrollkästchen) und füge ihn dann per uidoc.FieldSetText in ein anderes Doc (gleiche Form) ein

wie kann man zwei versch. uidocs gesetzt haben ?
bist du sicher, dass du nicht ins gleiche doc zurueckschreibst ?

gruss
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: klaussal am 28.01.03 - 15:18:41
@till_21

... wenn angeblich alle anderen werte übernommen werden, dann muss er ja zwei verschiedene docs ansprechen, oder  ???
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: Thomator am 28.01.03 - 15:27:19
Tach,
@ Till_21 & klaussal
man kann zwei verschiedene uidocs im Zugriff halten, Du musst doch nur verschiedene Variablen darauf setzen...


@Today:
Versuch doch mal, mit
Set NotesItem = doc.GetFirstItem("Feldname")
den Zugriff auf das neue Feld herzustellen, und den Wert dann mit Item.Values(0) = Variable mit dem Wert
in das neue Feld zu schreiben. Dann noch ein uidoc.reload und fertig. Vielleicht gehts so.
Gruss

Thomas
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: Toady am 28.01.03 - 15:28:24
@klaussal

Ja, ich hab im Debugger die Werte in den Variablen überprüft - sind leider leer. Das ist ja das Problem, ich weiß halt nicht warum er die Werte daraus nicht übernimmt.


@till21

Mittels 'Set uidoc=uiws.ComposeDocument("","DB","Form")' erstelle ich ein zweites Doc in dem die Werte per 'Call uidoc.FieldSetText()' gespeichert werden.
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: Thomator am 28.01.03 - 15:31:42
@Today
Poste doch mal den Quelltext, da ist evtl.das Prob schneller gefunden...
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: Toady am 28.01.03 - 15:51:26
Hallo Thomator,

im folgenden der Quelltext. Vielleicht ist nur ne Variable falsch deklariert oder so. Keine Ahnung, bin auch noch nicht so lange als Notes-Entwickler dabei - Script erst seit kurzem.

Sub Click(Source As Button)
   Dim feld1 As String
   Dim feld2 As String
   Dim feld3 As String
   Dim feld4 As String
   Dim feld5 As String
   Dim feld6 As String
   Dim feld7 As String
   Dim feld8 As String
   Dim feld9 As String
   
   Dim uiws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Set uidoc = uiws.CurrentDocument
   
   feld1 = uidoc.FieldGetText("Raum")
   feld2 = uidoc.FieldGetText("Titel")
   feld3 = uidoc.FieldGetText("Anzahl")
   feld4 = uidoc.FieldGetText("Ressourcen")
   feld5 = uidoc.FieldGetText("Bestuhlung")
   feld6 = uidoc.FieldGetText("sonstiges")
   feld7 = uidoc.FieldGetText("Meldung")
   feld8 = uidoc.FieldGetText("date1")
   feld9 = uidoc.FieldGetText("time1")
   feld10 = uidoc.FieldGetText("date2")
   feld11 = uidoc.FieldGetText("time2")
   feld12 = uidoc.FieldGetText("date3")
   feld13 = uidoc.FieldGetText("time3")
   feld14 = uidoc.FieldGetText("date4")
   feld15 = uidoc.FieldGetText("time4")
   
   If  feld8 <> "" And feld9 <> "" Then
      
      Set uidoc = uiws.ComposeDocument("","RaumRes.nsf","Reservierung")
      
      Call uidoc.FieldSetText("Raum", feld1)
      Call uidoc.FieldSetText("Datum", feld8)
      Call uidoc.FieldSetText("TimeRange", feld9)
      Call uidoc.FieldSetText("Titel", feld2)
      Call uidoc.FieldSetText("Anzahl", feld3)
      Call uidoc.FieldSetText("Ressourcen", feld4)
      Call uidoc.FieldSetText("Bestuhlung", feld5)
      Call uidoc.FieldSetText("sonstiges", feld6)
      Call uidoc.FieldSetText("Meldung", feld7)
      
      Call uidoc.save
      Call uidoc.close
      
   Elseif feld2 = "" And feld3 <> "" Then
      Msgbox"Fehler! Kein Datum für Raumreservierung angegeben.",16
      Exit Sub
      
   Elseif feld2 <> "" And feld3 = "" Then
      Msgbox"Fehler! Keine Zeit für Raumreservierung angegeben.",16
      Exit Sub
      
   Else
      Exit Sub
      
   End If
   
   If  feld10 <> "" And feld11 <> "" Then
      
      Set uidoc = uiws.ComposeDocument("","RaumRes.nsf","Reservierung")
      
      Call uidoc.FieldSetText("Raum", feld1)
      Call uidoc.FieldSetText("Datum", feld10)
      Call uidoc.FieldSetText("TimeRange", feld11)
      Call uidoc.FieldSetText("Titel", feld2)
      Call uidoc.FieldSetText("Anzahl", feld3)
      Call uidoc.FieldSetText("Ressourcen", feld4)
      Call uidoc.FieldSetText("Bestuhlung", feld5)
      Call uidoc.FieldSetText("sonstiges", feld6)
      Call uidoc.FieldSetText("Meldung", feld7)
      
      Call uidoc.save
      Call uidoc.close
      
   Elseif feld10 = "" And feld11 <> "" Then
      Msgbox"Fehler! Kein Datum für Raumreservierung angegeben.",16
      Exit Sub
      
   Elseif feld10 <> "" And feld11 = "" Then
      Msgbox"Fehler! Keine Zeit für Raumreservierung angegeben.",16
      Exit Sub
      
   Else
      Exit Sub
      
   End If
   
   If  feld12 <> "" And feld13 <> "" Then
      
      Set uidoc = uiws.ComposeDocument("","RaumRes.nsf","Reservierung")
      
      Call uidoc.FieldSetText("Raum", feld1)
      Call uidoc.FieldSetText("Datum", feld12)
      Call uidoc.FieldSetText("TimeRange", feld13)
      Call uidoc.FieldSetText("Titel", feld2)
      Call uidoc.FieldSetText("Anzahl", feld3)
      Call uidoc.FieldSetText("Ressourcen", feld4)
      Call uidoc.FieldSetText("Bestuhlung", feld5)
      Call uidoc.FieldSetText("sonstiges", feld6)
      Call uidoc.FieldSetText("Meldung", feld7)
      
      Call uidoc.save
      Call uidoc.close
      
   Elseif feld12 = "" And feld13 <> "" Then
      Msgbox"Fehler! Kein Datum für Raumreservierung angegeben.",16
      Exit Sub
      
   Elseif feld12 <> "" And feld13 = "" Then
      Msgbox"Fehler! Keine Zeit für Raumreservierung angegeben.",16
      Exit Sub
      
   Else
      Exit Sub
      
   End If
   
   If  feld14 <> "" And feld15 <> "" Then
      
      Set uidoc = uiws.ComposeDocument("","RaumRes.nsf","Reservierung")
      
      Call uidoc.FieldSetText("Raum", feld1)
      Call uidoc.FieldSetText("Datum", feld14)
      Call uidoc.FieldSetText("TimeRange", feld15)
      Call uidoc.FieldSetText("Titel", feld2)
      Call uidoc.FieldSetText("Anzahl", feld3)
      Call uidoc.FieldSetText("Ressourcen", feld4)
      Call uidoc.FieldSetText("Bestuhlung", feld5)
      Call uidoc.FieldSetText("sonstiges", feld6)
      Call uidoc.FieldSetText("Meldung", feld7)
      
      Call uidoc.save
      Call uidoc.close
      
   Elseif feld14 = "" And feld15 <> "" Then
      Msgbox"Fehler! Kein Datum für Raumreservierung angegeben.",16
      Exit Sub
      
   Elseif feld14 <> "" And feld15 = "" Then
      Msgbox"Fehler! Keine Zeit für Raumreservierung angegeben.",16
      Exit Sub
      
   Else
      Exit Sub
      
   End If
   
End Sub


Danke @all für die schnellen Antworten!
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: Thomator am 28.01.03 - 16:07:21
@Today
also ich würd mal probieren, bei den Feldern, die er jetzt nicht in die Variablen ausliesst (feld1..15) folgendermaßen vorzugehen:

Dim feld1..15 as variant
Set doc = uidoc.document
Dim Item as NotesItem
Set Item = doc.GetFirstItem(" Dein Feldname")
feld1..15 = Item.values(0)

und dann im neuen uidoc:
call uidoc.ReplaceItemValue("Dein Feldname", feld1..15)

Ich bin mir zwar nicht so ganz sicher, aber ich denke, das könnte bei so Sachen wie Kontrollfeldern eher funktionieren, als FieldSetText..

Thomas
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: ata am 28.01.03 - 16:21:37
... ich vermeide so gut es geht mit dem uidoc zu arbeiten. Mit dem Backend habe ich bessere Möglichkeiten, außerdem kann ich bei uidoc.FieldGetText("Feldname") nur mit Strings arbeiten, und alleine daß macht mich rasend...

... ich hätte die Feldnamen in ein Array gepackt und dann das Array   mit "For..Next" abgearbeitet - das ist vom Code her übersichtlicher und bei späteren Anpassungen deutlich besser im Handling

ata
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: Toady am 06.02.03 - 14:37:12
@ata, @thomator, @.....

Übers BackEnd hab ich's hinbekommen. Hat zwar lange gedauert, aber nur weil ich den Wald vor lauter Bäumen nich gesehen hab.

Danke nochmal für eure Hilfe.
Titel: Re:Werte aus Feld(Typ:Kontrollkästchen) übernehmen
Beitrag von: Doc Torte am 06.02.03 - 15:02:26
@ATA

genau das sind die Unterschiede an denen man erkennt wer was taugt und wer taucht...


@all others, nur wer schimpft, zieht sich den Schuh auch an !

MAHLZEIT