DEFINITION MODULE AltKeys; (* * REPERTOIRE * Release 1.6 * By Charles Bradford and Cole Brecheen * (c) Copyright 1985-1992 PMI * Green Bay, Wisconsin * All rights reserved * (414) 468-6040 * * $Header: D:/logfiles/defs/altkeys.dev 1.4 30 Dec 1990 17:58:36 coleb $ * *) FROM SYSTEM IMPORT ADDRESS; FROM NdxTypes IMPORT NdxFileType; FROM GenLists IMPORT GenList; CONST RecNameCode = 65530; CriterionCode = 65531; AltKeyCode = 65532; TYPE LogicOperator = (or, and, AndNot); SelectProc = PROCEDURE(ADDRESS, CARDINAL, CARDINAL, ARRAY OF CHAR, VAR BOOLEAN): BOOLEAN; Criterion = RECORD operator: LogicOperator; rule, field: ARRAY [0..127] OF CHAR; determiner: SelectProc; END; PROCEDURE LoadAltList( VAR NdxFile: NdxFileType; InList: GenList; FieldName: ARRAY OF CHAR; Criteria: GenList): BOOLEAN; PROCEDURE FieldLoaded( NdxFile: NdxFileType; FieldName: ARRAY OF CHAR; VAR spot: CARDINAL): BOOLEAN; PROCEDURE CreateAltList( VAR NdxFile: NdxFileType; FieldName: ARRAY OF CHAR; VAR SpotUsed: CARDINAL); PROCEDURE CriteriaMet( NdxFile: NdxFileType; Criteria: GenList; VAR CriteriaValid: BOOLEAN ): BOOLEAN; PROCEDURE DisposeAltList( VAR NdxFile: NdxFileType; FieldName: ARRAY OF CHAR); PROCEDURE TallyAltLists(NdxFile: NdxFileType; VAR TheList: GenList); PROCEDURE GetAltList( NdxFile: NdxFileType; FieldName: ARRAY OF CHAR; VAR AltList: GenList): BOOLEAN; PROCEDURE GetMatchingKey( NdxFile: NdxFileType; AltList: GenList; spot: CARDINAL; VAR RecName: ARRAY OF CHAR ); PROCEDURE GetMatchingKeys( NdxFile: NdxFileType; AltList: GenList; VAR KeyList: GenList): BOOLEAN; PROCEDURE StrSelector( TheAdr: ADDRESS; TheSize, TypeCode: CARDINAL; TheRule: ARRAY OF CHAR; VAR CriteriaValid: BOOLEAN ): BOOLEAN; PROCEDURE AddCriteria( CriteriaList: GenList; op: LogicOperator; TheSelectProc: SelectProc; TheRule, FieldName: ARRAY OF CHAR ); PROCEDURE Init(); END AltKeys.