Autor Thema: Problem mit GetItemValue  (Gelesen 3435 mal)

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Problem mit GetItemValue
« am: 18.05.07 - 12:06:38 »
Hallo zusammen,

hab folgendes Problem mit GetItemValue:

Ich kopiere ein Document in einer View mit einem Button (Agent dahinter) mit folgendem Code (der auch soweit funktioniert):

-----Start code-------
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim docA As NotesDocument
Dim docB As NotesDocument
Dim collection As NotesDocumentCollection
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set docA = collection.GetFirstDocument()
   
Dim NewStatus As String, NeuDat As Variant
NewStatus = "Draft"
NeuDat = Now
   
'Holen des aktuellen Benutzers
Dim nam As NotesName
Dim user As String      
user = session.UserName      
Set nam = session.CreateName(user)
   
If Not (docA Is Nothing) Then
  Set docB = New NotesDocument( db )
  Call docA.CopyAllItems( docB, True )
      
  'An der Stelle kommt mein GetItemValue code!!!!!

  'Reset some fields in the new document (docB)
  Call docB.ReplaceItemValue( "CopyFlag", "1" )
  Call docB.ReplaceItemValue( "vCopyFlag", "Copy" )
  Call docB.ReplaceItemValue( "DocOriginator", nam.Abbreviated )
  Call docB.ReplaceItemValue( "DocOrigDate", NeuDat )   

  Call docB.Save( True, True )
  Messagebox  "Document successfully copied."
   
Else
  Messagebox "No documents found"
End If
End Sub
-----End code-------

Nun möchte ich an der markierten Stelle im Code den Inhalt eines Feldes der Form lesen. Das wollte ich mit GetItemValue und dem folgenden Code machen:
      
Dim wert As String
wert=docB.GetItemValue("FormName")
Msgbox wert

Ich krieg an der Stelle aber einen Typemissmatch :-(

Grüße Ewald
« Letzte Änderung: 18.05.07 - 14:26:00 von ewald »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit GetItemValue
« Antwort #1 am: 18.05.07 - 12:14:23 »
GetItemValue liefert ein Array zurück, Messagebox erwartet aber einen String! Ergo muss man vor der Ausgabe mit Messagebox einen String erzeugen.

Bernhard

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Problem mit GetItemValue
« Antwort #2 am: 18.05.07 - 12:18:02 »
Bernhard,

hab jetzt  MsgBox Cstr(wert)   der Typemissmatch kommt aber immer noch

Ewald

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 GetItemValue
« Antwort #3 am: 18.05.07 - 12:20:36 »
Ewald - wie wärs, wenn Du das Cstr DORT einbaust, WO Du dem STRING ein ARRAY ZUWEIST, und nicht dort, wo Du den String ausgibst?
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 koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit GetItemValue
« Antwort #4 am: 18.05.07 - 12:22:26 »
Cstr dient nicht dazu, ein Array in einen skalaren Wert zu verwandeln.

Einfache Möglichkeiten für die Ausgabe eines per GetItemValue geholten Wertes stehen gleich in den ersten Beispielen der DesignerHelp. Wird die eigentlich gar nicht benutzt??

Bernhard

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Problem mit GetItemValue
« Antwort #5 am: 18.05.07 - 12:29:18 »
Wie mache ich aus einem Array einen Wert?
Ganz einfach mit (0)

also

wert = docB.getitemvalue("FormNAme")(0)


RTFM  :-P
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit GetItemValue
« Antwort #6 am: 18.05.07 - 12:33:53 »
Damit "macht" man aber aus einem Array keinen skalaren Wert, sondern man zieht damit nur den ersten skalaren Wert aus einem Array ...

Bernhard

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Problem mit GetItemValue
« Antwort #7 am: 18.05.07 - 12:37:28 »
Die Designer Hilfe hab ich vorhin schon durchgenudelt. Da hab ich auch was gefunden:

Dim subj As Variant
subj = doc.GetItemValue( "Subject" )
Messagebox( subj( 0 ) )

Meins sieht doch eigentlich auch nicht so sehr anders aus

Dim wert As Variant
wert=docB.GetItemValue("FormName")
Messagebox (wert (0) )

Ewald

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Problem mit GetItemValue
« Antwort #8 am: 18.05.07 - 12:47:31 »
sorry, hab ich ganz vergessen: ich krieg ne leere msgbox zurück

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Problem mit GetItemValue
« Antwort #9 am: 18.05.07 - 12:53:13 »
Wo ist nun das Problem? Da wird wahrscheinlich das Feld "FormName" leer sein....
schon mal den Debugger angeworfen?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Problem mit GetItemValue
« Antwort #10 am: 18.05.07 - 13:16:13 »
Das Feld ist aber nicht leer. Wenn ich nämlich das neu, kopierte Doc anschaue, dann steht da in dem Feld was drin. Kann es sein, dass ich vor meiner Aktion das neu kopierte Doc einmal speichern muss?

Ewald

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Problem mit GetItemValue
« Antwort #11 am: 18.05.07 - 13:17:54 »
Speichern hilft auch nix, hab ich grad probiert

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Problem mit GetItemValue
« Antwort #12 am: 18.05.07 - 13:23:28 »
Wie schaust Du das neue Dokument an? via Maske oder über die Dokumenteneigenschaften? Könnte es ein Computed for display feld sein?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Problem mit GetItemValue
« Antwort #13 am: 18.05.07 - 14:00:06 »
Ich glaub, ich hab den Fehler gefunden:

Das Feld ist Computed when composed. Das ist aber nicht das Problem. Ich hab mal ein neues Ursprungs document angelegt und das dann kopiert und siehe da es funktioniert. Nehm ich vorhandenes Doc, dann gehts nicht. Wenn ich ein vorhandenes Doc allerdings erneut speichere, dann gehts auch da.

Ewald

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Problem mit GetItemValue
« Antwort #14 am: 18.05.07 - 14:14:09 »
@All,

es funktioniert!!


@Bernhard,
so wie es in der Designer Hilfe steht hab ich es ja zu allererst auch gehabt.
Designer Hilfe ist immer mein erster Anlaufpunkt.

Das Problem war wirklich nur, dass ich es immer mit existierenden Dokumenten getestet hab und da war meine MsgBox halt immer leer. Da dacht ich immer, es liegt an meinem Programmcode.

Danke nochmal an alle!

Grüße Ewald

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz