| @ATTACK - @Default.Stops |
| QTIPS - Stop Lists |
| Reader's Clinic - Stop Lists |
| QTIPS - Default Stop Lists |
| QTIPS - Manipulating XREF formulae. |
| Reader's Clinic - RList Column Names |
| Reader's Clinic - Blank Column Headings in RLIST |
| QTIPS - Column Heading Limit |
| QTIPS - Using @Upper.Case and @Lower.Case with Foreign Languages |
| @ATTACK - @Lower.Case |
| @ATTACK - @Upper.Case |
| Sorting out Collation Sequences by Mike Pope |
| Bugs and PCs - Xlate with Multipart Keys |
| VROOM - Window Processing II |
| Indexing on Xlates |
| Collector Windows |
| QTIPS - Reusing Symbolics in Windows |
| QTIPS - Hiding Symbolic Source Code |
| Simple Security |
| QTIPS - Hiding Symbolic Source Code |
| Using One Dictionary With Multiple Tables - Aaron Kaplan - SoftMart Inc |
| QTIPS - DOSTime |
| VERBatim - V11 |
| @ATTACK - @Backgrnd.Time |
| @ATTACK - @Index.Time |
| QTIPS - Time-outs in Windows |
| VERBatim - V17 |
| VERBatim - V6 |
| VERBatim - V125 |
| Utility Diskette # 3 - Part I |
| Version 3 Technical Highlights - Copying Rows Programmatically |
| Version 3 TCL Subroutines - Copying Rows |
| SecureUser |
| VERBatim - V25 |
| @ATTACK - @Files.System |
| Advanced Revelation Initialisation Sequence (Overview) by Mike Pope |
| REVMEDIA Revisted |
| Catalyst |
| @ATTACK - @Ans |
| QTIPS - Compiling Work around on runtimes |
| QTIPS - Potential Problem When Using @ANS |
| Make.Index |
| QTIPS - Btree.Extract |
| !File Records |
| Index Sub Revisited |
| QTIPS - Stop Lists |
| Reader's Clinic - Stop Lists |
| Utility Diskette # 4 |
| QTIPS - Manipulating XREF formulae. |
| Playing with Scan Codes |
| QTIPS - Compiling Protection Code |
| QTIPS - Invalid Code and Command |
| QTIPS - Code/Command Help |
| Compiling 64K on a Shoestring by Blaise Wrenn (LexStat Systems Ltd) |
| QTIPS - Using @Upper.Case and @Lower.Case with Foreign Languages |
| @ATTACK - @Lower.Case |
| Sorting out Collation Sequences by Mike Pope |
| QTIPS - Using @Upper.Case and @Lower.Case with Foreign Languages |
| @ATTACK - @Upper.Case |
| Sorting out Collation Sequences by Mike Pope |
| Vroom |
| QTIPS - Replacing GAS.BAR routine during PERFORM "SELECT" |
| QTIPS - Extended Select BY |
| QTIPS - PERFORM Arguments and FMT Specifications |
| What's New (and un(der)documented!) In 2.12 |
RevMedia FKB
| Document | V4I8A11 |
| Title | QTIPS - Manipulating XREF formulae. |
| Keywords | XREF FORMULA STOP LIST |
| Text | Perry Howell at the Inland Revenue recently encountered PROBLEMS when trying to set a large stop list for a cross reference index on a text column Even though the index itself was DEFINED to be case insensitive words were only stopped if they were entered into the text in UPPER case This fairly fundamental flaw will not be addressed in 3 03 so a short term work round was required (Ideally RevTI would provide two separate flags for case sensitivity so that even in a case sensitive cross reference the stop list could still be tagged as case insensitive) A simple solution is to create a symbolic which takes the text and converts it into upper case and then index the symbolic instead However similar requirements encountered over the years have involved the elimination of numeric "words" and the exclusion of all words of less than four letters Unless you have a Scrabble dictionary and a long long time to enter the stop list there is a more general technique which addresses all these requirements and many more besides Caveat : This technique involves editing the formula generated for the Column_XREF dictionary item If the index is ever removed and reinstalled any changes made to the formula will be lost so it is a good idea to keep a backup copy safe The standard formula generated by the system for a cross reference is of the form CALL XREF({COLUMN} HexDelimiters StopList StopMode) (see REVMEDIA passim for a full discussion of these parameters) Pre processing can be applied to the data before the call is made to avoid the case sensitivity problem In addition any subsequent processing can be applied to the multi valued @ANS which is returned by the XREF call allowing words to be excluded according to any pre programmed general rule The source code EXAMPLE given below shows the formula for a column called TEXT_XREF which implements all of the rules mentioned above * Make stop list case insensitive Temp = {TEXT} Convert @Lower Case To @Upper Case In Temp CALL XREF(Temp \202E2C\ "COMPUTER":@VM:"PRINTER" "2") * Now perform any additional FILTERING resetting @ANS NewList = '' Col = 0 Loop Remove Word FROM @Ans At Col SETTING Flag While Word Begin Case Case Word Matches "0N" ;Null Case Len(Word) LT 4 ;Null Case 1 ;NewList:= Word:@Vm End Case Repeat NewList[ 1 1] = '' Transfer NewList To @Ans (Volume 4 Issue 8 Pages 13 14) |
Page last modified: 08/02/03