Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DGMSRPT2

DGMSRPT2.m

Go to the documentation of this file.
  1. DGMSRPT2 ;ALB/LBD - Military Service Inconsistency Report; 01/05/04
  1. ;;5.3;Registration;**562,1015**; Aug 13,1993;Build 21
  1. ;
  1. ; This routine prints the Military Service Data Inconsistencies
  1. ; report from the extracted data stored in ^XTMP("DSMSRPT").
  1. ;
  1. ;
  1. EN(DGBEG,DGEND,DGSRT) ; Entry point called from ^DGMSRPT
  1. ; INPUT: DGBEG - Starting record number to print
  1. ; DGEND - Ending record number to print
  1. ; DGSRT - Sort order for report (Name or SSN)
  1. N PG,LINE,RPTDT,CRT,OUT,DSH,CNT,MXLNE,DGXTMP,DGTOT,LOOP
  1. S:$G(ZTSK) ZTREQ="@"
  1. D PRTVAR
  1. U IO D HDR
  1. I 'DGTOT W !!,?10,"*** There are no records to print ***" S OUT=$$PAUSE Q
  1. S LOOP="LOOP"_DGSRT
  1. D @LOOP Q:OUT
  1. D TOT Q:OUT
  1. W ! S OUT=$$PAUSE
  1. Q
  1. LOOPN ; Sort by name. Loop through ^XTMP("DGMSRPT","MSINC","NAM", x-ref
  1. N NM,DFN
  1. S NM=""
  1. F S NM=$O(@DGXTMP@("NAM",NM)) Q:NM=""!(CNT>DGEND)!OUT S DFN="" F S DFN=$O(@DGXTMP@("NAM",NM,DFN)) Q:DFN=""!(CNT>DGEND)!OUT S CNT=CNT+1 I CNT'<DGBEG,CNT'>DGEND D PRINT
  1. Q
  1. LOOPS ; Sort by SSN. Loop through ^XTMP("DGMSRPT","MSINC","SSN", x-ref
  1. N S2,S4,S9,DFN
  1. S S2=""
  1. F S S2=$O(@DGXTMP@("SSN",S2)) Q:S2=""!(CNT>DGEND)!OUT S S4="" F S S4=$O(@DGXTMP@("SSN",S2,S4)) Q:S4=""!(CNT>DGEND)!OUT D
  1. . S S9=""
  1. . F S S9=$O(@DGXTMP@("SSN",S2,S4,S9)) Q:S9=""!(CNT>DGEND)!OUT S DFN="" F S DFN=$O(@DGXTMP@("SSN",S2,S4,S9,DFN)) Q:DFN=""!(CNT>DGEND)!OUT S CNT=CNT+1 I CNT'<DGBEG,CNT'>DGEND D PRINT
  1. Q
  1. PRINT ; Print detail
  1. N VET,CT,CAT,IN
  1. Q:'$D(@DGXTMP@(DFN))
  1. S VET=$G(@DGXTMP@(DFN,0))
  1. I LINE>MXLNE S OUT=$$PAUSE Q:OUT D HDR
  1. W !,$P(VET,U,2),?12,$E($P(VET,U,1),1,25)
  1. S LINE=LINE+1,CAT=0
  1. F CT=1:1 S CAT=$O(@DGXTMP@(DFN,CAT)) Q:CAT=""!OUT D
  1. . I CT>1 D
  1. . . I LINE>MXLNE S OUT=$$PAUSE Q:OUT D HDR
  1. . . W ! S LINE=LINE+1
  1. . W ?37,CAT
  1. . S IN="" F S IN=$O(@DGXTMP@(DFN,CAT,IN)) Q:IN=""!OUT D
  1. . . I IN>1 D Q:OUT
  1. . . . I LINE>MXLNE S OUT=$$PAUSE Q:OUT D HDR
  1. . . . W ! S LINE=LINE+1
  1. . . W ?43,@DGXTMP@(DFN,CAT,IN)
  1. Q
  1. TOT ; Print total records at the end of the report
  1. I LINE+5>MXLNE S OUT=$$PAUSE Q:OUT D HDR
  1. W !!," Starting Record #:",$$RJ^XLFSTR(DGBEG,7)
  1. W !," Ending Record #:",$$RJ^XLFSTR(DGEND,7)
  1. W !!,"Total Records Printed:",$$RJ^XLFSTR((DGEND-DGBEG)+1,7)," out of ",DGTOT
  1. Q
  1. PRTVAR ; Set up variables needed to print report
  1. S CRT=$S($E(IOST,1,2)="C-":1,1:0)
  1. S DGXTMP="^XTMP(""DGMSRPT"",""MSINC"")"
  1. S DGTOT=+$G(@DGXTMP@("CNT","VET"))
  1. S:'$G(DGBEG) DGBEG=1 S:'$G(DGEND) DGEND=DGTOT
  1. S:$G(DGSRT)="" DGSRT="N"
  1. S (PG,CNT,OUT)=0,RPTDT=$$FMTE^XLFDT(DT),MXLNE=$S(CRT:15,1:52)
  1. S DSH="",$P(DSH,"=",80)=""
  1. Q
  1. HDR ; Print report header
  1. S PG=PG+1,LINE=0
  1. W @IOF
  1. W ?0,"Report Date: ",RPTDT,?68,"Page: ",$$RJ^XLFSTR(PG,4)
  1. W !,"Sorted By: "_$S(DGSRT="N":"Name",1:"SSN (Terminal Digits)")
  1. W !!,$$CJ^XLFSTR("MILITARY SERVICE DATA INCONSISTENCIES DETAIL REPORT",80)
  1. W !!,"SSN",?12,"Veteran's Name",?37,"Cat. Inconsistencies"
  1. W !,DSH
  1. Q
  1. PAUSE() ; If report is sent to screen, prompt for next page or quit
  1. N DIR,DIRUT,DUOUT,DTOUT,X,Y
  1. I 'CRT Q 0
  1. S DIR(0)="E"
  1. D ^DIR I 'Y Q 1
  1. Q 0