Autor Thema: Script Fehlermeldung  (Gelesen 4400 mal)

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Script Fehlermeldung
« am: 11.06.05 - 15:27:58 »
Hallo zusammen,

ich frage ein numerisches Feld in einer Form ab, ob auch wirklich keine Buchstaben drinstehen mit folgendem Code (steht in einem Button):

If Not Isnumeric(doc.WSBCApprCost(0)) Then
    Messagebox  "Nur Zahlen....", mb_ok, Title$      
    Continue=False
    Exit Sub
End If

Bei der Ausführung krieg ich aber den Fehler "Variant does not contain a container"

Was hab ich da falsch gemacht  ???

Thx
Gruss Ewald
« Letzte Änderung: 13.06.05 - 13:27:17 von ewald »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #1 am: 11.06.05 - 15:34:49 »
Wie hast du doc instantiiert ? Schick' mal bitte den gesamten Code.

Bernhard

Marinero Atlántico

  • Gast
Re: Script Fehlermeldung
« Antwort #2 am: 11.06.05 - 15:38:42 »
Ausserdem kannst du im Debugger sehen, ob die Objekte instantiiert sind. Sie haben dann ein grünes Dreieck. Wenn nicht, ist das Objekt (doc) nicht instantiiert.

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #3 am: 11.06.05 - 15:52:42 »
@Bernhard,

hier der gesamte Code


Sub Click(Source As Button)
   
   Dim uiws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim session As New notessession
   Dim db As NotesDatabase   
   Set db = session.CurrentDatabase
   Set uidoc = uiws.currentdocument
   Set doc = uiws.currentdocument.document
   
   '//-------- Text modules----------------------
   Title$ = "Document control"
   MsgAlreadySent$ = "Already sent..."
   MsgSendTo$ = "Field [Send to] must contain at least one person."
   MsgSaveBeforeSubmit$ = "Request must be saved prior submit."
   
   subject_text$ = "Decision of Deviation Request for customer:  "
   txt$="Sending of decision successfully initiated."
   txt2$="Replicate immediately."   
      
   If doc.DocStatus(0) = "2" Then
      Messagebox  MsgAlreadySent$, mb_ok, Title$      
      Continue = False
      Exit Sub
   End If
   
   '######Das geht nich#####################
   If Not Isnumeric(doc.WSBCApprCost) Then
      Messagebox "Numeric characters only.", MB_OK + MB_ICONSTOP, Title$
      Continue = False
      Exit Sub      
   End If         '######################################
   
   If doc.SendTo(0) = "" Then
      Messagebox  MsgSendTo$, mb_ok, Title$
      Continue = False
      Exit Sub
   End If
   
   
   '//--- Write current Notes user
   Dim benutzer As Variant, zeit As Variant
   Const formel = "@V3UserName"   
   benutzer = Evaluate(formel)
   Const formel2 = "@text(@Now)"
   zeit = Evaluate(formel2)
   
   '--- Write name and time stamp into fields
   Call uidoc.FieldSetText("WSBCDecSender", benutzer(0))
   Call uidoc.FieldSetText("WSBCDecDate", zeit(0))
   
   Dim dStatus As String
   dStatus = "2"
   Call uidoc.FieldSetText("DocStatus", dStatus)   
   
   Call uidoc.Save()
   
   '//--- Submit the document
   Dim st_originator As String
   Dim doc_send As notesdocument   
   Dim richStyle As NotesRichTextStyle
   Set richStyle = session.CreateRichTextStyle
   Set db = session.currentdatabase
   Set doc_send = New notesdocument(db)
   
   Dim st_Text As String, send2 As String, copy2 As String, subject As String
   
   send2 = doc.SendTo(0)
   copy2 = doc.CopyTo(0)
   subject = subject_text$
   
   '// Set Form Type,  Subject, SendTo address, CopyTo address
   Call doc_send.replaceitemvalue("form", "Memo")
   Call doc_send.replaceitemvalue("Subject", subject & doc.CustomerName(0))
   Call doc_send.replaceitemvalue("SendTo", send2)
   Call doc_send.replaceitemvalue("CopyTo", copy2)
   
   '// Build Richtext for Message Body
   Set RTItem = New NotesRichTextItem(doc_send, "body")
   Call RTItem.addnewline(2)
   Call RTItem.addnewline(2)
   Call RTItem.AppendText("Please follow this doclink to the request in the DQMS database.  ")
   Call RTItem.AppendDocLink(doc, "DQMS request document")
   
   '//-------- Send Document -----
   Call doc_send.send(False)
   
   '//-------- Final popup messages -----------------------
   Messagebox txt$,mb_ok,"Notice"
   Messagebox txt2$,mb_ok,"Important notice"
   '//----------------------------------------------------------------
   
   Call uidoc.Close
   
   Continue = True   ' No Error
   docIsSaved = True
   
