Cancel a user's delete action.
When one or more
records are selected from databox
and a DELETE event occurred (from menu or from
toolbar) then a special xojoscript is invoked before
deletion.
From that script one
can call AbortDelete in order to cancel
the deletion of a record from
databox. Special scripts run before occurance
of an Insert, Update or
Delete to the database. See menu 'Script
-> Edit Special Scripts'. From such a script we can
implement customer specific business rules, like not allowing deletion of records with
open invoices.
Parameters :
Name |
Value |
Description |
action |
1 |
Cancel deletion of a record |
|
0 |
Allow deletion of a record |
Available
in:
WindowMain |
WindowLink |
YES |
NO |
Used
in:
XojoScript
Name |
GUID |
Record delete from databox
|
E8AC18FC-3956-42B8-AF94-86CF7FA5B10E |
Example
Code:
Dim modul As String = GetActiveModul
// Prevent
deletion of addresses if there
are open seminar invoices
If modul = "addresses" Then
Dim arID() As string
arID = IDArrayOfSelectedAddresses
//
If the passed
array has no elements, result
is set to
-1.
If Ubound(arID)
> -1 Then
Dim idStr As String
idStr = Join(arID,"," )
Dim sql As String
sql = "SELECT count(*)
'openbills' " _
+ "FROM " + GetPrefix + "link_adr_evt lnk, " +
GetPrefix + "addresses adr " _
+ "WHERE lnk.id_adr = adr.id
" _
+ "AND adr.id IN (" + idStr
+ ") " _
+ "AND totalpaid NOT LIKE groupprice"
Dim Records() As String
Dim FieldDelimiter As
String = "**"
//
Store Results in Array
Records = SQLSelect (sql,FieldDelimiter)
//
Proceed if we have received
any records
If Ubound(Records) > -1 Then
//
If we produced
an error, the returning record
//
starts with the String : "ERROR"
If Left(Records(0 ),5 )="ERROR"
Then
MsgBox Records(0 ) // Display warning
Else
Dim StrOpenBills As
String
Dim NumOpenBills As
Integer
//
Number of open bills found
StrOpenBills = NthField(records(0
),FieldDelimiter,1 )
NumOpenBills = Val(StrOpenBills)
If NumOpenBills > 0
Then
MsgBox ("Deletion
was canceled!" + EOL
+ EOL + "Open
invoices found: "
+ StrOpenBills)
AbortDelete (1
)
Else
AbortDelete (0
)
End If // NumOpenBills > 0
End If // Left(Records(0),5)="ERROR"
End If // Ubound(Records) > -1
End If // Ubound(arID) > -1
End If // modul = "addresses