| 1 | TMGBROWS ;TMG/kst/Record browser ;03/25/06
|
|---|
| 2 | ;;1.0;TMG-LIB;**1**;03/10/07
|
|---|
| 3 |
|
|---|
| 4 | ;" TMG BROWSE RECORDS
|
|---|
| 5 | ;"Kevin Toppenberg MD
|
|---|
| 6 | ;"GNU General Public License (GPL) applies
|
|---|
| 7 | ;"3-10-2007
|
|---|
| 8 |
|
|---|
| 9 | ;"=======================================================================
|
|---|
| 10 | ;" API -- Public Functions.
|
|---|
| 11 | ;"=======================================================================
|
|---|
| 12 | ;"ASKBROWSE -- browse records, and follow pointers
|
|---|
| 13 |
|
|---|
| 14 | ;"=======================================================================
|
|---|
| 15 | ;" Private Functions.
|
|---|
| 16 | ;"=======================================================================
|
|---|
| 17 | ;"Browse(FileNum,IENS,ShowEmpty) --Browse a record, allowing display of
|
|---|
| 18 | ;" the current record, or follow pointers to other records.
|
|---|
| 19 | ;"DispRec(FileNum,IEN) -- To display record
|
|---|
| 20 |
|
|---|
| 21 | ;"=======================================================================
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 | ASKBROWSE
|
|---|
| 25 | ;"Purpose: To browse records, and follow pointers.
|
|---|
| 26 |
|
|---|
| 27 | write !!," -= RECORD BROWSE =-",!
|
|---|
| 28 | new FIENS,IENS
|
|---|
| 29 | AL1
|
|---|
| 30 | set FIENS=$$AskFIENS^TMGDBAPI()
|
|---|
| 31 | if (FIENS["?")!(FIENS="^") goto ASKDone
|
|---|
| 32 |
|
|---|
| 33 | set FileNum=$piece(FIENS,"^",1)
|
|---|
| 34 | set IENS=$piece(FIENS,"^",2)
|
|---|
| 35 |
|
|---|
| 36 | AL2
|
|---|
| 37 | set IENS=$$AskIENS^TMGDBAPI(FileNum,IENS)
|
|---|
| 38 | if (IENS["?")!(IENS="") goto AL1
|
|---|
| 39 |
|
|---|
| 40 | new % set %=2
|
|---|
| 41 | write "Display empty fields"
|
|---|
| 42 | do YN^DICN
|
|---|
| 43 | if %=-1 write ! goto ASKDone
|
|---|
| 44 |
|
|---|
| 45 | ;"Do the output
|
|---|
| 46 | write ! do Browse(FileNum,IENS,(%=1))
|
|---|
| 47 | set IENS=$piece(IENS,",",2,99) ;"force Pick of new record to dump
|
|---|
| 48 | if +IENS>0 goto AL2
|
|---|
| 49 | goto AL1
|
|---|
| 50 |
|
|---|
| 51 |
|
|---|
| 52 | ASKDone
|
|---|
| 53 | quit
|
|---|
| 54 |
|
|---|
| 55 |
|
|---|
| 56 | Browse(FileNum,IENS,ShowEmpty)
|
|---|
| 57 | ;"Purpose: Browse a record, allowing display of the current record, or
|
|---|
| 58 | ;" follow pointers to other records.
|
|---|
| 59 | ;"Input: FileNum -- the number of the file to browse
|
|---|
| 60 | ;" IENS -- the record number to display (or IENS: #,#,#,)
|
|---|
| 61 | ;" ShowEmpty -- OPTIONAL; if 1 then empty fields will be displayed
|
|---|
| 62 |
|
|---|
| 63 | new FldInfo,field
|
|---|
| 64 | do GetPtrsOUT^TMGDBAPI(FileNum,.FldInfo)
|
|---|
| 65 |
|
|---|
| 66 | if $extract(IENS,$length(IENS))'="," set IENS=IENS_","
|
|---|
| 67 |
|
|---|
| 68 | set field=""
|
|---|
| 69 | for set field=$order(FldInfo(field)) quit:(field="") do
|
|---|
| 70 | . new name set name=$$GetFldName^TMGDBAPI(FileNum,field)
|
|---|
| 71 | . set FldInfo(field,"NAME")=name
|
|---|
| 72 |
|
|---|
| 73 | new Menu
|
|---|
| 74 | new count set count=1
|
|---|
| 75 | write "File: ",$$GetFName^TMGDBAPI(FileNum),!
|
|---|
| 76 |
|
|---|
| 77 | set Menu(0)="File: "_$$GetFName^TMGDBAPI(FileNum)_" ("_FileNum_"), Record: "_IENS
|
|---|
| 78 | set field=""
|
|---|
| 79 | for set field=$order(FldInfo(field)) quit:(field="") do
|
|---|
| 80 | . new ptr set ptr=$$GET1^DIQ(FileNum,IENS,field,"I")
|
|---|
| 81 | . new otherName set otherName=$$GET1^DIQ(FileNum,IENS,field)
|
|---|
| 82 | . if ptr="" quit
|
|---|
| 83 | . new name set name=$$GetFldName^TMGDBAPI(FileNum,field)
|
|---|
| 84 | . set Menu(count)="BROWSE: ("_field_") "_name_"--> "_otherName_$char(9)_FldInfo(field)_"|"_ptr
|
|---|
| 85 | . set count=count+1
|
|---|
| 86 |
|
|---|
| 87 | set Menu(count)="DUMP entire record"_$char(9)_"DUMP"
|
|---|
| 88 |
|
|---|
| 89 | M0 write #
|
|---|
| 90 | set UsrSlct=$$Menu^TMGUSRIF(.Menu,"^")
|
|---|
| 91 |
|
|---|
| 92 | if UsrSlct="DUMP" do DispRec(FileNum,IENS) goto M0
|
|---|
| 93 | if UsrSlct["|" do goto M0
|
|---|
| 94 | . new newFile set newFile=$piece(UsrSlct,"|",1)
|
|---|
| 95 | . new IEN set IEN=$piece(UsrSlct,"|",2)_","
|
|---|
| 96 | . do Browse(newFile,IEN,.ShowEmpty)
|
|---|
| 97 | if UsrSlct="^" goto MenuDone
|
|---|
| 98 | goto M0
|
|---|
| 99 |
|
|---|
| 100 | MenuDone
|
|---|
| 101 | quit
|
|---|
| 102 |
|
|---|
| 103 |
|
|---|
| 104 | DispRec(FileNum,IEN)
|
|---|
| 105 | ;"Purpose: To display record
|
|---|
| 106 | ;"Input: FileNum -- The File number to display
|
|---|
| 107 | ;" IEN -- the IEN (record number) to display in file.
|
|---|
| 108 | ;"Results: none
|
|---|
| 109 |
|
|---|
| 110 | write "File: ",$$GetFName^TMGDBAPI(FileNum),!
|
|---|
| 111 | do DumpRec2^TMGDEBUG(FileNum,IEN_",",0)
|
|---|
| 112 | do PressToCont^TMGUSRIF
|
|---|
| 113 |
|
|---|
| 114 | quit
|
|---|
| 115 |
|
|---|