Programming with the VPE code library: Difference between revisions
From VistApedia
Jump to navigationJump to search
No edit summary |
|||
| (8 intermediate revisions by the same user not shown) | |||
| Line 11: | Line 11: | ||
=== LIST^%ZVEMKT (Generic Lister) === | |||
=== SELECT^%ZVEMKF -- generic selecter === | |||
(different from SELECT^%ZVEMKT) | |||
Examples: | Examples: | ||
| Line 21: | Line 23: | ||
the space key) a list of fileman fields from file 50. [ESC] will jump | the space key) a list of fileman fields from file 50. [ESC] will jump | ||
out, and the results are stored in ^TMP("VPE","FIELDS",$J,*) | out, and the results are stored in ^TMP("VPE","FIELDS",$J,*) | ||
=== SELECT^%ZVEMKT (Generic Lister) === | |||
Here is some code that uses the VPE Selector tool. It is just a wrapper | |||
'''Selector(pArray,pResults,Header)''' | |||
;"Purpose: Interface with VPE Selector code to select from an array | |||
;"Input: pArray -- NAME OF array holding items to be selected from | |||
;" Expected format: | |||
;" @pArray@("Display Words")=ReturnValue <-- optional | |||
;" @pArray@("Display Words")=ReturnValue | |||
;" @pArray@("Display Words")=ReturnValue | |||
;" pResults -- NAME OF array to have results returned in | |||
;" ** Note: Prior will NOT be KILLED first | |||
;" Format of returned array: | |||
;" Only those valuse that user selected will be returned | |||
;" @pResults@("Display Words")=ReturnValue <-- ptional | |||
;" @pResults@("Display Words")=ReturnValue | |||
;" @pResults@("Display Words")=ReturnValue | |||
;" Header -- OPTIONAL -- A header text to show. | |||
new ref set ref=$name(^TMP("VEE",$J)) | |||
kill @ref | |||
if $get(pArray)="" goto SelDone | |||
if $get(pResults)="" goto SelDone | |||
;"First set up array of options | |||
new DispWords,RtnValue | |||
new order set order=1 | |||
set DispWords=$order(@pArray@("")) | |||
if DispWords'="" for do quit:(DispWords="") | |||
. set RtnValue=$get(@pArray@(DispWords),"<NONE>") | |||
. set @ref@(order)=RtnValue_$char(9)_$extract(DispWords,1,$get(IOM,80)) | |||
. set order=order+1 | |||
. set DispWords=$order(@pArray@(DispWords)) | |||
if $get(Header)'="" set @ref@("HD")=Header | |||
;"Note: Rules of use: | |||
;" ref must=^TMP("VEE",$J) | |||
;" Each line should be in this format: | |||
;" @ref@(number)=ReturnValue_$char(9)_DisplayValue | |||
;" @ref@(number)=ReturnValue_$char(9)_DisplayValue | |||
;" @ref@(number)=ReturnValue_$char(9)_DisplayValue | |||
;" Results come bac in: | |||
;" ^TMP("VPE","SELECT",$J) | |||
D SELECT^%ZVEMKT(ref) | |||
;"Format selected options. | |||
new index set index=$order(^TMP("VPE","SELECT",$J,"")) | |||
if index'="" for do quit:(index="") | |||
. new s,s1,s2 | |||
. set s=$get(^TMP("VPE","SELECT",$J,index)) | |||
. set s1=$piece(s,$char(9),1) | |||
. set s2=$piece(s,$char(9),2) | |||
. set @pResults@(s2)=s1 | |||
. set index=$order(^TMP("VPE","SELECT",$J,index)) | |||
kill ^TMP("VPE","SELECT",$J) | |||
kill @ref | |||
SelDone | |||
quit | |||
TestSel | |||
new temp,results | |||
set temp("Kevin")="option 1" | |||
set temp("John")=123345 | |||
set temp("Bill")=$J | |||
do Selector("temp","results","Here is some header text") | |||
if $data(results) zwr results(*) | |||
quit | |||
Latest revision as of 18:08, 23 September 2006
Programming with the VPE code library
Started 7/24/2006 by K Toppenberg
I'll use this to capture notes:
The code library is in the %ZVEM namespace. The source files are stored in _ZVEM*.m on GT_M
The %ZVEMKT* modules contain the code for the scrollable display/selector.
LIST^%ZVEMKT (Generic Lister)
SELECT^%ZVEMKF -- generic selecter
(different from SELECT^%ZVEMKT)
Examples:
do SELECT^%ZVEMKTF(50,"TOP") will allow a user to select (by toggling with
the space key) a list of fileman fields from file 50. [ESC] will jump
out, and the results are stored in ^TMP("VPE","FIELDS",$J,*)
SELECT^%ZVEMKT (Generic Lister)
Here is some code that uses the VPE Selector tool. It is just a wrapper
Selector(pArray,pResults,Header)
;"Purpose: Interface with VPE Selector code to select from an array
;"Input: pArray -- NAME OF array holding items to be selected from
;" Expected format:
;" @pArray@("Display Words")=ReturnValue <-- optional
;" @pArray@("Display Words")=ReturnValue
;" @pArray@("Display Words")=ReturnValue
;" pResults -- NAME OF array to have results returned in
;" ** Note: Prior will NOT be KILLED first
;" Format of returned array:
;" Only those valuse that user selected will be returned
;" @pResults@("Display Words")=ReturnValue <-- ptional
;" @pResults@("Display Words")=ReturnValue
;" @pResults@("Display Words")=ReturnValue
;" Header -- OPTIONAL -- A header text to show.
new ref set ref=$name(^TMP("VEE",$J))
kill @ref
if $get(pArray)="" goto SelDone
if $get(pResults)="" goto SelDone
;"First set up array of options
new DispWords,RtnValue
new order set order=1
set DispWords=$order(@pArray@(""))
if DispWords'="" for do quit:(DispWords="")
. set RtnValue=$get(@pArray@(DispWords),"<NONE>")
. set @ref@(order)=RtnValue_$char(9)_$extract(DispWords,1,$get(IOM,80))
. set order=order+1
. set DispWords=$order(@pArray@(DispWords))
if $get(Header)'="" set @ref@("HD")=Header
;"Note: Rules of use:
;" ref must=^TMP("VEE",$J)
;" Each line should be in this format:
;" @ref@(number)=ReturnValue_$char(9)_DisplayValue
;" @ref@(number)=ReturnValue_$char(9)_DisplayValue
;" @ref@(number)=ReturnValue_$char(9)_DisplayValue
;" Results come bac in:
;" ^TMP("VPE","SELECT",$J)
D SELECT^%ZVEMKT(ref)
;"Format selected options.
new index set index=$order(^TMP("VPE","SELECT",$J,""))
if index'="" for do quit:(index="")
. new s,s1,s2
. set s=$get(^TMP("VPE","SELECT",$J,index))
. set s1=$piece(s,$char(9),1)
. set s2=$piece(s,$char(9),2)
. set @pResults@(s2)=s1
. set index=$order(^TMP("VPE","SELECT",$J,index))
kill ^TMP("VPE","SELECT",$J)
kill @ref
SelDone
quit
TestSel
new temp,results
set temp("Kevin")="option 1"
set temp("John")=123345
set temp("Bill")=$J
do Selector("temp","results","Here is some header text")
if $data(results) zwr results(*)
quit