Show

 (Available in 00 TS Base(Base) - TS_Base_2_ErrorSysError)

Purpose

Short

Syntax

Syntax

Arguments

ParamX
Param description

Description

Long

Returns

Return

Example

Example

Source

METHOD Show( udwSeverity, udwLevel ) CLASS TS_Error
LOCAL struBoxData IS _TS_ErrorSysBoxData
LOCAL oGlobalData AS _TS_GlobalData
LOCAL cErrMessage AS STRING
LOCAL dwSeverity AS DWORD
LOCAL lTrueShown AS LOGIC
LOCAL lCanIgnore AS LOGIC
LOCAL lCanBreak AS LOGIC
LOCAL lCanAuto AS LOGIC
LOCAL lChoice AS LOGIC
LOCAL cMode AS STRING
LOCAL cID AS STRING
   oGlobalData:=_TS_ModuleGetGlobalData( )
   lTrueShown:=_TS_ErrorSysItemShown( SELF, NIL )
   _TS_ErrorSysItemShown( SELF, TRUE )
// ================================================================================================= ; ...
// Enter
// ================================================================================================= ; ...
   struBoxData.Level:=TS_SafeDWORD( udwLevel, NULL_PTR )+1U
// ================================================================================================= ; ...
// Finalise the error status
// ================================================================================================= ; ...
   struBoxData.Choice:=SELF:Choice
   SELF:Choice:=EC_ALERT
   IF IsNumeric( udwSeverity )
      dwSeverity:=udwSeverity
      IF _TS_ErrorSysItemSeverity( SELF, NIL )<dwSeverity
         _TS_ErrorSysItemSeverity( SELF, dwSeverity )
      END
   END
   struBoxData.Severity:=_TS_ErrorSysItemSeverity( SELF, NIL )
   DO CASE
   CASE TS_ErrorSysAborting( )
      struBoxData.Choice==EC_ABORT
      struBoxData.Severity:=_TS_ErrorSysItemSeverity( SELF, ES_CATASTROPHIC  ; ...
     ... )
      SELF:CanDefault:=FALSE
      SELF:CanRetry:=FALSE
      SELF:CanSubstitute:=FALSE
      lCanIgnore:=FALSE
      lCanBreak:=FALSE
      lCanAuto:=FALSE
   CASE struBoxData.Severity>ES_ERROR
      SELF:CanDefault:=FALSE
      SELF:CanRetry:=FALSE
      SELF:CanSubstitute:=FALSE
      lCanIgnore:=FALSE
      lCanBreak:=FALSE
      lCanAuto:=FALSE
   CASE struBoxData.Severity>ES_WARNING
      lCanIgnore:=FALSE
      lCanBreak:=TRUE
      lCanAuto:=TRUE
   CASE struBoxData.Severity>ES_WHOCARES
      lCanIgnore:=TRUE
      lCanBreak:=FALSE
      lCanAuto:=TRUE
   OTHERWISE
      SELF:CanDefault:=TRUE
      SELF:CanRetry:=FALSE
      SELF:CanSubstitute:=FALSE
      lCanIgnore:=TRUE
      lCanBreak:=FALSE
      lCanAuto:=TRUE
   END
// ================================================================================================= ; ...
// Get the text and show in 'DebugView'
// ================================================================================================= ; ...
   IF LOGIC( _CAST, IVarGetInfo( SELF, _TS_TRACE_DATA ) )
      cID:=TS_S_GLUON+TS_ErrorSysSeverity2String( SELF )+TS_S_ID_INTO+NTrim( TS_TraceIDGet ; ...
     ... ( SELF ) )
   ELSE
      cID:=TS_S_GLUON+TS_S_NOID
   END
   DO CASE
   CASE _TS_ErrorSysShortErrors( )
      cErrMessage:=_TS_ErrorSysError2String( SELF, CRLF, NULL_STRING )
   CASE IsClass( TS_ERRORSYS_DEF_STATUSBOX )
      cErrMessage:=_TS_TraceError2String( SELF, CRLF, NULL_STRING )
   OTHERWISE
      cErrMessage:=_TS_ErrorSysError2String( SELF, CRLF, NULL_STRING )
   END