End Sub

Gruss Ewald

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #4 am: 11.06.05 - 15:56:26 »
Ooops - hier steht jetzt aber was anderes und falsches:
If Not Isnumeric(doc.WSBCApprCost)

Isnumeric kann nur auf skalare Werte angewendet werden und nicht auf Arrays, wie Du das hier versuchst. Setze - wie bereits ausgangs von Dir gepostet - wieder den Index dazu:
If Not Isnumeric(doc.WSBCApprCost (0))

Bernhard

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #5 am: 11.06.05 - 16:01:34 »
hab den index wieder gesetzt. gleicher fehler kommt aber wieder  ???

ewald

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #6 am: 11.06.05 - 16:17:57 »
Bist Du sicher, dass der Fehler überhaupt in dieser Zeile passiert ? Syntaktisch wäre diese okay (selbst, wenn Dein Feldname nicht stimmen würde, Hauptsache ist, das doc instantiiert ist, aber wenn das nicht wäre, würde es bereits vorher knallen).

Bernhard

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #7 am: 11.06.05 - 16:21:06 »
wenn genau diese code fragment kommentiert ist läuft alles problemlos

ewald

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #8 am: 11.06.05 - 16:41:42 »
Und was sagt der Debugger über die Fehlerzeile und den Inhalt von Objekten und Variablen ?

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #9 am: 11.06.05 - 17:21:25 »
sieht im debugger soweit ok aus. nur fällter halt ganau an der stelle

If Not Isnumeric(doc.WSBCApprCost(0)) Then

raus   :-:

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #10 am: 11.06.05 - 17:31:51 »
Welchen Feldtyp hat eigentlich WSBCApprCost ?

Ich habe natürlich vor dem Posten die Situation nachgestellt (soweit möglich). Ich kann da nach wie vor nichts "schlimmes" erkennen ...

Bernhard

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #11 am: 11.06.05 - 18:33:15 »
Ich habe eben mal spassenshalber Deinen "ganzen" Code in einen Button geworfen. Der Compiler meldet zwölf Fehler - hast Du Option Declare deaktiviert ?
Aber auch wenn ich die Deklarationsfehler berichtige - der Code funktioniert. Irgendwie scheinen noch wichtige Informationen von Dir zu fehlen ...

Bernhard

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #12 am: 11.06.05 - 20:01:04 »
Poste mir doch mal den berichtigten Code zurück. Mal sehn, was dann bei mir passiert

Ewald

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Script Fehlermeldung
« Antwort #13 am: 11.06.05 - 20:16:17 »
Poste mir doch mal den berichtigten Code zurück. Mal sehn, was dann bei mir passiert

Ähm, ich denke das hat so keinen Sinn. Du solltest auch mal Bernhards Frage beantworten, um welchen Feldtyp es sich da handelt.

Würde es vielmehr eingrenzen. Schalte erstmal Option Declare ein.

Statt
Code
If Not Isnumeric(doc.WSBCApprCost(0)) Then

Schreibst Du z.B.:
Code
If doc Is Nothing Then Error 1001, "FEHLER: Notesdokument ist Nothing"
Dim vTempVal as Variant
vTempVal = doc.GetItemValue("WSBCApprCost")(0)
Msgbox "<" & vTempVal & ">", 64, "Das ist jetzt der Inhalt von <WSBCApprCost>"
If Not Isnumeric(vTempVal) Then

Wenn da jetzt ein Fehler auftritt, sag Bescheid, in welcher Zeile.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Marinero Atlántico

  • Gast
Re: Script Fehlermeldung
« Antwort #14 am: 11.06.05 - 22:36:20 »
und um das ganze ein bischen einfacher zu gestalten:

als Erste Zeile unter sub clickButton oder was da steht:
Code
on Error goto Fehler
und vor der letzten Zeile (end sub)
Code
finish: 
exit sub

Fehler: 
msgbox "Fehler in Clickerei:" & Error$ & "(" & Cstr(Err) & ") in Zeile" & Cstr(Erl)
goto finish

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Script Fehlermeldung
« Antwort #15 am: 13.06.05 - 13:27:02 »
habs jetzt auf diese weise gelöst:


If uidoc.FieldGetText("WSBCApprCost") <> "" Then
   If Isarray(doc.GetFirstItem("WSBCApprCost").Values) = False Then
      Messagebox "Non numeric characters are not allowed.",mb_ok, Title$         
   Call uidoc.gotofield("WSBCApprCost")
   Continue = False
   Exit Sub
   End If
End If

und jetzt funktionierts  :D

danke nochmal...



Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Script Fehlermeldung
« Antwort #16 am: 13.06.05 - 14:50:06 »
Hi,

... und wo und wie prüfst du ob nur nummerische Werte eingegeben wurden?


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz