Skip to main content
Skip table of contents

Event "bei Fehler in BE-Recht_Event_Formel"

Event "bei Fehler in BE-Recht/Event/Formel"


Der Aufruf erfolgt, falls in einem DB-Recht (Tabellen-/Feld-Recht, Neu, Update, Delete), einem BE-Event oder einer Formel in den allgemeinen Parametern ein Fehler auftritt.
Der Event bietet die Möglichkeit die Fehlinformationen auszuwerten und zu steuern, ob anschließend ein Programm-Fehler ausgelöst werden soll (siehe Beispiel).

Beispiel

CODE
| nEvtNo:P1, nEventTyp:P2, cEventID:P3, oException:P4, lHandled:P5,
  cTyp, nRes |

// Handling von BE-Event-Fehlern
// nEventTyp  : 0 = Tabellen/Feld-Recht (Neu, Update, Delete)
//  cEventID  : Text mit genaueren Infos zum Recht (Tabellen-/Feldname, Art des Rechts, etc.)
// nEventTyp  : 1 = BE-Event (z.B. "beim Start von BE-32")
//  cEventID  : Numerische ID und Name des Events (z.B.: "2: beim Start von BE-32")
// nEventTyp  : 2 = Allg.Parameter Formel (z.B. "Formel Auftrags-Sperre")
//  cEventID  : Feldname in DABPAR (z.B.: "AUF_SPERR")
// oException : Exception-Object, entspricht Rückgabe von GetErrorObj()
// lHandled   : Vorgabe, ob der Fehler bereits gehandled wird (Sprich: das keine Exception mehr ausgelöst wird)
//              True   = bereits gehandled, keine Exception
//              False  = nicht gehandled, Exception auslösen
// Rückgabe   : True   = Fehler WURDE in diesem Events gehandled, KEINE Exception auslösen
//              False  = Fehler wurde NICHT in diesem Events gehandled, Exception AUSLÖSEN
//              <leer> = Vorgabe von lHandled übernehmen
// HINWEIS: Fehler in diesem Event werden ignoriert!

// Test-Werte für Programmeditor
if EditorMode() then
   nEventTyp := 0,
   cEventID  := '999: bei Ereignis',
   oException:= CreateObject('TComponent'),
   lHandled  := False,
   startseq,
     SetError('Fehler in Funktion xxx()'),
   onerror,
   stopseq,
endif,

// Typ im Klartext
case nEventTyp
   of 0 :: cTyp := "Tabellen/Feld-Recht",
   of 1 :: cTyp := "BE-Event",
   of 2 :: cTyp := "Allg.Parameter Formel",
otherwise
   cTyp := "Unbekannt"
endcase,

nRes := MessageDlg('FEHLER IN BE-EVENT:' + crlf + crlf +
                   'Event-Typ:    '   + cTyp + crlf +
                   'Fehler-Typ:   '   + ClassName(oException) + crlf +
                   'Fehler-Text:  '   + GetErrorText(oException) + crlf + crlf +
                   'Event-ID:       ' + cEventID + crlf + crlf +
                   'Programmausführung wird per Default ' + iif(not lHandled, 'NICHT ', '') 
                   + 'fortgesetzt!' + crlf + 'Programmausführung fortsetzen?',
                   mtError, mbYes + mbNo + mbCancel, 0 ),

if nRes = mrYes then
   lHandled := True,
else
   if nRes = mrNo then
      lHandled := False,
   endif,
endif,

lHandled


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.