// ================================================================================================= ; ...
// Select available button options
// ================================================================================================= ; ...
   struBoxData.ButtonIgnore:=SE_NOBUTTON
   struBoxData.ButtonBreak:=SE_NOBUTTON
   struBoxData.ButtonAbort:=SE_NOBUTTON
   struBoxData.ButtonRetry:=SE_NOBUTTON
   DO CASE
   CASE TS_ErrorSysAborting( )
      struBoxData.Choice:=EC_ABORT
      struBoxData.ButtonAbort:=SE_ABORT
      lChoice:=FALSE
   CASE struBoxData.Severity>ES_ERROR
      IF TS_ErrorSysAlloweUserAbort( )
         struBoxData.ButtonAbort:=SE_ABORT
         lChoice:=TRUE
      ELSE
         lChoice:=FALSE
      END
   CASE struBoxData.Severity>ES_WARNING
      IF lCanBreak .AND. CanBreak( )
         IF TS_ErrorSysAlloweUserCancel( )
            struBoxData.ButtonBreak:=SE_BREAK
            lChoice:=TRUE
         ELSE
            lChoice:=FALSE
         END
      ELSE
         IF TS_ErrorSysAlloweUserAbort( )
            struBoxData.ButtonAbort:=SE_ABORT
            lChoice:=TRUE
         ELSE
            lChoice:=FALSE
         END
      END
   OTHERWISE
      IF lCanIgnore .AND. TS_ErrorSysAlloweUserIgnore( )
         struBoxData.ButtonIgnore:=SE_IGNORE
         lChoice:=TRUE
      ELSE
         lChoice:=FALSE
      END
   END
   IF struBoxData.Severity<ES_CATASTROPHIC
      IF SELF:CanDefault .OR. SELF:CanSubstitute
         IF lCanIgnore .AND. TS_ErrorSysAlloweUserIgnore( )
            struBoxData.ButtonIgnore:=SE_IGNORE
            lChoice:=TRUE
         END
      END
      IF SELF:CanRetry
         DO CASE
         CASE SELF:GenCode==EG_NOVAR
            SELF:CanRetry:=FALSE
         CASE TS_ErrorSysAlloweUserRetry( )
            struBoxData.ButtonRetry:=SE_RETRY
            lChoice:=TRUE
         END
      END
   END
// ================================================================================================= ; ...
// Select option
// ================================================================================================= ; ...
   struBoxData.Severity:=_TS_ErrorSysItemSeverity( SELF, NIL )
   DO CASE
   CASE TS_ErrorSysAborting( )
      _TS_ErrorSysItemShown( SELF, lTrueShown )
      struBoxData.Severity:=_TS_ErrorSysItemSeverity( SELF, ES_CATASTROPHIC  ; ...
     ... )
      SELF:Choice:=EC_ABORT
      lChoice:=FALSE
   CASE struBoxData.Severity==ES_WHOCARES
      _TS_ErrorSysItemShown( SELF, lTrueShown )
      SELF:Choice:=EC_IGNORE
      lChoice:=FALSE
   CASE lChoice .OR. TS_ErrorSysGetIsDebug( )
      struBoxData.ErrorMessage:=String2Psz( cErrMessage )
      struBoxData.ErrorSeverity:=String2Psz( TS_ErrorSysSeverity2String ; ...
     ... ( SELF ) )
      _TS_ErrorSysErrorBox( SELF, @struBoxData )
      lChoice:=TRUE
   CASE SELF:CanRetry
      _TS_ErrorSysItemShown( SELF, lTrueShown )
      SELF:Choice:=EC_RETRY
      lChoice:=FALSE
   CASE lCanIgnore .AND. ( SELF:CanDefault .OR. SELF:CanSubstitute  ; ...
  ... )
      _TS_ErrorSysItemShown( SELF, lTrueShown )
      SELF:Choice:=EC_IGNORE
      lChoice:=FALSE
   CASE lCanBreak .AND. CanBreak( )
      _TS_ErrorSysItemShown( SELF, lTrueShown )
      SELF:Choice:=EC_BREAK
      lChoice:=FALSE
   OTHERWISE
      _TS_ErrorSysItemShown( SELF, lTrueShown )
      struBoxData.Severity:=_TS_ErrorSysItemSeverity( SELF, ES_CATASTROPHIC  ; ...
     ... )
      SELF:Choice:=EC_ABORT
      lChoice:=FALSE
   END
