Autor Thema: Problem mit Lotus Script  (Gelesen 3842 mal)

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Problem mit Lotus Script
« am: 17.02.09 - 12:27:28 »
hallo zusammen,

das Problem in der kalenderansicht ist gelöst, es gibt jetzt noch eine letzte Wand gegen die ich momentan laufe..

Ich habe verschiedene Felder ( n1 bis nx) in denen Mehrfachwerte stehen.
Jetzt will ich diese Felder der Reihe nach durchlaufen und für jeden Wert , der enthalten ist ein neues Dokument erzeugen. Wenn ich nur das erste Feld n1 nehme, klappt alles wie es soll mit der Forall - Schleife.
Sobald ich die n Felder auslesen will ( set li = ...) kommt der Type Mismatch.
Habe mir die Hilfe angeschaut, komme aber nicht weiter.

Hier der Auszug aus dem Code:

Dim j As Integer
Dim li as variant
   For j = 1 To 2
      If doc.GetItemValue("dienstart" &Cstr(j))(0) <> ""  Then
         Set li = doc.GetItemValue("n" &Cstr(j))(0)
         Forall x In doc.li
            Set newdoc1 =New NotesDocument (db)
            newdoc1.form = "XXX"   
            Call newdoc1.ReplaceItemValue("n"&Cstr(j), x)
            s0 = doc.GetItemValue("d" &Cstr(j))(0)
            Call newdoc1.ReplaceItemValue("d"&Cstr(j)  , s0)
            newdoc1.m = doc.m
            newdoc1.b = doc.b
            s1 = doc.GetItemValue("u" &Cstr(j))(0)
            Call newdoc1.ReplaceItemValue("u"&Cstr(j)  , s1)
                        Call newdoc1.ComputeWithForm(True, False)
            Call newdoc1.save(True,False)
         End Forall
      End If
   Next

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Lotus Script
« Antwort #1 am: 17.02.09 - 12:32:37 »
Das Set ist falsch. Li wird mit dem Inhalt des Items ein Array und kein Objekt.
doc.li wäre ein Item - was soll das werden?

Bernhard

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Problem mit Lotus Script
« Antwort #2 am: 17.02.09 - 12:49:50 »
okay, der type missmatch ist jetzt weg, aber es wird nur der erste Wert des feldes eingelesen (0).
Wenn ich die (0) weglasse, habe ich in li mehrere Werte drin.

Aber in der Forall Schleife steht beim Debugging für x ein "", die Werte werden also nicht übernommen?

Offline Felix Ziegler

  • Aktives Mitglied
  • ***
  • Beiträge: 122
Re: Problem mit Lotus Script
« Antwort #3 am: 17.02.09 - 13:20:34 »
probiers mal so...

Code
Dim j As Integer
Dim li as variant
   For j = 1 To 2
      If doc.GetItemValue("dienstart" &Cstr(j))(0) <> ""  Then
         Set li = doc.GetItemValue("n" &Cstr(j))
         Forall x In li
            Set newdoc1 =New NotesDocument (db)
            newdoc1.form = "XXX"   
            Call newdoc1.ReplaceItemValue("n"&Cstr(j), x)
            s0 = doc.GetItemValue("d" &Cstr(j))(0)
            Call newdoc1.ReplaceItemValue("d"&Cstr(j)  , s0)
            newdoc1.m = doc.m
            newdoc1.b = doc.b
            s1 = doc.GetItemValue("u" &Cstr(j))(0)
            Call newdoc1.ReplaceItemValue("u"&Cstr(j)  , s1)
                        Call newdoc1.ComputeWithForm(True, False)
            Call newdoc1.save(True,False)
         End Forall
      End If
   Next

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Problem mit Lotus Script
« Antwort #4 am: 17.02.09 - 13:54:40 »
so hab ich es gemacht, es bleibt der Wert "" für x und damit wir der Wert nicht gesetzt..

Offline Felix Ziegler

  • Aktives Mitglied
  • ***
  • Beiträge: 122
Re: Problem mit Lotus Script
« Antwort #5 am: 17.02.09 - 13:55:57 »
Sorry... lass mal das "Set" weg..

Code
         li = doc.GetItemValue("n" &Cstr(j))
         Forall x In li

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Problem mit Lotus Script
« Antwort #6 am: 17.02.09 - 13:58:55 »
den Typ hatte ich schon von Bernhard, ist also schon weg.

Beim Debuggen sthen in li auch zwei Werte drin, wenn es dann zur For Schleife kommt, ist x =""

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: Problem mit Lotus Script
« Antwort #7 am: 17.02.09 - 14:00:44 »
Wieso schreibst Du "doc.li" ?
li ist doch ein Variant und kein Attribut des Document-Objektes.
Da ist es kein Wunder, dass x dann leer ist.
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 Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Problem mit Lotus Script
« Antwort #8 am: 17.02.09 - 14:03:35 »
wollte gerade posten, dass es klappt...
das doc.li ist wirklich unsinn !!

Danke !

Offline Felix Ziegler

  • Aktives Mitglied
  • ***
  • Beiträge: 122
Re: Problem mit Lotus Script
« Antwort #9 am: 17.02.09 - 14:07:24 »
Hatte ich ja gepostet :) Nur das Set habe ich vergessen zu entfernen. Aber da hätte dir der Compiler aber schon eins auf die Finger geben müssen...

Zitat
probiers mal so...

Code:

Dim j As Integer
Dim li as variant
   For j = 1 To 2
      If doc.GetItemValue("dienstart" &Cstr(j))(0) <> ""  Then
         Set li = doc.GetItemValue("n" &Cstr(j))
         Forall x In li
            Set newdoc1 =New NotesDocument (db)
            newdoc1.form = "XXX"   
            Call newdoc1.ReplaceItemValue("n"&Cstr(j), x)
            s0 = doc.GetItemValue("d" &Cstr(j))(0)
            Call newdoc1.ReplaceItemValue("d"&Cstr(j)  , s0)
            newdoc1.m = doc.m
            newdoc1.b = doc.b
            s1 = doc.GetItemValue("u" &Cstr(j))(0)
            Call newdoc1.ReplaceItemValue("u"&Cstr(j)  , s1)
                        Call newdoc1.ComputeWithForm(True, False)
            Call newdoc1.save(True,False)
         End Forall
      End If
   Next

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz