cANIMP2(BEST) ;Wijzigen via Excel; cANIMP2 ; T0 ;Wijzigen via Excel; T1 ;Keuze;0[] = exporteren;1[] = importeren en wijzigen;2[] = importeren en openen; T2 ;Er werd geen definitie ingevuld voor het ;wijzigen;openen; T3 ;Def. noodzakelijke kolommen is niet ingevuld, openen onmogelijk; T4 ;Kolom ; is noodzakelijk, openen onmogelijk; T5 ;Kolommen ; zijn noodzakelijk, openen onmogelijk; T6 ;Rubriek ; in het openingspatroon bevat geen '?'; T7 ;Interne sleutel; T8 ;Excel lay-out; T9 ;Input te lang; T10 ;Geen geldige input; T11 ;Niet wijzigbaar; T12 ;Geen definities voor kolom ; T13 ;Exporteren ; ; T0F ;Modification par Excel; T1F ;Choix;0[] = exporter;1[] = importer et modifier;2[] = importer et créer; T2F ;Aucune définition a été remplie pour la ;modification;création; T3F ;Déf. des colonnes nécessaires ne fut pas remplie, création impossible; T4F ;Colonne ; est nécessaire, création impossible; T5F ;Colonnes ; sont nécessaires, création impossible; T6F ;Rubrique ; du masque de création ne contient pas '?'; T7F ;Clé interne; T8F ;Mise en pages Excel; T9F ;Entrée trop longue; T10F ;Pas d'entrée valable; T11F ;Non modifiable; T12F ;Pas de définitions pour colonne ; T13F ;Exportation des ; ; 1 D P^cA612(2,1,20,80,1,1,1,1,$P($T(@("T0"_QT)),U,2),0,0,7,1,1) 10 W /CUP(2,2),@F1 11 D DMS^cAN000("UQC","USC",BEST) 13 I '$L(UQC)!'$L(USC) G YZ 15 I '$D(^DMC(UQC,USC)) G YZ 17 S INHDMS=^DMS(Q,BEST,0) ; Selectie excel lay-out 18 S UI1EX=$$^cANSYN("EXCEL.LAYOUT","",$G(UI1EX),"","","","I $P(^(0),D,3)=BEST") G YZ:K="-" 19 W /CUP(2,2),@F6,$P($T(@("T8"_QT)),U,2),@F9," : "_$$SIG^cAFA1("EXCEL.LAYOUT",UI1EX,101)_" "_$P(^(0),D,2)_" "_$P(^(0),D,3) ; ; Samenstellen Commentaar en input controle exporteren en importeren 2 S COM="""",CNTR="-" ; Controle of importdef. voor wijzigen zijn ingevuld 21 I $L($P(INHDMS,D,27)) S COM=$G(COM)_$P($T(@("T1"_QT)),U,3),COM=COM_" "_$P($T(@("T1"_QT)),U,4)_" ",CNTR=CNTR_"01" ; Controle of gebruiker juiste prioriteiten heeft om te openen ; en exportdef. voor openen zijn ingevuld 23 I $$O^cAN007(BEST),$L($P(INHDMS,D,26)) S COM=COM_$P($T(@("T1"_QT)),U,5),CNTR=CNTR_2 24 S COM=COM_"""" 25 S R="KEU\22\3\"_$P($T(@("T8"_QT)),U,2)_D_COM_"\1\\"""_CNTR_"""[K&$L(K)" D R0 G 18:K="-" ; Exporteren 26 I KEU=0 D EXP(BEST) W /CUP(4,2),@F1 G 25 ; Importeren en wijzigen KEU=1 27 I KEU=2 G 3 28 D MENU^cANIMP01(Q,QU,$$SIG^cAFA1("IMPORT.DEF",$P(INHDMS,D,27),101)) G 25 ; ; Importeren en openen KEU=2 ; Testen of 'B-index key' is ingevuld in ^DMS 3 I '$L($P(INHDMS,D,23)) S K=$P($T(@("T3"_QT)),U,2) D TXT^cAFA1(250) G 25 ; Testen of 'B-index key' is terug te vinden in Excel lay-out 31 I '$$BKEY(UI1EX,BEST,$P(INHDMS,D,23)) G 25 ; Vraagstelling openingspatroon 33 S UQA=$P($G(^DMS(Q,BEST,"DMA","O")),D),USA=$P($G(^("O")),D,2) 35 D ^cAN103("NRPAT",18,"DAM","NR.PATROON",1) 37 I NRPAT="-" G 25 ; Testen of openingspatroon ok is 38 I '$$PATROON(UI1EX,BEST,NRPAT) G 33 39 D MENU^cANIMP01(Q,QU,$$SIG^cAFA1("IMPORT.DEF",$P(INHDMS,D,26),101)) ; 4 G 25 ; YZ D C^cA612 Q ; ; Exporteren gegevens EXP(BEST) N INHDMS,HD,TIT,I,TAB,I1,I2,INH,VELD,TXT S $ZT="TRAP^cAN000" S INHDMS=^DMS(Q,BEST,0) W /CUP(4,2),@F6,$P($T(@("T13"_QT)),U,2)_$P(INHDMS,D,QTU*10-9),@F9," : " ; Standaard selectie D ^cAN003(6,BEST) G EXPZ:K="-" ; Initialiseren printer 'Excel' D ^cAN322("","5") I K="-" G EXPZ D PAR^cANR11(5,"MF5761EP") S HD(1)="",HD(2)=D_$P($T(@("T0"_QT)),U,2),HD(3)="" ; Samen stellen titel S TIT(1)=$$TIT(UI1EX,1) ; Samen stellen tab F I=1:1:$L(TIT(1),D) S TAB=$G(TAB)_$S($L($G(TAB)):D,1:"")_10,$P(TTXT(I),D,20)=0 ; Ophalen rubrieken uit EXCEL.LAYOUT voor in Excel file D RUBR(UI1EX,"W",$P(INHDMS,D,23)) ; Aflopen geselecteerde producten en samen stellen TXT EXPA D ^cAN004("I1",BEST) I I1="" G EXPY ; In de eerste kolom UI1 wegschrijven K TXT M TXT=TTXT S TXT(1)=I1 ; Kolom is niet wijzigbaar S $P(TXT(1),D,22)=1 ; Tekst kolom S $P(TXT(1),D,20)=0 S I2=0 F S I2=$O(BTAB(I2)) Q:I2="" D . S INH=BTAB(I2) . S VELD=$$SIG^cAFA1(BEST,I1,$P(INH,D)) . ; Kijken of er wordt doorgeschakeld naar een ander bestand . I $L($P(INH,D,2)) S VELD=$$SG^cAFA1($P(INH,D,2),VELD,$P(INH,D,3)) . S TXT(I2+1)=VELD . ; Kolom is steeds wijzigbaar . S $P(TXT(I2+1),D,22)=0 . ; Type kolom meegeven . S $P(TXT(I2+1),D,20)=$$TYPE($P(^DATA(Q,"EXCEL.LAYOUT",UI1EX,I2),D,3),$P(INH,D,8)) D ^cA334 ; Volgende gegeven ophalen G EXPA ; Einde lijst EXPY S END=1 D ^cA334 EXPZ Q ; CHECK(VNR,K,UFU) ; Controle of input voor B-index juist is N R,INH,UQA,USA,BLZ,RUBR,U2,S1,U7,UI1 S $ZT="TRAP^cAN000" S UI1=$G(UI1BEST) S INH=$G(BTAB(VNR)) I '$L(INH) S R=0_D_$P($T(@("T12"_QT)),U,2)_VNR G CHECKZ S UQA=$P(INH,D,4),USA=$P(INH,D,5),BLZ=$P(INH,D,6),RUBR=$P(INH,D,7) S U7=$P(INH,D) I '$L(U7) S R=1 G CHECKZ ; indien wijzigen en de data is niet gewijzigd I UFU="W",$P(A(U7\100),D,U7#100)=$P(B(U7\100),D,U7#100) S R=1 G CHECKZ ; niet gewijzigd ; Ophalen definities uit ^DMA S U2(1)=^DMA(UQA,USA,BLZ,RUBR,1) F S1=2:1:26 S U2(S1)=$G(^(S1)) ; test of rubriek wijzigbaar is indien switch wijzigen opstaat S R=1 I UFU="O" G CHECKA ; wijzigbaar ? I $L(U2(15)),@U2(15) S R=0 I R=0 S R=0_D_$P(U2(1),D,QTU)_" : "_K_" : "_$P($T(@("T11"_QT)),U,2) G CHECKZ CHECKA ; Test lengte input I $P(INH,D,3) G CHECKB ; indien verwijzing naar ander bestand : lengte niet testen S R=0 I $L(K)1 G UNIEKB ; Uniek zijn wordt bepaald door 1 B-index ; Opzoeken of er een UI1 bestaat UNIEKA S BIND=$P(BIND,":") S VELD=$P(TAB(BIND\100),D,BIND#100) I $L($$UI1OP^cAFA1(BEST,BIND,"1\1",VELD)) S R=0 G UNIEKZ ; Uniek zijn wordt bepaald door meerdere B-indexen ; Opzoeken of er een multiple bestaat voor de combinatie van B-indexen UNIEKB D DMS^cAN000("UQC","USC",BEST) I '$L(UQC)!'$L(USC) S R=0 G UNIEKZ I '$D(^DMC(UQC,USC)) S R=0 G UNIEKZ S LBIND=BIND ; Samen stellen tabel met B-indexen F S J=$P(LBIND,","),LBIND=$P(LBIND,",",2,99) Q:J="" S TABB($P(J,":"))="" S I1="",SWOK=0 F S I1=$O(^DMC(UQC,USC,"MULTI",I1)) Q:I1="" D Q:SWOK . K TABM . S I2="" . F S I2=$O(^DMC(UQC,USC,"MULTI",I1,I2)) Q:I2="" S TABM($P(^(I2),D))="" . ; Testen of tabel mutiple klopt met tabel B-indexen . S J="",I=1 . F S J=$O(TABB(J)) Q:J="" D Q:'I .. I '$D(TABM(J)) S I=0 Q .. K TABM(J) . I 'I!($D(TABM)) Q . S SWOK=1 ; Indien geen multiple gevonden, per B-index controleren I 'SWOK G UNIEKC ; Samen stellen functie voor test op uniek zijn via multiple S FUNC="S K=$$UI1OP^cAFA1(BEST,I1,""1\1""" S I2="" F S I2=$O(^DMC(UQC,USC,"MULTI",I1,I2)) Q:I2="" D . S J=$P(^(I2),D) . S FUNC=FUNC_","""_$P(TAB(J\100),D,J#100)_"""" S FUNC=FUNC_")" X FUNC I $L(K) S R=0 G UNIEKZ ; Uniek zijn controleren via indexen UNIEKC S IREF=^DMC(UQC,USC,"DATA","INDEX"),UREF=^("REF") S BIND1=$P($P(BIND,","),":") S VELD=$P(TAB(BIND1\100),D,BIND1#100) S VELD=$$DI^cAN000(VELD,"") ; Opzoeken alle operationele records via 1 B-index S I1=VELD_"~",R=1 F S I1=$O(@IREF@(BIND1,I1),-1) Q:$P(I1," ")'=$P(VELD," ") D Q:'R . S UI1=^(I1) . ; Indien record niet operationeel, volgende nemen . I $P(@UREF@(0),D,30) Q . ; Testen of andere waarden in bestand voorkomen, zoja: niet uniek . S I2="",R=0 . F S I2=$O(TABB(I2)) Q:I2="" D Q:R .. I $$DI^cAN000($P(@UREF@((I2\100)-1),D,I2#100),"")'=$$DI^cAN000($P(TAB(I2\100),D,I2#100),"") S R=1 UNIEKZ Q R ; R0 S $P(R,D,12)=$T(+0) D ^cAN1000 Q ; v12 23.01.95 ; ZZ ; 19.03.07 - 15 u 31 * V8.08