* Rtablit les att 4, 5 et 6 de BALANCEGENE

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

   EXECUTE 'SELECT BALANCEGENE'

   W_End="FAUX"

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

      FOR i=1 TO W_Count

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


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

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

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

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

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

      NEXT i
      WRITE ENR_BALANCEGENE ON F.BALANCEGENE,W_Cle
   REPEAT

STOP
