* MOULINETTE QUI COMPARE LES SECTIONS ANALYTIQUES PARAMETREES DANS LE PLANCOMPTABLE 
* ET CELLES SUR LESQUELLES IL Y A EU DES ECRITURES.

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","BALANCEGENE" TO F.BALANCEGENE ELSE PRINT "OUVERTURE BALANCEGENE" ;* en lecture
OPEN "","PLANCOMPTABLE" TO F.PLANCOMPTABLE ELSE PRINT "OUVERTURE PLANCOMPTABLE" ;* en lecture
OPEN "","BALANCEANAL" TO F.BALANCEANAL ELSE PRINT "OUVERTURE BALANCEANAL" ;* en lecture

*   EXECUTE 'SETPTR 0,,,,,1, "MODE=RAW",DEST \\SERVEURNINF\MATRICEPSON,NOHEAD,NOFMT,EJECT,COPIES 1,BRIEF'

   PRINTER ON

   EXECUTE 'SELECT BALANCEGENE AVEC 0 >= "':"N00016000000000":'" AND AVEC 0 <= "':"N00017999999999":'" PAR 0'
   EXECUTE 'SAUVE-LISTE W_RequeteBalGene'
   EXECUTE "LISTE W_RequeteBalGene" RETURNING MSGCODE

   IF MSGCODE<1> # 209 THEN

      SELECT F.BALANCEGENE TO W_RequeteBalGene

      W_End="FAUX"
      W_SectAnal=""

      LOOP
         READNEXT W_Cle FROM W_RequeteBalGene ELSE W_End = "VRAI"
      WHILE W_End = "FAUX" DO

         READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_Cle[3,13] ELSE ENR_PLANCOMPTABLE=""
         W_SectAnal = ""
         W_Count = DCOUNT(ENR_PLANCOMPTABLE<5>,CHAR(253))

         IF ENR_PLANCOMPTABLE<5> # ""THEN
            FOR i = 1 TO W_Count
               W_SectAnal<i>=ENR_PLANCOMPTABLE<5,i>
            NEXT i


            W_Temp='SELECT BALANCEANAL AVEC 0 = "':W_Cle[1,15]:"]":'" AND AVEC CodeSectBalAnal # "':W_SectAnal<1>:'"'
            IF W_Count > 1 THEN
               FOR i = 2 TO W_Count
                  W_Temp=W_Temp:' AND AVEC CodeSectBalAnal # "':W_SectAnal<i>:'"'
               NEXT i
            END

            EXECUTE W_Temp
            EXECUTE 'SAUVE-LISTE W_RequeteBalAnal'
            EXECUTE "LISTE W_RequeteBalAnal" RETURNING MSGCODE

            IF MSGCODE<1> # 209 THEN
  
               SELECT F.BALANCEANAL TO W_RequeteBalAnal

               W_Fini="FAUX"
               W_SectNonParam=""
               j=1
               W_Print=""

               LOOP
                  READNEXT W_CleAnal FROM W_RequeteBalAnal ELSE W_Fini = "VRAI"
               WHILE W_Fini = "FAUX" DO
                  W_SectNonParam<j>=W_CleAnal[16,3]
                  j=j+1

               REPEAT

               W_Print=W_Cle[6,10]:" ":ENR_PLANCOMPTABLE<1>: SPACE(40-LEN(ENR_PLANCOMPTABLE<1>)):"  ":"sections paramtres dans le plan comptable : "

               FOR i = 1 TO W_Count
                  W_Print=W_Print:" - ":W_SectAnal<i>
               NEXT i
               PRINT W_Print

               W_Print=""

               W_Print=SPACE(53):"sections renseignes et non paramtres dans le plan comptable : "

               W_Count2 = DCOUNT(W_SectNonParam,CHAR(254))
               FOR i = 1 TO W_Count2
                  W_Print=W_Print:" - ":W_SectNonParam<i>
               NEXT i

               PRINT W_Print

            END

         END
      REPEAT
   END

   PRINTER OFF
   PRINTER CLOSE

STOP
