<< Click to Display Table of Contents >> Navigation: EDP > EQuIS Format Files > Adding Format Custom Checks |
1.Add a column changed event (if missing) in AddDataHandlers method.
Public OverridesSub *AddDataHandlers(**ByRefEfd* As *EarthSoft.EDP.**EddFormatDefinition)* AddHandler Efd.Tables.Item(**"Subfacility_v1").ColumnChanged,AddressOf Me. CheckSubfacility* End Sub
Private SubCheckSubfacility(*ByVal **sender As Object*,* ByVal e As{*}System.Data.**DataColumnChangeEventArgs)*
End Sub |
2.Create a custom check that will add or remove the error/warning.
''' <summary> if accessyn = y then ReasonforNonAccess must be empty. If accessYN ='N' then ReasonForNonAcess must be populated. ''' Applies to: ''' <list type="bullet"> ''' <item>Subfacility_v1.ReasonForNonAccess</item> ''' <item>Subfacility_v1.Accessyn</item> ''' </list> ''' </summary> Private Sub ERR06(ByVal e As System.Data.DataColumnChangeEventArgs) With e.Row If .Item("accessyn").ToString.ToUpper = "Y" AndAlsoNot .IsNull("ReasonForNonAccess")Then Me.AddError(e.Row, e.Row.Table.Columns.Item("ReasonForNonAccess"),EddErrors.CustomError16) ElseIf.Item("accessyn").ToString.ToUpper = "N" AndAlso.IsNull("ReasonForNonAccess") Then Me.AddError(e.Row, e.Row.Table.Columns.Item("ReasonForNonAccess"),EddErrors.CustomError16) Else Me.RemoveError(e.Row, e.Row.Table.Columns.Item("ReasonForNonAccess"),EddErrors.CustomError16) End If End With End Sub |
3.Add a custom error message (max number of custom messages allowed is 63).
Public Overloads Overrides FunctionErrorMessage(ByVal err AsEddErrors) AsString Select Case err Case EddErrors.CustomError16 Return"If accessYN = y then ReasonforNonAccess must be empty. If accessYN ='N' then ReasonForNonAcess must be populated." Case Else ReturnMyBase.ErrorMessage(err) End Select |
4.Call the check from the column changed event.
Private SubCheckSubfacility(ByVal sender As Object, ByVal e AsSystem.Data.DataColumnChangeEventArgs) Select Casee.Column.ColumnName.ToLower Case "accessyn", "reasonfornonaccess" ERR06(e) 'If accessyn = y then ReasonforNonAccess must be empty. If accessYN ='N' then ReasonForNonAcess must be populated.
End Sub |
5.If the error is dependent on more than one column, update the cell to create cell coloring when the error is added or removed in the user interface.
Public OverridesSub Grid_AfterCellUpdate(ByVal sender As Object, ByVal e As Object, ByVal edp As Object) Select CaseCType(e.cell.row.listObject, System.Data.DataRowView).DataView.Table.TableName Case "Subfacility_v1" Subfacility_Refresh(sender, e, edp) End Select End Sub
Private Sub Subfacility_Refresh(ByValsender As Object,ByVal e As Object, ByVal edp As Object) Select Case e.Cell.Column.Key.ToLower Case "accessyn" edp.AfterCellUpdate(sender, e.Cell.Row.Cells.Item("reasonfornonaccess")) 'ERR06 End Select End Sub
|
6.To create a warning instead of an error, add the error to the Err property.
Public OverridesProperty Err() AsEddError Get Return MyBase.Err End Get Set(ByVal Value As EddError) Me._Err = Value Me._Err.SetStatus(EddErrors.CustomError16, EddError.ErrorStatus.Warning) End Set End Property |
Copyright © 2024 EarthSoft, Inc. • Modified: 16 Aug 2023