Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PosNameTypeDescriptionDefault
<1>Validation PatternTextThe cell's validation pattern"None"
<2>Conversion PatternTextThe cell's output conversion pattern"None"
<3>Validation MessageTextThe cell's message to display when data is invalid""
<4>Show Message FlagBooleanDetermines if the cell should display the validation message or simply pass it on to the OnInvalidData event1
<5>Highlight Text on Cancel FlagBooleanDetermines if the invalid text should be highlighted instead of just leaving the cursor where it is1
<6>Disable ValidationBooleanDetermines if the table's automated validation is disabled0

...

The validation pattern can be any OI pattern acceptable to the built-in OI function IConv. If you wish to remove a pattern, set this field to "None". Also, all user defined patterns must be incased written in ALL CAPS and encased in square brackets, e.g., "[PHONE_FORMAT]"

...

The conversion pattern must be a custom conversion. Simply passing built-in conversions does not work due to technical limitations. The SRP EditTable Controls calls the FMT routine via RevCAPI, and for reasons unknown to us, built-in conversions do not work when called from outside BASIC+. However, custom conversions--conversion within square brackets--work just fine. As with Validation Patterns, these must be written in ALL CAPS and encased in square brackets. We recommend creating a custom converter that is a simple wrapper around OConv. For example:

Code Block

...

Compile subroutine Cell_Conv(Conv, Ans, Branch, ReturnData)

...

Code Block


If Conv EQ "OCONV" then
   If Branch[1, 1] EQ "D" then
       If Num(Ans) then
           // The data is already in internal format, so just OConv it
           ReturnData = OConv(Ans, Branch)
       end else
           // The data is an some date format, so IConv it first, then OConv it
           ReturnData = OConv(IConv(Ans, "D"), Branch)
       end
   end else
       // For all non-date types, IConv first (just in case), then OConv it
       ReturnData = OConv(IConv(Ans, Branch), Branch)
   end
end else
   // IConv as usual
   ReturnData = IConv(Ans, Branch)
end

 ReturnReturn

Of course, you can use any custom converter you desire, just so long as you are aware that this is the best way to get built-in conversions working automatically for you in the SRP EditTable Control.

...

The validation message is the text to be presented to the end user when the data is recognized to be invalid. If there is no validation pattern, then this field is ignored. Furthermore, if this field is empty, no message will display. This text is always passed via the Message parameter of the OnInvalidData function for convenience, but you can have the Edit Table show the message for you (see below).

...

The @DATA string is only replaced when the edit table shows its own message. If you opt to capture the OnInvalidData event instead, then the @DATA string is not replaced.

...

This flag is where you choose how to handle invalid data. If you set this to 1, which is the default, then the edit table will show a standard message box with the message you supplied above. If no message was supplied or if you set this field to 0, then the OnInvalidData event fires instead.

Highlight Text on Cancel Flag

This flag allows you to specify the behavior of the cursor when data is invalid. If you set this to 1, which is the default, then the entire cell is selected. If you set this to 0, then the cursor remains in its previous position. Note that this flag is ignored if the Show Message flag is turned off. If the OnInvalidData event is used to display error messages then use the Cancel property to control the behavior of the cursor.

...

By default, the table will always attempt to validate the cell's data against the Validation Pattern. If, however, you merely want to store the validation in this property but perform the validation check yourself, you can set this flag to 1 to disable the automated validation. In this case, you would want to use thethe BeforeUpdate event to perform the validation manually.

...