AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
18.07.19 - 19:18:53
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 8
| |-+  ND8: Entwicklung (Moderatoren: Axel, Thomas Schulte, koehlerbv)
| | |-+  InViewEdit in eingebetteter Ansicht mit ShowSingleCategory führt zu Absturz
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: InViewEdit in eingebetteter Ansicht mit ShowSingleCategory führt zu Absturz  (Gelesen 779 mal)
vrhsva
Frischling
*
Offline Offline

Beiträge: 20


« am: 19.03.19 - 12:03:04 »

Hallo zusammen,

ich habe ein offenes Dokument mit einer eingebetteten Ansicht. Dort werden mit ShowSingleCategory Kinddokumente angezeigt (1.Spalte kategorisiert mit $REF)
In der zweiten Spalte ist ein Feld "Anzahl". Dieses Feld soll in der eingebettetn Ansicht mit InViewEdit verändert werden können.
Das ganze funktioniert auch, wenn ich die Ansicht direkt öffne, oder das ShowSingleCategory herausnehme.
Sobald aber ShowSingleCategory eingestellt ist, stürzt mir der NotesClient sofort ab. (sh. Fehler.jpg)

Hier mein InViewEditCode (Im Grunde aus der DesignerHilfe herauskopiert und 2-3 kleinere Sachen angepasst)
Code:
Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)
%REM
This view has two editable columns: one Text and one Numeric.
The programmatic name of each editable column
is the same as the name of the field whose value it holds,
but the processing for each column is different.
%END REM

  REM Define constants for request types
Const QUERY_REQUEST = 1
Const VALIDATE_REQUEST = 2
Const SAVE_REQUEST = 3
Const NEWENTRY_REQUEST = 4

  REM Define variables
Dim ws As New NotesUIWorkspace
Dim uid As NotesUIDocument
Set uid=ws.CurrentDocument
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim caret As String

  REM Get the CaretNoteID - exit if it does not point at a document
caret = Source.CaretNoteID
If caret = "0" Then Exit Sub

  REM Get the current database and document
Set db = Source.View.Parent
Set doc = db.GetDocumentByID(caret)

  REM Select the request type
Select Case Requesttype

Case QUERY_REQUEST
  REM Reserved - do not use for Release 6.0

Case VALIDATE_REQUEST
  REM Write message and cause validation error if ...
Select Case Colprogname(0)

Case "Anzahl"
    REM ... value in numeric column is non-numeric or negative
If Isnumeric(Columnvalue(0)) Then
If Cint(Columnvalue(0)) < 0 Then
Messagebox "Value must be greater than 0",, "Negative value"
Continue = False
End If
Else
Messagebox "Value must be numeric",, "Non-numeric value"
Continue = False
End If

Case "Preis"
    REM ... value in numeric column is non-numeric or negative
If Isnumeric(Columnvalue(0)) Then
Else
Messagebox "Value must be numeric",, "Non-numeric value"
Continue = False
End If
End Select

Case SAVE_REQUEST
  REM Write the edited column view entries back to the document
For i = 0 To Ubound(Colprogname) Step 1
Select Case Colprogname(i)
      REM Write text entry back to docume
      REM Write converted numeric entry back to document
Case "Anzahl"
Call doc.ReplaceItemValue(Colprogname(i), Cint(Columnvalue(i)))
Call doc.ComputeWithForm(True,True)

Case "Preis"
Call doc.ReplaceItemValue(Colprogname(i), Cint(Columnvalue(i)))
Call doc.ComputeWithForm(True,True)
End Select
Next
    REM Save(force, createResponse, markRead)
Call doc.Save(True, True, True)

Case NEWENTRY_REQUEST
  REM Create document and create "Form" item
  REM Write column values to the new document
Set doc = New NotesDocument(db)
Call doc.ReplaceItemValue("Form", "Main")
For i = 0 To Ubound(Colprogname) Step 1
Select Case Colprogname(i)
      REM Write text entry  to document
Case "FieldText"
Call doc.ReplaceItemValue(Colprogname(i), Columnvalue(i))
      REM Write converted numeric entry to document
Case "Anzahl"
Call doc.ReplaceItemValue(Colprogname(i), Cint(Columnvalue(i)))
End Select
Next
    REM Save(force, createResponse, markRead)
Call doc.Save(True, True, True)

End Select
If Not uid Is Nothing Then
Call uid.Refresh
End If
End Sub
Gespeichert

DominoServer 9.01 - Linux
NotesClient 8.5.3 - Windows 7
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6237


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #1 am: 19.03.19 - 12:57:36 »

Der Crash kommt von dieser Zeile:

Call uid.refresh

Dieser führt regelmässig zum Crash, wenn er aus der embedded view ausgeführt wird. Ist ein (zumindest mir) bekannter Bug, der schon seit Ewigkeiten besteht.
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
vrhsva
Frischling
*
Offline Offline

Beiträge: 20


« Antworten #2 am: 26.03.19 - 07:13:49 »

Vielen Dank für den Tipp. Habe den uid.refresh rausgenommen. Jetzt stürzt er nicht mehr ab.
Gespeichert

DominoServer 9.01 - Linux
NotesClient 8.5.3 - Windows 7
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: