cANR11E ;Print To Excel ;cANR11E
;
T1 ;TOTALS;FORMAT;FUNCTION;COLPROTECT;SUBTOTALS;SUBTOTCOL;SORT;SORTORDER;COLFORMAT;
;
YZ Q
;
CSV ; CSV-formaat ophalen
N K,I
S K="\CSV\\^l\CSV\^M^J\",I="\\\\1\"
S FORM=$$UI1^cAFA1("FORM",102,"CSV")
I $G(FORM) S K=$$SIGN^cAFA1("FORM",FORM,0),I=$G(^(1))
S $P(I,D,5)=1
S VL=$P(K,D,3),VS=$P(K,D,4),RS=$P(K,D,6),VQ=$P(I,D,5)
S S1=VS D S2^cA701 S VS=S2,S1=RS D S2^cA701 S RS=S2
CSVZ Q
;
EXCEL(FILE,FORMAT,TITEL,HEADER,TEMPLATE,PWD) ; Openen bestand "FILE" in Excel
I '$L($G(FILE)) G EXCELZ
D START^cANR0("OpenFileInExcel")
; indien file="" betekent dit print to file OFF
W FILE,! ; locatie
S FORMAT=$G(FORMAT)
I FORMAT[D F i=1:1:$L(FORMAT,D) s:'$L($P(FORMAT,D,i)) $P(FORMAT,D,i)=0
W $TR(FORMAT,D,""),! ; kolom(dataformaat)
W $G(TITEL),!
W $G(HEADER),!
W $G(TEMPLATE),!
W $G(PWD),!
D STOP^cANR0
EXCELZ K NOSEP,NOTOP,NOAFS,NOTIT,ALTHD,ALTTOP,ALTTIT,NOTOT Q
;
HD ; Alternatief voor HD^cA334F
N i,R
S $ZT="TRAP^cAN000"
D PAR^cANR11(3,1) ; header in kleur
; I '$L($O(HD(""))) K TOP,TIT G HDZ
; firmagegevens
S R3="",R="" F S R=$O(@("^"_Q_"BA(99,R)")) Q:R="" I $D(^(R))#10 S R3=R3_""_^(R)_""
I $L(R3) D SET(R3)
; hoofdinggevens
HDB S LN=0,R3="",R="" f i=1:1:3 S HD(i)=$G(HD(i),D)
F S R=$O(HD(R)) Q:R="" F R1=1:1:3 D
. S R2=$P($P(HD(R),D,R1),SUBDEL),R4=$P("HLEFT\HCENTER\HRIGHT\",D,R1)
. I R1=1,'$L(R2),R<4 S R2=$G(@("^"_Q_"BA(99,R)")) ; indien niets ingevuld voor ln 1-3 : firmagegevens
. I $L(R2) S R3=R3_"<"_R4_R_">"_R2_""_R4_R_">"
I $L(R3) D SET(R3)
; opzetten beveiliging
HDC D SET(""_$G(PTS("ALLPROTECT"))_"")
; opzetten Fit to n pages
D SET(""_$G(PTS("FTPHOR"))_"")
; opzetten pagina-orientatie
D SET(""_$G(PTS("PAGEORIENT"))_"")
; ophalen definties per kolom
HDD F i=1:1:10 S R3(i)=""
S RT="",R=1 F S RT=$O(TXT(RT)) Q:RT="" D
. S R3(1)=R3(1)_''$P(TXT(RT),D,8) ; totaal
. I $L($P(TXT(RT),D,20)) S $E(R3(2),R)=$P(TXT(RT),D,20) ; formaat (enkel als er iets ingevuld is)
. S R3(3)=R3(3)_''$P(TXT(RT),D,21) ; functie
. S R3(4)=R3(4)_''$P(TXT(RT),D,22) ; beveiligde kolom
. S R3(5)=R3(5)_(+$P(TXT(RT),D,23)) ; niveau subtotaal
. S R3(6)=R3(6)_(+$P(TXT(RT),D,24)) ; subtotaliseer kolom
. S R3(7)=R3(7)_(+$P(TXT(RT),D,25)) ; sorteervolgorde
. S R3(8)=R3(8)_(+$P(TXT(RT),D,26)) ; gesorteerde kolom
. S i="" D S $P(R3(9),"~",R)=i ; formaat
.. I $L($P(TXT(RT),D,27)) S i=$P(TXT(RT),D,27) Q ; expleciet gedefinieerd
.. ; zijn er decimalen gedefinieerd ?
.. I $L($P(TXT(RT),D,6)) S i="0"_$S($P(TXT(RT),D,6):"."_$TR($J(0,$P(TXT(RT),D,6))," ",0),1:"")
. S R=R+1
F i=1:1:10 I $L($G(R3(i))) D
. I i=2 Q:'$L($TR(R3(i),0)) S R3(i)=$TR(R3(i)," ",0) ; indien formaat allemaal 0 bevat niets meegeven
. I i=9,'$L($TR(R3(i),"~")) Q
. S R3="<"_$P($T(T1),U,1+i)_">"
. S R3=R3_$S($L($TR(R3(i),0)):R3(i),1:"") ; indien enkel maar 0 doorgegeven wordt, niets meegeven
. S R3=R3_""_$P($T(T1),U,1+i)_">"
. D SET(R3)
S NOTOT=1,NOAFS=1 ; geen totalen of afsluiting
HDE D TOP
; K HD ; nodig om geen 2de maal header en top te printen
HDZ K R,R1,R2,R3,R4,RL,RT S OK=2 Q
;
INIT ; Initialisatie print to Excell
S $ZT="TRAP^cAN000"
D CSV
S ALTTOP="D TOP^"_$T(+0) ; opzetten alternatief voor TOP (zie ook cA334F)
S ALTHD="D HD^"_$T(+0) ; alternatief voor HD (zie ook cA334F)
N A
S A=$G(^DPAR(0,"PAR","RBA",1))
D PAR^cANR11(5,$P(A,D,4)) ; paswoord
D PAR^cANR11(6,$P(A,D,5)) ; volledige beveiliging
D PAR^cANR11(7,$E($P(A,D,6)_1)) ; Fit To Page Horizontaal
D PAR^cANR11(4,$P(A,D,7)) ; template
INITZ Q
;
OPEN ; open Excel
D EXCEL($G(PTS("PR2FON")),$G(PTS("FORMAT")),$G(PTS("TITLE")),$G(PTS("HEAD")),$G(PTS("TEMPL")),$G(PTS("PWD")))
OPENZ Q
;
SET(R3) ; doorgeven naar cA700
N RT,RL
S $ZT="TRAP^cAN000"
S RT=1,RT(RT)=$G(R3),RL(RT)=$L(RT(RT)) D ^cA700
SETZ Q
;
TOP ; alternatief voor TOP^cA334F
TOPA N R1,RT,R3
S $ZT="TRAP^cAN000"
S (R,R3)=""
F S R=$O(TOP(R)) Q:R="" S LN=LN+1 D
. S R3=R3_''$G(TOP(R))
. S RT=1,R0="",R1="" K RT(RT) F S R0=$O(TOP(R,R0)) Q:R0="" D
.. S RT(RT)=$G(RT(RT))_$J("",$P(TOP(R,R0),SUBDEL,2)-$L($G(RT(RT))))_$P(TOP(R,R0),SUBDEL)
.. S R1=$P(TOP(R,R0),SUBDEL)
. I $L($G(RT(RT))) D SET(""_RT(RT)_"")
D SET(""_$TR(R3,0)_"")
D SET("")
S OK=2
TOPZ K R,R0 Q
;
ZZ ; 23.06.05 - 17 u 03 * V8.04