ORQOCONV1 ; SLC/AGP - Utility report for Order Dialogs cont;Dec 08, 2021@10:44:36
;;3.0;ORDER ENTRY/RESULTS REPORTING;**405**;DEC 17, 1997;Build 211
;
; DBIA 5133: reading ^PXRMD file #801.41
Q
;
REPORT(REPSUB,REPTYPE,ARRAY) ;
N CNT,DISABLE,IDX,IEN,ISCOM,NAME,NL,NODE,NOUT,ONMENU,OUTPUT,ORDIALOG,PROMPT,PROMPTS
N QOIEN,SPINCNT,TCNT,TIDX,TMP,TEXT,TEXTOUT,VALUE,X
K ^TMP($J,"ORQOCONV REPORT OUTPUT")
S CNT=0,SPINCNT=0
I REPTYPE="F" D
.D SPIN^ORQOUTL("Building Report output",.SPINCNT)
.S CNT=CNT+1,^TMP($J,"ORQOCONV REPORT OUTPUT",CNT)=$$LJ^XLFSTR("Name",40)_$$LJ^XLFSTR("Disable",10)_$$LJ^XLFSTR("Attached",10)
.S CNT=CNT+1,^TMP($J,"ORQOCONV REPORT OUTPUT",CNT)=$$REPEAT^XLFSTR("-",79)
.S PROMPT="" F S PROMPT=$O(ARRAY("HASVALUE",PROMPT)) Q:PROMPT="" D
..S PROMPTS(PROMPT)=""
.S PROMPT="" F S PROMPT=$O(ARRAY("NOVALUE",PROMPT)) Q:PROMPT="" D
..S PROMPTS(PROMPT)=""
S QOIEN=0 F S QOIEN=$O(^TMP($J,REPSUB,QOIEN)) Q:QOIEN'>0 D
.I REPTYPE="F" D SPIN^ORQOUTL("Building Report output",.SPINCNT)
.S ONMENU=$S(^TMP($J,REPSUB,QOIEN)=1:"Yes",1:"No")
.S NODE=$G(^ORD(101.41,QOIEN,0))
.S NAME=$P(NODE,U)
.S DISABLE=$S($P(NODE,U,3)'="":"Yes",1:"No")
.I REPTYPE="A" D SHOW^ORQOCONV(QOIEN) W !! Q
.I CNT>2 S CNT=CNT+1,^TMP($J,"ORQOCONV REPORT OUTPUT",CNT)=""
.K ORDIALOG
.D GETQDLG^ORCD(QOIEN)
.S CNT=CNT+1,^TMP($J,"ORQOCONV REPORT OUTPUT",CNT)=$$LJ^XLFSTR(NAME,40)_$$LJ^XLFSTR(DISABLE,10)_$$LJ^XLFSTR("Attached",10)
.S PROMPT="" F S PROMPT=$O(PROMPTS(PROMPT)) Q:PROMPT="" D
..S NODE=$G(ORDIALOG("B",PROMPT))
..S IEN=+$P(NODE,U,2)
..I +$O(ORDIALOG(IEN,"?"),-1)=0 S CNT=CNT+1,^TMP($J,"ORQOCONV REPORT OUTPUT",CNT)=$$RJ^XLFSTR(PROMPT,30) Q
..S TCNT=0
..S IDX=0 F S IDX=$O(ORDIALOG(IEN,IDX)) Q:IDX'>0 D
...K ISCOM,NOUT,TEXT,TEXTOUT,VALUE,X
...S VALUE=$G(ORDIALOG(IEN,IDX))
...S ISCOM=$S(VALUE["^TMP(":1,1:0)
...I ISCOM S TIDX=0 F S TIDX=$O(@VALUE@(TIDX)) Q:TIDX'>0 D
....S TCNT=TCNT+1,TEXT(TCNT)=@VALUE@(TIDX,0)
...I 'ISCOM S TCNT=TCNT+1,TEXT(TCNT)=$$RJ^XLFSTR(PROMPT,30)_$J(" ",5)_VALUE Q
...I $D(TEXT) D Q
....D FORMAT^PXRMTEXT(1,40,.TCNT,.TEXT,.NOUT,.TEXTOUT)
....F X=1:1:NOUT D
.....I X=1 S CNT=CNT+1,^TMP($J,"ORQOCONV REPORT OUTPUT",CNT)=$$RJ^XLFSTR(PROMPT,30)_$J(" ",5)_TEXTOUT(X) Q
.....S CNT=CNT+1,^TMP($J,"ORQOCONV REPORT OUTPUT",CNT)=$J(" ",35)_TEXTOUT(X)
...S CNT=CNT+1,^TMP($J,"ORQOCONV REPORT OUTPUT",CNT)=$$RJ^XLFSTR(PROMPT,30)
S IDX=0 F S IDX=$O(^TMP($J,"ORQOCONV REPORT OUTPUT",IDX)) Q:IDX'>0 D
.W !,^TMP($J,"ORQOCONV REPORT OUTPUT",IDX)
K ^TMP($J,"ORQOCONV REPORT OUTPUT")
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORQOCONV1 2590 printed Oct 16, 2024@18:33:51 Page 2
ORQOCONV1 ; SLC/AGP - Utility report for Order Dialogs cont;Dec 08, 2021@10:44:36
+1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**405**;DEC 17, 1997;Build 211
+2 ;
+3 ; DBIA 5133: reading ^PXRMD file #801.41
+4 QUIT
+5 ;
REPORT(REPSUB,REPTYPE,ARRAY) ;
+1 NEW CNT,DISABLE,IDX,IEN,ISCOM,NAME,NL,NODE,NOUT,ONMENU,OUTPUT,ORDIALOG,PROMPT,PROMPTS
+2 NEW QOIEN,SPINCNT,TCNT,TIDX,TMP,TEXT,TEXTOUT,VALUE,X
+3 KILL ^TMP($JOB,"ORQOCONV REPORT OUTPUT")
+4 SET CNT=0
SET SPINCNT=0
+5 IF REPTYPE="F"
Begin DoDot:1
+6 DO SPIN^ORQOUTL("Building Report output",.SPINCNT)
+7 SET CNT=CNT+1
SET ^TMP($JOB,"ORQOCONV REPORT OUTPUT",CNT)=$$LJ^XLFSTR("Name",40)_$$LJ^XLFSTR("Disable",10)_$$LJ^XLFSTR("Attached",10)
+8 SET CNT=CNT+1
SET ^TMP($JOB,"ORQOCONV REPORT OUTPUT",CNT)=$$REPEAT^XLFSTR("-",79)
+9 SET PROMPT=""
FOR
SET PROMPT=$ORDER(ARRAY("HASVALUE",PROMPT))
if PROMPT=""
QUIT
Begin DoDot:2
+10 SET PROMPTS(PROMPT)=""
End DoDot:2
+11 SET PROMPT=""
FOR
SET PROMPT=$ORDER(ARRAY("NOVALUE",PROMPT))
if PROMPT=""
QUIT
Begin DoDot:2
+12 SET PROMPTS(PROMPT)=""
End DoDot:2
End DoDot:1
+13 SET QOIEN=0
FOR
SET QOIEN=$ORDER(^TMP($JOB,REPSUB,QOIEN))
if QOIEN'>0
QUIT
Begin DoDot:1
+14 IF REPTYPE="F"
DO SPIN^ORQOUTL("Building Report output",.SPINCNT)
+15 SET ONMENU=$SELECT(^TMP($JOB,REPSUB,QOIEN)=1:"Yes",1:"No")
+16 SET NODE=$GET(^ORD(101.41,QOIEN,0))
+17 SET NAME=$PIECE(NODE,U)
+18 SET DISABLE=$SELECT($PIECE(NODE,U,3)'="":"Yes",1:"No")
+19 IF REPTYPE="A"
DO SHOW^ORQOCONV(QOIEN)
WRITE !!
QUIT
+20 IF CNT>2
SET CNT=CNT+1
SET ^TMP($JOB,"ORQOCONV REPORT OUTPUT",CNT)=""
+21 KILL ORDIALOG
+22 DO GETQDLG^ORCD(QOIEN)
+23 SET CNT=CNT+1
SET ^TMP($JOB,"ORQOCONV REPORT OUTPUT",CNT)=$$LJ^XLFSTR(NAME,40)_$$LJ^XLFSTR(DISABLE,10)_$$LJ^XLFSTR("Attached",10)
+24 SET PROMPT=""
FOR
SET PROMPT=$ORDER(PROMPTS(PROMPT))
if PROMPT=""
QUIT
Begin DoDot:2
+25 SET NODE=$GET(ORDIALOG("B",PROMPT))
+26 SET IEN=+$PIECE(NODE,U,2)
+27 IF +$ORDER(ORDIALOG(IEN,"?"),-1)=0
SET CNT=CNT+1
SET ^TMP($JOB,"ORQOCONV REPORT OUTPUT",CNT)=$$RJ^XLFSTR(PROMPT,30)
QUIT
+28 SET TCNT=0
+29 SET IDX=0
FOR
SET IDX=$ORDER(ORDIALOG(IEN,IDX))
if IDX'>0
QUIT
Begin DoDot:3
+30 KILL ISCOM,NOUT,TEXT,TEXTOUT,VALUE,X
+31 SET VALUE=$GET(ORDIALOG(IEN,IDX))
+32 SET ISCOM=$SELECT(VALUE["^TMP(":1,1:0)
+33 IF ISCOM
SET TIDX=0
FOR
SET TIDX=$ORDER(@VALUE@(TIDX))
if TIDX'>0
QUIT
Begin DoDot:4
+34 SET TCNT=TCNT+1
SET TEXT(TCNT)=@VALUE@(TIDX,0)
End DoDot:4
+35 IF 'ISCOM
SET TCNT=TCNT+1
SET TEXT(TCNT)=$$RJ^XLFSTR(PROMPT,30)_$JUSTIFY(" ",5)_VALUE
QUIT
+36 IF $DATA(TEXT)
Begin DoDot:4
+37 DO FORMAT^PXRMTEXT(1,40,.TCNT,.TEXT,.NOUT,.TEXTOUT)
+38 FOR X=1:1:NOUT
Begin DoDot:5
+39 IF X=1
SET CNT=CNT+1
SET ^TMP($JOB,"ORQOCONV REPORT OUTPUT",CNT)=$$RJ^XLFSTR(PROMPT,30)_$JUSTIFY(" ",5)_TEXTOUT(X)
QUIT
+40 SET CNT=CNT+1
SET ^TMP($JOB,"ORQOCONV REPORT OUTPUT",CNT)=$JUSTIFY(" ",35)_TEXTOUT(X)
End DoDot:5
End DoDot:4
QUIT
+41 SET CNT=CNT+1
SET ^TMP($JOB,"ORQOCONV REPORT OUTPUT",CNT)=$$RJ^XLFSTR(PROMPT,30)
End DoDot:3
End DoDot:2
End DoDot:1
+42 SET IDX=0
FOR
SET IDX=$ORDER(^TMP($JOB,"ORQOCONV REPORT OUTPUT",IDX))
if IDX'>0
QUIT
Begin DoDot:1
+43 WRITE !,^TMP($JOB,"ORQOCONV REPORT OUTPUT",IDX)
End DoDot:1
+44 KILL ^TMP($JOB,"ORQOCONV REPORT OUTPUT")
+45 QUIT