cANIMP21 ;Wijzigen via Excel; cANIMP2 ; T0 ;Wijzigen via Excel; T1 ;Indeling klopt niet : ; T2 ; onbekend; T3 ;Record is niet uniek; T4 ;Record kon niet worden geopend; T5 ;U heeft geen licentie voor dit bestand : ; T6 ;Interne sleutel record niet gevonden; T7 ;Gegevens record niet terug gevonden; T8 ;Record is in gebruik; T9 ;Record kon niet worden gewijzigd; T10 ; werd niet ingevuld; T11 ;Interne sleutel onbekend; ; T0F ;Modification par Excel; T1F ;Structure incorrecte : ; T2F ; inconnu; T3F ;Enregistrement n'est pas unique; T4F ;Enregistrement ne fut pas créé; T5F ;Vous n'avez pas de license pour ce fichier : ; T6F ;Clé interne de l'enregistrement ne fut pas retrouvée; T7F ;Données de l'enregistrement introuvables; T8F ;Enregistrement en usage; T9F ;Enregistrement ne peut pas être modifié; T10F ; n'est pas rempli; T11F ;Clé interne inconnu; ; YZ Q ; ; Openen via Excel P(Q,QU,BEST,UI1EX,IMPUI1,IMPREF,IMPTYPE) N UFU S UFU="O" S OK=$$IMP(Q,QU,BEST,UI1EX,IMPUI1,IMPREF,IMPTYPE,UFU) Q OK ; ; Wijzigen via Excel W(Q,QU,BEST,UI1EX,IMPUI1,IMPREF,IMPTYPE) N UFU S UFU="W" S OK=$$IMP(Q,QU,BEST,UI1EX,IMPUI1,IMPREF,IMPTYPE,UFU) Q OK ; DIR(UI1EX) ; Ophalen locatie en bestandsnaam voor import bestand N DIR,BEST S $ZT="TRAP^cAN000" S DIR=$$SIG^cAFA1("EXCEL.LAYOUT",UI1EX,104) I '$L(DIR) G DIRZ S BEST=$P(^(0),D,5) I '$L(BEST) S DIR="" G DIRZ S DIR=$$SIG^cAFA1("SYS.CL",DIR,104)_D_BEST DIRZ Q DIR ; FOUT(FOUT,NODET) ; Wegschrijven fout in exceptielijst I $G(NODET) S OK=$$ERR^cANIMP02(Q,QU,"",IMPTYPE,IMPUI1,"",FOUT,0,"") G FOUTZ I '$G(SWFOUT) S OK=$$ERR^cANIMP02(Q,QU,"",IMPTYPE,IMPUI1,IMPVNR,KEYOMS,1,"") I '$G(NODET) S OK=$$ERR^cANIMP02(Q,QU,"",IMPTYPE,IMPUI1,IMPVNR,FOUT,2,"") S SWFOUT=1 FOUTZ Q ; ; Importeren en verwerken excel-file IMP(Q,QU,BEST,UI1EX,IMPUI1,IMPREF,IMPTYPE,UFU) N TIT,BTAB,OK,DEL,UI1,INH,IMPVNR,BKEY,VNR,LIJN,SWOK,UI1C,I1,KEYOMS,UQC,USC,INHDMS,UREF,A,B,SW3,EXTWIJZ,TAB,UI1BEST,EXCEL S $ZT="TRAP^cAN000" ; UI1 van EXCEL.LAYOUT wegschrijven bij IPMUI1 S TAB(117)=UI1EX I '$$LOGW^cANIMP02(Q,IMPDMS,IMPUI1,.TAB) S OK=0 G IMPZ D DMS^cAN000("UQC","USC",BEST) I '$L(UQC)!'$L(USC) D FOUT($P($T(@("T5"_QT)),U,2)_BEST,1) G IMPZ I '$D(^DMC(UQC,USC)) D FOUT($P($T(@("T5"_QT)),U,2)_BEST,1) G IMPZ S UREF=^DMC(UQC,USC,"DATA","REF") S INHDMS=^DMS(Q,BEST,0) ; Samen stellen tabel met te exporteren B-indexen S TIT=$$TIT^cANIMP2(UI1EX,$S(UFU="W":1,1:0)) ; Ophalen rubrieken uit EXCEL.LAYOUT voor in Excel file D RUBR^cANIMP2(UI1EX,UFU,$P(^DMS(Q,BEST,0),D,23)) ; Aflopen van de records S DEL=$C(9),OK=1,UI1=IMPUI1 S INH=$TR(@IMPREF@(11),DEL,D) ; Controleren of titel in file overeen komt met Excel lay-out I INH'=TIT D FOUT($P($T(@("T1"_QT)),U,2)_INH,1) G IMPZ I UFU="W" S TIT=$P(TIT,D,2,$L(TIT,D)) ; Aflopen verschillende records S IMPVNR=11 IMPB S IMPVNR=$O(@IMPREF@(IMPVNR)) I IMPVNR="" G IMPZ S INH=^(IMPVNR),SWFOUT=0 ; Indien wijzigen: ophalen UI1 + kolom met key verwijderen uit string met inhoud record I UFU="W" S UI1BEST=$P(INH,DEL),INH=$P(INH,DEL,2,$L(INH,DEL)) ; Ophalen omschrijving van de key van het record S BKEY=$P(^DMS(Q,BEST,0),D,23) S LIJN=BKEY,KEYOMS="" S I1="" F S I1=$P(LIJN,","),LIJN=$P(LIJN,",",2,99) Q:I1="" D . S I2="" . F S I2=$O(BTAB(I2)) Q:I2="" D .. I $P(BTAB(I2),D)'=$P(I1,":") Q .. S KEYOMS=KEYOMS_$S($L(KEYOMS):" ",1:"")_$P(INH,DEL,I2) ; Overzetten gegevens in tabel om te openen IMPC K TAB,A,B,SW3 S EXTWIJZ=1,EXCEL=1 S VNR=0,SWOK=1 ; openen I UFU="O" D G IMPCA . S I1="",SW3=0,EXTWIJZ="O" . F S I1=$O(@("^"_Q_"BA(""%A"",1,BEST,NRPAT,I1)")) Q:I1="" S TAB(I1+1)=^(I1),SW3=SW3+1 . F I=1:1:SW3 F J=1:1:$L(TAB(I),D) I $P(TAB(I),D,J)="?" S $P(TAB(I),D,J)="" . M B=TAB,A=B ; wijzigen ; Testen of UI1 record is gevonden I '$L(UI1BEST) D FOUT($P($T(@("T6"_QT)),U,2)) G IMPB ; Testen of UI1 in record bestaat D I 'SWOK G IMPB . N UI1 . S UI1=UI1BEST . I '$D(@UREF) D FOUT($P($T(@("T11"_QT)),U,2)) S SWOK=0 ; Ophalen gegevens record S SW3=0 S A(1)=$$SIGN^cAFA1(BEST,UI1BEST,0),SW3=SW3+1 I '$L(A(1)) D FOUT($P($T(@("T7"_QT)),U,2)) G IMPB F i=1:1:9 S A(i+1)=$G(^(i)) I $D(A(i+1)) S SW3=SW3+1 M B=A ; Locken te wijzigen record D I 'SWOK G IMPB . N UI1 . S UI1=UI1BEST . I '$$PLUS^cANLOCK(UREF,2) D FOUT($P($T(@("T8"_QT)),U,2)) S SWOK=0 ; ; Per veld testen of de waarde correct is IMPCA S VNR=$O(^DATA(Q,"EXCEL.LAYOUT",UI1EX,VNR)) I VNR="" S VNR=0 G IMPCB S LIJN=^(VNR) ; Geen rekening houden met kolommen zonder betekenins S U7=$P(LIJN,D,2) I '$L(U7) G IMPCA ; Omvormen numerieke gegevens I $$TYPE^cANIMP2($P(LIJN,D,3),$P(BTAB(VNR),D,8))=1 D . I '$F($P(INH,DEL,VNR),".")&('$F($P(INH,DEL,VNR),",")) Q . I $F($P(INH,DEL,VNR),".")>$F($P(INH,DEL,VNR),",") S $P(INH,DEL,VNR)=$TR($P(INH,DEL,VNR),".,",",") . S $P(INH,DEL,VNR)=$TR($P(INH,DEL,VNR),",.",".") ; Controle of het niet gaat om een verwijzing naar een ander bestand, zoja, opzoeken UI1 ander bestand I $L($P(LIJN,D,10)) D . I '$L($P(INH,DEL,VNR)) Q . S UI1C=$$UI1OP^cAFA1($P(LIJN,D,10),$P(LIJN,D,11),"1\1\1",$P(INH,DEL,VNR)) . I '$L(UI1C) D FOUT($P(TIT,D,VNR)_": "_$P(INH,DEL,VNR)_" "_$P($T(@("T2"_QT)),U,2)) S SWOK=0 . S $P(INH,DEL,VNR)=UI1C ; Testen of verplicht veld is ingevuld I $P(BTAB(VNR),D,9),'$L($P(INH,DEL,VNR)) D FOUT($P(TIT,D,VNR)_$P($T(@("T10"_QT)),U,2)) S SWOK=0 I UFU="O" D . S $P(TAB(U7\100),D,U7#100)=$P(INH,DEL,VNR) . M B=TAB I UFU="W" D . S TAB(U7)=$P(INH,DEL,VNR) . S $P(B(U7\100),D,U7#100)=$P(INH,DEL,VNR) G IMPCA ; check inputs IMPCB S VNR=$O(^DATA(Q,"EXCEL.LAYOUT",UI1EX,VNR)) I VNR="" G IMPCC S LIJN=^(VNR) S U7=$P(LIJN,D,2) I '$L(U7) G IMPCB S K=$$CHECK^cANIMP2(VNR,$P(B(U7\100),D,U7#100),UFU) I 'K D FOUT($P(K,D,2,$L(K,D))) S SWOK=SWOK&K G IMPCB ; IMPCC I 'SWOK G IMPY I UFU="W" G IMPD ; Openen gegevens ; Testen of record uniek is S SWOK=$$UNIEK^cANIMP2(BEST,BKEY,.TAB) I 'SWOK D FOUT($P($T(@("T3"_QT)),U,2)) G IMPY ; Indien alle testen ok: extern openen D P^cAN220(BEST,"","","TAB","") I K="-" D FOUT($P($T(@("T4"_QT)),U,2)) G IMPY ; Wijzigen gegevens IMPD I $D(TAB) D B^cAN220(BEST,"",UI1BEST,"TAB") I K="-" D FOUT($P($T(@("T9"_QT)),U,2)) ; Unlocken van het record IMPY I UFU="W" D . N UI1 . S UI1=UI1BEST . L -@UREF G IMPB IMPZ Q OK ; LINK ; indien terugkoppeling K LINK S LBIND=BIND ; Samen stellen tabel met B-indexen F S J=$P(LBIND,","),LBIND=$P(LBIND,",",2,99) Q:J="" I $L($P(J,":",3)) S LINK($P(J,":"))=J LINKZ Q ; LOCK ; Lock/unlock LOCKZ Q ; ZZ ; 19.03.07 - 15 u 31 * V8.08