// ================================================================================================= ; ...
// Execute option
// ================================================================================================= ; ...
   IF lChoice
      cMode:=TS_S_USER
   ELSE
      cMode:=TS_S_AUTOMATIC
   END
   MathInit( )
   struBoxData.Choice:=SELF:Choice
   SELF:Choice:=EC_ABORT
   IF TS_ErrorSysAborting( )
      SELF:Choice:=EC_ABORT
      struBoxData.Severity:=_TS_ErrorSysItemSeverity( SELF, ES_CATASTROPHIC  ; ...
     ... )
      struBoxData.Choice:=EC_ALERT
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_HEADER1, "Error:Show()["+cMode+TS_C_SQUARECLOSE ; ...
     ... , struBoxData.Level )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutMLSC( "SELF:Choice==EC_ABORT"+cID, struBoxData.Level  ; ...
     ... )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_FOOTER1, "Error:Show()["+cMode+TS_C_SQUARECLOSE ; ...
     ... , struBoxData.Level )
   END
   IF struBoxData.Choice==EC_IGNORE .AND. ( lCanIgnore .OR. TS_ErrorSysGetIsDebug ; ...
  ... ( ) )
      IF !lCanIgnore
         cMode+="(DBG)"
      END
      SELF:Choice:=EC_IGNORE
      struBoxData.Choice:=EC_ALERT
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_HEADER1, "Error:Show()["+cMode+TS_C_SQUARECLOSE ; ...
     ... , struBoxData.Level )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutMLSC( "SELF:Choice==EC_IGNORE"+cID, struBoxData.Level  ; ...
     ... )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_FOOTER1, "Error:Show()["+cMode+TS_C_SQUARECLOSE ; ...
     ... , struBoxData.Level )
   END
   IF struBoxData.Choice==EC_RETRY .AND. SELF:CanRetry
      SELF:Choice:=EC_RETRY
      struBoxData.Choice:=EC_ALERT
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_HEADER1, "Error:Show()["+cMode+TS_C_SQUARECLOSE ; ...
     ... , struBoxData.Level )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutMLSC( "SELF:Choice==EC_RETRY"+cID, struBoxData.Level  ; ...
     ... )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_FOOTER1, "Error:Show()["+cMode+TS_C_SQUARECLOSE ; ...
     ... , struBoxData.Level )
   END
   IF ( struBoxData.Choice==EC_IGNORE .OR. struBoxData.Choice ; ...
  ... ==EC_RETRY .OR. struBoxData.Choice==EC_BREAK ) .AND. ( lCanBreak  ; ...
  ... .OR. TS_ErrorSysGetIsDebug( ) ) .AND. CanBreak( )
      IF !lCanBreak
         cMode+="(DBG)"
      END
      SELF:Choice:=EC_BREAK
      struBoxData.Choice:=EC_ALERT
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_HEADER1, "Error:Show()["+cMode+TS_C_SQUARECLOSE ; ...
     ... , struBoxData.Level )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutMLSC( "SELF:Choice==EC_BREAK"+cID, struBoxData.Level  ; ...
     ... )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_FOOTER1, "Error:Show()["+cMode+TS_C_SQUARECLOSE ; ...
     ... , struBoxData.Level )
   END
   IF SELF:Choice==EC_ABORT .OR. TS_ErrorSysAborting( )
//    See 'WinExec()', Values 0..31 are considered errors.
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_HEADER1, "Error:Show()["+cMode+TS_C_SQUARECLOSE ; ...
     ... , struBoxData.Level )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutMLSC( "SELF:Choice==EC_ABORT, Fatal error the application is " ; ...
     ... +"abborted"+cID, struBoxData.Level )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_FOOTER1, "Error:Show()["+cMode+TS_C_SQUARECLOSE ; ...
     ... , struBoxData.Level )
      _TS_ErrorSysForceAbort( SELF )
      RETURN NIL
   END
RETURN SELF:Choice