* Rtablit les att 4, 5 et 6 de BALANCEANAL

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

   EXECUTE 'SELECT BALANCEANAL'

   W_End="FAUX"

   LOOP
      READNEXT W_Cle ELSE W_End = "VRAI"
   WHILE W_End = "FAUX" DO
      READ ENR_BALANCEANAL FROM F.BALANCEANAL,W_Cle ELSE ENR_BALANCEANAL=""
      W_Count=DCOUNT(ENR_BALANCEANAL<9>,CHAR(253))
      ENR_BALANCEANAL<4>=""
      ENR_BALANCEANAL<5>=""
      ENR_BALANCEANAL<6>=""
      ENR_BALANCEANAL<7>=""

      FOR i=1 TO W_Count

         READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENE,ENR_BALANCEANAL<9,i> ELSE ENR_DETAILECRITUREANAL=""


         * recherche le mois
         W_Date = OCONV(ENR_BALANCEANAL<8,i>,"D4/")
         W_Mois=W_Date[4,2]
         k=1
         LOOP
         WHILE INT(ENR_BALANCEANAL<4,k>) < INT(W_Mois) AND ENR_BALANCEANAL<4,k> # "" DO
            k=k+1
         REPEAT

         * dbit par mois
         IF ENR_DETAILECRITUREGENE<6> # "" THEN
            IF ENR_BALANCEANAL<4,k>=W_Mois THEN
               ENR_BALANCEANAL<5,k>=ENR_BALANCEANAL<5,k> + ENR_DETAILECRITUREGENE<6>
            END ELSE
               ENR_BALANCEANAL=INSERT(ENR_BALANCEANAL,4,k;W_Mois)
               ENR_BALANCEANAL=INSERT(ENR_BALANCEANAL,5,k;ENR_DETAILECRITUREGENE<6>)
            END
         END ELSE
            IF ENR_BALANCEANAL<4,k> = "" THEN
               ENR_BALANCEANAL=INSERT(ENR_BALANCEANAL,4,k;W_Mois)
               ENR_BALANCEANAL=INSERT(ENR_BALANCEANAL,5,k;"0")
            END
         END

         * crdit par mois
         IF ENR_DETAILECRITUREGENE<7> # "" THEN
            IF ENR_BALANCEANAL<4,k>=W_Mois THEN
               ENR_BALANCEANAL<6,k>=ENR_BALANCEANAL<6,k> + ENR_DETAILECRITUREGENE<7>
            END ELSE
               ENR_BALANCEANAL=INSERT(ENR_BALANCEANAL,4,k;W_Mois)
               ENR_BALANCEANAL=INSERT(ENR_BALANCEANAL,6,k;ENR_DETAILECRITUREGENE<7>)
            END
         END ELSE
            IF ENR_BALANCEANAL<6,k> = "" THEN
               ENR_BALANCEANAL<6,k>="0"
            END
         END

         * quantit par mois
         k = 1
         LOOP
         WHILE INT(ENR_BALANCEANAL<4,k>) # INT(W_Mois) AND ENR_BALANCEANAL<4,k>#"" DO
            k=k+1
         REPEAT

         IF ENR_DETAILECRITUREGENE<9> # "" THEN
            IF ENR_BALANCEANAL<7,k>="" THEN
               ENR_BALANCEANAL<7,k>=ENR_DETAILECRITUREGENE<9>
            END ELSE
               ENR_BALANCEANAL<7,k>=ENR_BALANCEANAL<7,k> + ENR_DETAILECRITUREGENE<9>
            END
         END ELSE
            IF ENR_BALANCEANAL<7,k> = "" THEN
               ENR_BALANCEANAL=INSERT(ENR_BALANCEANAL,7,k;"0")
            END
         END

      NEXT i
      WRITE ENR_BALANCEANAL ON F.BALANCEANAL,W_Cle
   REPEAT

STOP
