DICFIX ;SEA/TOAD,SF/TKW-FileMan: Finder, Search Compound Indexes ;5SEP2014
Source file <DICFIX.m>
action | A | extended action | Ea | event driver | Ed | subscriber | Su | protocol | O | limited protocol | LP | run routine | RR | broker | B | edit | E | server | Se | P | screenman | SM | inquire | I |
Package | Total | Caller Graph |
---|---|---|
VA FileMan | 1 | DICF3 |
Name | Comments | DBIA/ICR reference |
---|---|---|
WALK(DIFLAGS,DINDEX,DIDENT,DIFILE,DIEN,DIFIEN,DISCREEN,DILIST,DIC,DIY,DIYX) | ;
|
|
PREP | ; prepare to loop through subscript
|
|
LOOP | ; loop through subscripts
|
|
DATA | ||
IEN | ||
CLEAN | ; clean up after loop, exit
|
|
CHK | ; See whether we have a match or are at the end of the subscripts.
|
|
MATCH | ; No more subscripts or partial matches, or past our TO value?
|
|
NUM | ;I +$P($G(DIPART),"E")=$G(DIPART),+$P(DIVAL,"E")=DIVAL,DIVAL'=DIPART S DIDONE=1 Q ;***'100' SHOULD NOT MATCH '1000' -- MCPHELAN. BUT VA DISAGREES.
|
|
TRY | ; Apply screens to entry. If passed, add entry to output.
|
|
DICLIST | ; Build output list when Finder is called from ^DIC.
; Display entries and allow selection if screen is filled. |
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^TMP("DIERR" | CHK+8!, CHK+17! |
Name | Field # of Occurrence |
---|---|
^( | IEN+4 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
D | DICLIST+2~, DICLIST+3* |
DI0NODE | TRY+2~*, TRY+3, TRY+7 |
DIC | WALK~, DATA+14 |
DIC(0 | DICLIST+2 |
DIDENT | WALK~, DATA+14, TRY+7 |
DIDENT( | PREP+5, DATA+8, DATA+12*, DATA+16*, CLEAN+2*, TRY+9 |
DIDONE | LOOP+2~*, DATA+4*, DATA+5, DATA+9*, DATA+18*, IEN+2*, CHK+9*, CHK+10, CHK+11*, CHK+12 , CHK+13*, CHK+15, CHK+19*, CHK+21, CHK+22*, MATCH+2*, MATCH+3*, NUM+1, NUM+2, TRY+9* , DICLIST+9* |
DIEN | WALK~, DATA+14, TRY+1*, TRY+2, TRY+3, TRY+7, DICLIST+3 |
DIERR | LOOP+2, DATA+18, CHK+8!, CHK+17!, TRY+8 |
DIFIEN | WALK~, DATA+14, TRY+3, TRY+7 |
DIFILE | WALK~, DATA+14, TRY+2, TRY+3, TRY+7, DICLIST+2~ |
DIFILE( | TRY+2 |
DIFINDR | DICLIST+2~, DICLIST+3* |
DIFL | CHK+2~, CHK+3*, CHK+7, CHK+16 |
DIFLAGS | WALK~, DATA+14, CHK+1, CHK+8, CHK+12, CHK+17, CHK+21, MATCH+1, MATCH+2, TRY+3 , TRY+5, TRY+7 |
DIFLD | CHK+2~, CHK+3*, CHK+7, CHK+16 |
DILIST | WALK~, DATA+14, TRY+7 |
DIMNEM | IEN+3~, IEN+6* |
DIMORE | PREP+4~*, CHK+12, CHK+13, CHK+21, CHK+22 |
DINDEX | WALK~, DATA+14, IEN+3, CHK+13, CHK+22, NUM+2, TRY+3, TRY+7, DICLIST+3 |
DINDEX( | PREP+3, PREP+4, PREP+6, PREP+7, LOOP+3, DATA+3, DATA+6, DATA+7, DATA+11*, DATA+12* , IEN+4, IEN+5, CLEAN+1*, CHK+1, CHK+3, CHK+4, CHK+6, CHK+10, CHK+11, CHK+16* , CHK+17*, MATCH+1, MATCH+2, NUM+1, TRY+1* |
DINDEX("#" | DATA+1, CLEAN+1 |
DINDEX("AT" | PREP+2, DATA+11*, DATA+15* |
DINDEX("DONE" | DATA+18, CHK+12, CHK+21, TRY+9*, DICLIST+9* |
DINDEX("TOTAL" | DATA+8 |
DINDEX(1 | DATA+13*, DATA+17*, DICLIST+3, DICLIST+4, DICLIST+5, DICLIST+6 |
DIPART | PREP+4~*, DATA+7*, CHK+11*, CHK+13, CHK+22, MATCH+3, NUM+2 |
DIQUIET | DICLIST+2~ |
DISCREEN | WALK~, DATA+14, TRY+3 |
DISCREEN("V" | CHK+4 |
DISKIP | LOOP+2~, DATA+2*, DATA+3, DATA+5, DATA+8*, CHK+4, CHK+6*, CHK+19*, NUM+1, NUM+2 |
DISUB | PREP+2~*, PREP+3, PREP+4, PREP+6, PREP+7, LOOP+3, DATA+1, DATA+3, DATA+6, DATA+7 , DATA+11, DATA+12, DATA+13, DATA+15, DATA+17, IEN+4, IEN+5, CLEAN+1, CHK+1, CHK+3 , CHK+4, CHK+6, CHK+10, CHK+11, CHK+13, CHK+16, CHK+17, CHK+22, MATCH+1, MATCH+2 , NUM+1, TRY+1 |
DITRXNO | PREP+5~*, DATA+5, DATA+6*, DATA+7, DATA+8, DATA+12, DATA+16, CHK+10*, CHK+11, MATCH+1 , MATCH+2, NUM+1 |
DIV | CHK+2~, CHK+3*, CHK+5, CHK+7, CHK+8, CHK+16, CHK+17 |
DIVAL | PREP+3~*, PREP+6, PREP+7*, LOOP+3*, DATA+3, DATA+4, DATA+7*, DATA+11, DATA+13, DATA+17 , IEN+2, IEN+4, IEN+5, CHK+3, CHK+7~*, CHK+8*, CHK+9, CHK+13, CHK+22, MATCH+1 , MATCH+2, MATCH+3, NUM+2, TRY+1 |
DIX | DICLIST+2~, DICLIST+3*, DICLIST+4 |
DIY | WALK~, DATA+14 |
DIYX | WALK~, DATA+14 |
>> DS(0 | DICLIST+5*, DICLIST+6*, DICLIST+9 |
DTOUT | DICLIST+2! |
DUOUT | DICLIST+2! |
G | CHK+5~*, CHK+6 |
U | DATA+13 |
X | DICLIST+2~, DICLIST+4* |
Y | DICLIST+2~, DICLIST+3* |