Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Steffen_Albrecht am 29.01.03 - 12:25:14

Titel: Funktion requires a valid ADT argument
Beitrag von: Steffen_Albrecht am 29.01.03 - 12:25:14
Hallo,

oben genannte Fehlermeldung erscheint, wenn die erste If- Bedingung erfüllt ist.
Ich verstehe nicht ganz warum.
Vielleicht kann mir einer von Euch auf die Sprünge helfen?

Gruß
   Steffen


key="LRGInfo_08"+uidoc.FieldGetText("Projektbezeichnung")+uidoc.FieldGetText("InterneAuftragsnummer")
   If (uidoc.FieldGetText("Zweck_08")<>"") Then
      Set doc = view.GetDocumentByKey( key  , exact  )
      If Not(doc Is Nothing) Then
         Set uidoc=workspace.ComposeDocument( "","", "LRGInfo_08")
      Else
         Set uidoc=workspace.EditDocument( False , uidoc )
      End If
   Else
      Messagebox("Bitte beben Sie den Verwendungszweck an bevor Sie ein neues Dokument erstellen")
   End If      
Titel: Re:Funktion requires a valid ADT argument
Beitrag von: ata am 29.01.03 - 12:34:29
... ich denke dazu gibt es bereits Postings dazu. Geh doch mal über die Suche und gib 500 Tage asl Zeitraum ein...

ata
Titel: Re:Funktion requires a valid ADT argument
Beitrag von: klaussal am 29.01.03 - 12:35:08
...
wie sehen denn die DIMs aus ?
Titel: Re:Funktion requires a valid ADT argument
Beitrag von: ata am 29.01.03 - 12:36:52
... ich denke das Frontend-Doc liegt noch nicht im Backend vor...

ata
Titel: Re:Funktion requires a valid ADT argument
Beitrag von: Steffen_Albrecht am 29.01.03 - 14:09:39
Hallo hier mein kompletter Quellcode:

Sub Click(Source As Button)
   
   Dim session As New NotesSession
   Dim workspace As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim uidoc As NotesUIDocument
   Dim key As String
   Dim doc As NotesDocument
   Dim view As NotesView
   
   Set uidoc = workspace.currentdocument
   Set db=session.CurrentDatabase
   Set view=db.GetView("(FindDocs)")
   
   key="LRGInfo_08"+uidoc.FieldGetText("Projektbezeichnung")+uidoc.FieldGetText("InterneAuftragsnummer")
   
   If (uidoc.FieldGetText("Zweck_08")<>"") Then
      Set doc = view.GetDocumentByKey( key  , exact  )      
      If Not(doc Is Nothing) Then
'         Set uidoc=workspace.ComposeDocument( "","", "LRGInfo_08")
'         Call uidoc.GotoField("Lieferant")
         Messagebox("Test")
      Else
'         Set uidoc=workspace.EditDocument( False , uidoc )
'         Call uidoc.GotoField("Lieferant")
         Call workspace.EditDocument( True, uidoc )
      End If      
   Else
      Messagebox("Bitte beben Sie den Verwendungszweck an bevor Sie ein neues Dokument erstellen")
   End If      
   
End Sub

Der Sinn des Ganzen soll sein, dass auf knopfdruck ein Antwortdokunent auf das aktuell geöffnete erzeugt werden soll. Existiert das Doc schon, soll es geöffnet werden.

Gruß
   Steffen
Titel: Re:Funktion requires a valid ADT argument
Beitrag von: ata am 29.01.03 - 16:17:30
... nimm anstelle des uidoc lieber ein doc

Dim doc As NotesDocument
Set doc = workspace.CurrentDocument.Document

... einen Wert eines Feldes verwenden

sValue = CStr(doc.Feldname(0))

... wichtig ist es, das Feld als Array mit Index "0" ansprechen...

... also in deinem Fall

key="LRGInfo_08"+doc.Projektbezeichnung(0)+doc.InterneAuftragsnummer(0)
   
   If (doc.Zweck_08(0)<>"") Then.....

... und dann noch ein fehler im Script...

Set uidoc=workspace.EditDocument( False , uidoc )

... uidoc ist falsch, du benötigst ein NotesDocument, kein UIDocument...

ata