Autor Thema: Type mismatch & Debugger springt nicht an?  (Gelesen 3123 mal)

Joghurt

  • Gast
Type mismatch & Debugger springt nicht an?
« am: 11.10.10 - 14:51:37 »
Hallo zusammen,

ich habe folgende Konstellation: Es gibt ein (Haupt-)Dokument mit einem embedded View. In dem embedded View gibts eine Funktion für neue Dokumente, die in dem embedded View dann angezeigt werden sollen und Daten übernehmen aus dem Hauptdokument. Beim Speichern eines neuen Dokumentes sollen einige Werte abgefragt werden und im QuerySave soll ein bisschen was berechnet und entsprechend einige Felder gefüllt werden.

Soweit, so gut, es funktioniert auch. Teilweise.

Ich kann ein neues Dokument erstellen. Die Werte werden übernommen. Ich kann meine Felder wie gewünscht anpassen. Ich kann beim neuen Dokument auf "Speichern" klicken.... und was dann passiert, kann ich nicht nachvollziehen.
Es kommt die Fehlermeldung: "Type mismatch in method CheckOperand: Unknown found, unknown expected", der Debugger springt nicht an, obwohl er eingeschaltet ist(!) und das neue Dokument wird gespeichert und in dem View angezeigt.

Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
    Dim ses As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument  
    Dim shipped1, shipped2, totalshipped As Integer
    Dim quan, parent As Variant
    Set db = ses.CurrentDatabase
    Set view = db.GetView("(DelQuan)")
    quan = Source.FieldGetText("DelQuantity")
    
    If quan <> "" Then
        Set doc = view.GetDocumentByKey(source.FieldGetText("Parent"))
        shipped1 = Cint(doc.GetItemValue("ShippedAmount")(0)) 
        shipped2 = Cint(Source.FieldGetText("DelQuantity"))
        totalshipped = shipped1 + shipped2
'Ist "+" hier überhaupt der richtige Operator zum Addieren? Ich hatte es auch schon mit einem festen Wert versucht, hatte nichts geändert.
        If totalshipped <= doc.GetItemValue("ShippedAmount") Then
            Call doc.ReplaceItemValue("ShippedAmount",totalshipped)
            Call doc.ReplaceItemValue("State","Scheduled")
            Call doc.Save(True,False)
            Continue = True
        Else
            Messagebox "You cannot ship more than you have! Your form has not been saved.",16,"Error"
            Continue = False
        End If
    End If
End Sub

Ich würd ja gerne debuggen und schauen, wo mein Fehler steckt. Aber ohne Debugger komm ich nicht wirklich weiter.... Neustarten, Cache löschen, etc. schon versucht, das hat nix geändert. Was kann ich noch versuchen?

Glombi

  • Gast
Re: Type mismatch & Debugger springt nicht an?
« Antwort #1 am: 11.10.10 - 14:55:52 »
Als erstes mal sauber deklarieren!

Durch

Dim shipped1, shipped2, totalshipped As Integer

wird shipped1 und shipped2 as VARIANT deklariert! Also so:

Dim shipped1 as integer, shipped2 as integer, totalshipped As Integer


Die Zeile
If totalshipped <= doc.GetItemValue("ShippedAmount")

muss wie folgt heissen:
If totalshipped <= doc.GetItemValue("ShippedAmount")(0)

Andreas

Joghurt

  • Gast
Re: Type mismatch & Debugger springt nicht an?
« Antwort #2 am: 11.10.10 - 15:25:44 »
Okay, ich wusste nicht, dass Notes dann Variants daraus macht. *besserung gelob*

Es ändert nur leider nichts an der Tatsache, dass der Debugger nicht anspringt.

Glombi

  • Gast
Re: Type mismatch & Debugger springt nicht an?
« Antwort #3 am: 11.10.10 - 15:40:13 »
Der Fehler tritt in der Methode CheckOperand auf. Den Code hast Du nicht gepostet.

Manchmal springt der Debugger nicht an, u.a. in dem von Dir geschilderten Szenario.

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: Type mismatch & Debugger springt nicht an?
« Antwort #4 am: 11.10.10 - 16:51:28 »
Hi

Alternativ hat sich bei mir ein anständiger ErrorHandler bewährt.


Gruss

Urs

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

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: Type mismatch & Debugger springt nicht an?
« Antwort #5 am: 11.10.10 - 17:05:14 »
Hi

Alternativ hat sich bei mir ein anständiger ErrorHandler bewährt.


Eine vernüftige Fehlerbehandlung bewährt sich immer und ist m. E. das A und O einer guten Programmierung.

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

Glombi

  • Gast
Re: Type mismatch & Debugger springt nicht an?
« Antwort #6 am: 12.10.10 - 08:44:25 »
Hi

Alternativ hat sich bei mir ein anständiger ErrorHandler bewährt.


Eine vernüftige Fehlerbehandlung bewährt sich immer und ist m. E. das A und O einer guten Programmierung.

Axel

In wiefern wäre das für diesen Fall hilfreich?

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: Type mismatch & Debugger springt nicht an?
« Antwort #7 am: 12.10.10 - 09:13:49 »
Du kannst dir mehr Infos zum Fehler anzeigen lassen und kannst so z.B. auch die Zeile ermitteln in der der Fehler aufgetreten ist.
Das kann bei der Fehlersuche hilfreich sein.

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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz