**********************************************************
*  Edition du grand livre
*  Programme chaine  partir d'un projet VB
*  Vanessa
*  AVRIL 2000
**********************************************************

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "OUVERTURE ASSOCIATION" ;* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en lecture
OPEN "","BALANCEGENE" TO F.BALANCEGENE ELSE PRINT "OUVERTURE BALANCEGENE" ;* en lecture
OPEN "","BALANCEGENEARCHIVE" TO F.BALANCEGENEARCHIVE ELSE PRINT "OUVERTURE BALANCEGENEARCHIVE" ;* en lecture
OPEN "","DETAILECRITUREGENE" TO F.DETAILECRITUREGENE ELSE PRINT "OUVERTURE DETAILECRITUREGENE" ;* en lecture
OPEN "","BALANCEGENETEMPO" TO F.BALANCEGENETEMPO ELSE PRINT "OUVERTURE BALANCEGENETEMPO" ;* en lecture
OPEN "","DETAILECRITUREGENEARCHIVE" TO F.DETAILECRITUREGENEARCHIVE ELSE PRINT "OUVERTURE DETAILECRITUREGENEARCHIVE" ;* en lecture
OPEN "","DETAILECRITUREGENETEMPO" TO F.DETAILECRITUREGENETEMPO ELSE PRINT "OUVERTURE DETAILECRITUREGENETEMPO" ;* en lecture
OPEN "","PARAMENTITECOMPTA" TO F.PARAMENTITECOMPTA ELSE PRINT "OUVERTURE PARAMENTITECOMPTA" ;* en lecture
OPEN "","PLANCOMPTABLE" TO F.PLANCOMPTABLE ELSE PRINT "OUVERTURE PLANCOMPTABLE" ;* en lecture
*********************************************************
* initialisation des variables
W_Requete=""
W_RequeteTempo=""
W_Ligne=0
W_SauveLigne=0
W_Page=0
W_SauveLib = ""
W_SauvePiece = ""
W_SauveJournal = ""
W_SauveDate = ""
W_SauveNumLigne = 0
W_SauveMont = ""
W_SauveDeb=0
W_SauveCred=0
W_TotGeneQte=0
W_TotGeneDebit=0
W_TotGeneCredit=0
W_TotGeneSolde=0
W_PageTotal="FAUX"
W_SauveSolde=0
W_ImprimeTotal="FAUX"
W_PageCpte = 1

*********************************************************
* Recuperation des arguments
PROCREAD ARGUMENTS ELSE STOP
W_User=FIELD(ARGUMENTS," ",2)
W_PriseCpteBrouillard=FIELD(ARGUMENTS," ",3)
W_EcrNonLettre=FIELD(ARGUMENTS," ",4)
W_RupturePage=FIELD(ARGUMENTS," ",5)
W_Entite=FIELD(ARGUMENTS," ",6)
W_Exer=FIELD(ARGUMENTS," ",7)
W_CumulAnt=FIELD(ARGUMENTS," ",8)
W_DateDeb=FIELD(ARGUMENTS," ",9)
W_DateFin=FIELD(ARGUMENTS," ",10)
*********************************************************
* PROGRAMME PRINCIPAL

   PRINTER ON

   READ ENR_TEMPO FROM F.TEMPO,"BALANCEGENE":W_User ELSE ENR_TEMPO=""
   W_Requete=""
   i=1
   LOOP 
      W_Field=FIELD(ENR_TEMPO,"|",i)
   WHILE W_Field # "" DO
      W_Requete<i>=W_Field
      i=i+1
   REPEAT

   IF W_PriseCpteBrouillard=1 THEN
      READ ENR_TEMPO FROM F.TEMPO,"BALANCEGENETEMPO":W_User ELSE ENR_TEMPO=""
      W_RequeteTempo=""
      i=1
      LOOP 
         W_Field=FIELD(ENR_TEMPO,"|",i)
      WHILE W_Field # "" DO
         W_RequeteTempo<i>=W_Field
         i=i+1
      REPEAT
      GOSUB 40
      GOSUB 10
   END ELSE
      GOSUB 40
      GOSUB 20
   END
   GOSUB 90

   PRINTER OFF
   PRINTER CLOSE

   DELETE F.TEMPO,"BALANCEGENE":W_User
   DELETE F.TEMPO,"BALANCEGENETEMPO":W_User

STOP

*****************************************************************************
*  Impression Detail Brouillard
10

   W_SauveCpte=""
   W_FinTableau="FAUX"
   W_TotQte=0
   W_TotDebit=0
   W_TotCredit=0
   W_TotSolde=0
  
   k=1
   W_CountReq=DCOUNT(W_Requete,CHAR(254))
   FOR l=1 TO W_CountReq
      W_Imprime="FAUX"
      LOOP
      UNTIL W_RequeteTempo<k>[6,10] > W_Requete<l>[6,10] OR W_RequeteTempo<k>="" DO
         IF W_RequeteTempo<k> # "" THEN
            IF W_RequeteTempo<k>[6,10] < W_Requete<l>[6,10] THEN
               W_ImpTotal="FAUX"
               GOSUB 60
               W_Imprime="VRAI"
               W_Total="VRAI"
               IF W_ImpTotal="VRAI" THEN
                  GOSUB 30
                  W_FinTableau="VRAI"
                  IF W_RupturePage=1 AND l # W_CountReq THEN
                     PAGE
                     GOSUB 40
                  END
               END
               k=k+1
            END ELSE
               IF W_RequeteTempo<k>[3,13] =W_Requete<l>[3,13] THEN
                  W_ImpTotal="FAUX"
                  GOSUB 70
                  IF W_Requete<l>[6,10] = W_Requete<l+1>[6,10] THEN
                  	l=l+1
                  	GOSUB 70
                  END
                  IF W_ImpTotal="VRAI" THEN
                     PRINT "|         |   |     |                              |          |           |          |           |    |           |             |"
                  END
                  W_SauveLigne=W_SauveLigne+1
                  W_Ligne=W_Ligne+1
                  GOSUB 60
                  W_Imprime="VRAI"
                  W_Total="VRAI"  
                  IF W_ImpTotal="VRAI" THEN
                     GOSUB 30
                     W_FinTableau="VRAI"
                     IF W_RupturePage=1 AND l # W_CountReq THEN
                        PAGE
                        GOSUB 40
                     END
                  END
                  k=k+1
                  l=l+1
               END
            END
         END
      REPEAT
      IF W_RequeteTempo<k>[6,10] > W_Requete<l>[6,10] OR W_RequeteTempo<k>="" THEN
         IF l # W_CountReq + 1 THEN
            W_Imprime = "FAUX"
         END
      END

      IF W_Imprime="FAUX" THEN
         W_ImpTotal="FAUX"
         GOSUB 70
         IF W_Requete<l>[6,10] = W_Requete<l+1>[6,10] THEN
         	l=l+1
         	GOSUB 70
         END
         W_Total="VRAI"
         IF W_ImpTotal="VRAI" THEN
            GOSUB 30
            W_FinTableau="VRAI"
            IF W_RupturePage=1 AND l # W_CountReq THEN
               PAGE
               GOSUB 40
            END
         END
      END
      IF l=W_CountReq AND W_RequeteTempo<k>#"" THEN
         LOOP
         UNTIL W_RequeteTempo<k>="" DO
            W_ImpTotal="FAUX"
            GOSUB 60
            W_Imprime="VRAI"
            W_Total="VRAI"
            IF W_ImpTotal="VRAI" THEN
               GOSUB 30
               W_FinTableau="VRAI"
               IF W_RupturePage=1 THEN
                  PAGE
                  GOSUB 40
               END
            END
            k=k+1

         REPEAT
      END

   NEXT l

RETURN

*****************************************************************************
*  Impression Detail
20

   W_SauveCpte=""
   W_LignePage=42
   W_Premier="FAUX"
   W_Total="FAUX"
   W_TotQte=0
   W_TotDebit=0
   W_TotCredit=0
   W_TotSolde=0
   W_SauveLib = ""
   W_SauvePiece = ""
   W_SauveJournal = ""
   W_SauveDate = ""
   W_SauveNumLigne = 0
   W_SauveMont = ""
   W_Sauve = "FAUX"
   W_SauveDeb=0
   W_SauveCred=0

   W_Count=DCOUNT(W_Requete,CHAR(254))
   W_Temp=""
   FOR j = 1 TO W_Count
      W_Temp=""
      IF W_Exer="N-" THEN
      	 READ ENR_BALANCEGENE FROM F.BALANCEGENEARCHIVE,W_Requete<j,1> ELSE ENR_BALANCEGENE=""
      END ELSE
      	 READ ENR_BALANCEGENE FROM F.BALANCEGENE,W_Requete<j,1> ELSE ENR_BALANCEGENE=""
      END
      W_CountDetail = DCOUNT(ENR_BALANCEGENE<9>,CHAR(253))

      FOR i = 1 TO W_CountDetail
         IF W_CumulAnt = 0 AND W_DateDeb <= ENR_BALANCEGENE<8, i> AND W_DateFin >= ENR_BALANCEGENE<8, i> THEN
      
            IF W_Exer="N-" THEN
               READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENEARCHIVE,ENR_BALANCEGENE<9,i> ELSE ENR_DETAILECRITUREGENE=""
            END ELSE
               READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENE,ENR_BALANCEGENE<9,i> ELSE ENR_DETAILECRITUREGENE=""
            END
            IF W_EcrNonLettre=1 THEN
               IF (ENR_DETAILECRITUREGENE<11> = "") OR (W_Exer # "N1" AND ENR_DETAILECRITUREGENE<11>[2,1] = "1") THEN

                  IF W_Ligne > W_LignePage THEN
                     GOSUB 30
                     PAGE
                     GOSUB 40   
            
                     IF W_ImprimeTotal = "FAUX" THEN
                        W_PageCpte = W_PageCpte + 1
                        PRINT "|                                                                                                                               |"
                        PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(36-LEN(ENR_PLANCOMPTABLE<1>)):"Page : ":W_PageCpte:SPACE(69-LEN(W_PageCpte)):"|"
                        PRINT "|                                                                                                                               |"
                        W_Ligne=W_Ligne+3
                        W_SauveLigne=W_SauveLigne+3
                        GOSUB 50
                     END
                  END
                  IF W_SauveCpte # ENR_DETAILECRITUREGENE<3> THEN
                     IF W_Premier="VRAI" THEN
                        W_Total="VRAI"
                        GOSUB 30
                     END
                     IF (W_RupturePage=1 AND W_Premier="VRAI") OR (W_Ligne > W_LignePage) THEN
                        PAGE
                        GOSUB 40 
                     END
                     W_SauveCpte=ENR_DETAILECRITUREGENE<3>
                     PRINT "|                                                                                                                               |"
                     READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveCpte ELSE ENR_PLANCOMPTABLE=""
                     PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(112-LEN(ENR_PLANCOMPTABLE<1>)):"|"
                     PRINT "|                                                                                                                               |"
                     W_Ligne=W_Ligne+3
                     W_SauveLigne=W_SauveLigne+3
                     W_PageCpte = 1
                     GOSUB 50
                     W_Premier="VRAI"
                  END
                  IF ENR_DETAILECRITUREGENE<3>[4,1] = "6" OR ENR_DETAILECRITUREGENE<3>[4,1] = "7" THEN
                     W_Sauve="FAUX"
                     IF W_SauveMont = "CREDIT" THEN
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_Sauve = "VRAI"
                        END ELSE
                           W_Sauve = "FAUX"
                        END
                     END ELSE
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_Sauve = "VRAI"
                        END ELSE
                           W_Sauve = "FAUX"
                        END
                     END
                         
                     IF W_SauvePiece = ENR_DETAILECRITUREGENE<5> AND W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2] AND W_SauveLib = ENR_DETAILECRITUREGENE<4> AND W_SauveDate = ENR_DETAILECRITUREGENE<2> AND W_SauveNumLigne + 1 "R%5" = ENR_BALANCEGENE<9,i>[8,5] AND W_Sauve = "VRAI" THEN
                        * dbit
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_SauveDeb = ENR_DETAILECRITUREGENE<6> + ICONV(W_Temp[87,11],"MCN")
                           W_SauveDeb=W_SauveDeb "R26(#11)"
                           W_Temp = W_Temp[1,86]:W_SauveDeb:W_Temp[98,32]
                           W_TotDebit = W_TotDebit + ENR_DETAILECRITUREGENE<6>
                        END
                        * Crdit
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_SauveCred = ENR_DETAILECRITUREGENE<7> + ICONV(W_Temp[104,11],"MCN")
                           W_SauveCred=W_SauveCred "R26(#11)"
                           W_Temp = W_Temp[1,103]:W_SauveCred:W_Temp[115,14]
                           W_TotCredit = W_TotCredit + ENR_DETAILECRITUREGENE<7>
                        END
                        W_TotSolde = W_TotDebit - W_TotCredit
                        W_SauveSolde = W_TotSolde 

                        * solde
                        *IF W_TotSolde # 0 THEN
                           W_TotSolde=W_TotSolde "R26(#11)"
                           W_Temp = W_Temp[1,115]:W_TotSolde:W_Temp[127,3]
                        *END
                             
                     END ELSE
                        IF W_Temp # "" THEN
                           PRINT W_Temp
                                  
                           W_Ligne = W_Ligne + 1
                           W_SauveLigne = W_SauveLigne + 1
                        END
                        * date
                        W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                        * journal
			IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        	W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
			END ELSE
                        	W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
			END
                        * ligne
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                        * libelle
                        IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                        END
                        * piece
                        IF ENR_DETAILECRITUREGENE<5> # "" THEN
                           W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(10):"|"
                        END
                        * quantite
                        IF ENR_DETAILECRITUREGENE<9> # "" THEN
                           W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                           ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"|"
                        END
                        * chance
                        IF ENR_DETAILECRITUREGENE<8> # "" THEN
                           W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(10):"|"
                        END
                        * dbit
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                           ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"| "
                        END
                        * lettrage
                        IF ENR_DETAILECRITUREGENE<11> # "" THEN
                           IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                              W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                           END ELSE
                              W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                           END
                        END ELSE
                           W_Temp=W_Temp:SPACE(3):"|"
                        END
                        * crdit
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                           ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"|"
                        END
                        * solde
                        W_TotSolde=W_TotDebit-W_TotCredit
                        W_SauveSolde = W_TotSolde 
                        W_TotSolde=W_TotSolde "R26(#11)"
                        W_Temp=W_Temp:W_TotSolde:"  |"
                     END
                     W_SauvePiece = ENR_DETAILECRITUREGENE<5>
                     W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2]
                     W_SauveLib = ENR_DETAILECRITUREGENE<4>
                     W_SauveDate = ENR_DETAILECRITUREGENE<2>
                     W_SauveNumLigne = ENR_BALANCEGENE<9,i>[8,5]
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_SauveMont = "DEBIT"
                     END ELSE
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_SauveMont = "CREDIT"
                        END
                     END
                     W_CountDetail = DCOUNT(ENR_BALANCEGENE<9>,CHAR(253))
  			   W_CountTemp=0
			   FOR y = 1 TO W_CountDetail
				IF W_DateFin >= ENR_BALANCEGENE<8,y> THEN
				   W_CountTemp=W_CountTemp+1
				END
 			   NEXT y
                     IF i = W_CountTemp THEN
                        PRINT W_Temp
                        W_Ligne = W_Ligne + 1
                        W_SauveLigne = W_SauveLigne + 1
                     END
                  END ELSE
  
                     * date
                     W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                     * journal
		     IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		     END ELSE
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		     END
                     * ligne
                     W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                     * libelle
                     IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                     END
                     * piece
                     IF ENR_DETAILECRITUREGENE<5> # "" THEN
                        W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * quantite
                     IF ENR_DETAILECRITUREGENE<9> # "" THEN
                        W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                        ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END
                     * chance
                     IF ENR_DETAILECRITUREGENE<8> # "" THEN
                        W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * dbit
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                        ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"| "
                     END
                     * lettrage
                     IF ENR_DETAILECRITUREGENE<11> # "" THEN
                        IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                        END
                     END ELSE
                        W_Temp=W_Temp:SPACE(3):"|"
                     END
                     * crdit
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                        ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END 
                     * solde
                     W_TotSolde=W_TotDebit-W_TotCredit
                     W_SauveSolde = W_TotSolde 
                     W_TotSolde=W_TotSolde "R26(#11)"
                     W_Temp=W_Temp:W_TotSolde:"  |"
                     PRINT W_Temp
                     W_Ligne=W_Ligne+1
                     W_SauveLigne=W_SauveLigne+1
                  END
               END   

            END ELSE
               IF W_Ligne > W_LignePage THEN
                  GOSUB 30
                  PAGE
                  GOSUB 40

                  IF W_ImprimeTotal = "FAUX" THEN
                     W_PageCpte = W_PageCpte + 1
                     PRINT "|                                                                                                                               |"
                     PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(36-LEN(ENR_PLANCOMPTABLE<1>)):"Page : ":W_PageCpte:SPACE(69-LEN(W_PageCpte)):"|"
                     PRINT "|                                                                                                                               |"
                     W_Ligne=W_Ligne+3
                     W_SauveLigne=W_SauveLigne+3
                     GOSUB 50
		  END
               END
               IF W_SauveCpte # ENR_DETAILECRITUREGENE<3> THEN
                  IF W_Premier="VRAI" THEN
                     W_Total="VRAI"
                     GOSUB 30
                  END
                  IF (W_RupturePage=1 AND W_Premier="VRAI") OR (W_Ligne > W_LignePage) THEN
                     PAGE
                     GOSUB 40 
                  END
                  W_SauveCpte=ENR_DETAILECRITUREGENE<3>
                  PRINT "|                                                                                                                               |"
                  READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveCpte ELSE ENR_PLANCOMPTABLE=""
                  PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(112-LEN(ENR_PLANCOMPTABLE<1>)):"|"
                  PRINT "|                                                                                                                               |"
                  W_Ligne=W_Ligne+3
                  W_SauveLigne=W_SauveLigne+3
                  W_PageCpte = 1
                  GOSUB 50
                  W_Premier="VRAI"
               END
	     
               IF ENR_DETAILECRITUREGENE<3>[4,1] = "6" OR ENR_DETAILECRITUREGENE<3>[4,1] = "7" THEN
                  W_Sauve="FAUX"
                  IF W_SauveMont = "CREDIT" THEN
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_Sauve = "VRAI"
                     END ELSE
                        W_Sauve = "FAUX"
                     END
                  END ELSE
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_Sauve = "VRAI"
                     END ELSE
                        W_Sauve = "FAUX"
                     END
                  END
                
                  IF W_SauvePiece = ENR_DETAILECRITUREGENE<5> AND W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2] AND W_SauveLib = ENR_DETAILECRITUREGENE<4> AND W_SauveDate = ENR_DETAILECRITUREGENE<2> AND W_SauveNumLigne + 1 "R%5" = ENR_BALANCEGENE<9,i>[8,5] AND W_Sauve = "VRAI" THEN
                     * dbit
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_SauveDeb = ENR_DETAILECRITUREGENE<6> + ICONV(W_Temp[87,11],"MCN")
                        W_SauveDeb=W_SauveDeb "R26(#11)"
                        W_Temp = W_Temp[1,86]:W_SauveDeb:W_Temp[98,32]
                        W_TotDebit = W_TotDebit + ENR_DETAILECRITUREGENE<6>
                     END
                     * Crdit
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_SauveCred = ENR_DETAILECRITUREGENE<7> + ICONV(W_Temp[104,11],"MCN")
                        W_SauveCred=W_SauveCred "R26(#11)"
                        W_Temp = W_Temp[1,103]:W_SauveCred:W_Temp[115,14]
                        W_TotCredit = W_TotCredit + ENR_DETAILECRITUREGENE<7>
                     END
                     W_TotSolde = W_TotDebit - W_TotCredit
                     W_SauveSolde = W_TotSolde 
                     * solde
                     *IF W_TotSolde # 0 THEN
                        W_TotSolde=W_TotSolde "R26(#11)"
                        W_Temp = W_Temp[1,115]:W_TotSolde:W_Temp[127,3]
                     *END
                          
                  END ELSE
                     IF W_Temp # "" THEN
                        PRINT W_Temp
                               
                        W_Ligne = W_Ligne + 1
                        W_SauveLigne = W_SauveLigne + 1
                     END
                     * date
                     W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                     * journal		     
		     IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		     END ELSE
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		     END
                     * ligne 
                     W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                     * libelle
                     IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                     END
                     * piece
                     IF ENR_DETAILECRITUREGENE<5> # "" THEN
                        W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * quantite
                     IF ENR_DETAILECRITUREGENE<9> # "" THEN
                        W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                        ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END
                     * chance
                     IF ENR_DETAILECRITUREGENE<8> # "" THEN
                        W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * dbit
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                        ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"| "
                     END
                     * lettrage
                     IF ENR_DETAILECRITUREGENE<11> # "" THEN
                        IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                        END
                     END ELSE
                        W_Temp=W_Temp:SPACE(3):"|"
                     END
                     * crdit
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                        ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END
                     * solde
                     W_TotSolde=W_TotDebit-W_TotCredit
                     W_SauveSolde = W_TotSolde 
                     W_TotSolde=W_TotSolde "R26(#11)"
                     W_Temp=W_Temp:W_TotSolde:"  |"
                  END
   
                  W_SauvePiece = ENR_DETAILECRITUREGENE<5>
                  W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2]
                  W_SauveLib = ENR_DETAILECRITUREGENE<4>
                  W_SauveDate = ENR_DETAILECRITUREGENE<2>
                  W_SauveNumLigne = ENR_BALANCEGENE<9,i>[8,5]
                  IF ENR_DETAILECRITUREGENE<6> # "" THEN
                     W_SauveMont = "DEBIT"
                  END ELSE
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_SauveMont = "CREDIT"
                     END
                  END
                  W_CountDetail = DCOUNT(ENR_BALANCEGENE<9>,CHAR(253))
  			W_CountTemp=0
			FOR y = 1 TO W_CountDetail
			   IF W_DateFin >= ENR_BALANCEGENE<8,y> THEN
			      W_CountTemp=W_CountTemp+1
			   END
 			NEXT y
                  IF i = W_CountTemp THEN
                     PRINT W_Temp
                     W_Ligne = W_Ligne + 1
                     W_SauveLigne = W_SauveLigne + 1
                  END  
               END ELSE   
                  * date
                  W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |" 
                  * journal
		  IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		  END ELSE
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		  END
                  * ligne
                  W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                  * libelle
                  IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                  END ELSE
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                  END
                  * piece
                  IF ENR_DETAILECRITUREGENE<5> # "" THEN
                     W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(10):"|"
                  END
                  * quantite
                  IF ENR_DETAILECRITUREGENE<9> # "" THEN
                     W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                     ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"|"
                  END
                  * chance
                  IF ENR_DETAILECRITUREGENE<8> # "" THEN
                     W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(10):"|"
                  END
                  * dbit
                  IF ENR_DETAILECRITUREGENE<6> # "" THEN
                     W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                     ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"| "
                  END
                  * lettrage
                  IF ENR_DETAILECRITUREGENE<11> # "" THEN
                     IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                     END
                  END ELSE
                     W_Temp=W_Temp:SPACE(3):"|"
                  END
                  * crdit
                  IF ENR_DETAILECRITUREGENE<7> # "" THEN
                     W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                     ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"|"
                  END
                  * solde
                  W_TotSolde=W_TotDebit-W_TotCredit
                  W_SauveSolde = W_TotSolde 
                  W_TotSolde=W_TotSolde "R26(#11)"
                  W_Temp=W_Temp:W_TotSolde:"  |"
                  PRINT W_Temp
                  W_Ligne=W_Ligne+1
                  W_SauveLigne=W_SauveLigne+1
               END 
            END

         END ELSE
            IF W_CumulAnt = 1 AND W_DateFin >= ENR_BALANCEGENE<8, i> THEN

            IF W_Exer="N-" THEN
               READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENEARCHIVE,ENR_BALANCEGENE<9,i> ELSE ENR_DETAILECRITUREGENE=""
            END ELSE
               READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENE,ENR_BALANCEGENE<9,i> ELSE ENR_DETAILECRITUREGENE=""
            END

            IF W_EcrNonLettre=1 THEN
               IF (ENR_DETAILECRITUREGENE<11> = "") OR (W_Exer # "N1" AND ENR_DETAILECRITUREGENE<11>[2,1] = "1") THEN
                  IF W_Ligne > W_LignePage THEN
                     GOSUB 30
                     PAGE
                     GOSUB 40  
             
                     IF W_ImprimeTotal = "FAUX" THEN
                        W_PageCpte = W_PageCpte + 1
                        PRINT "|                                                                                                                               |"
                        PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(36-LEN(ENR_PLANCOMPTABLE<1>)):"Page : ":W_PageCpte:SPACE(69-LEN(W_PageCpte)):"|"
                        PRINT "|                                                                                                                               |"
                        W_Ligne=W_Ligne+3
                        W_SauveLigne=W_SauveLigne+3
                        GOSUB 50
 		     END
                  END
                  IF W_SauveCpte # ENR_DETAILECRITUREGENE<3> THEN
                     IF W_Premier="VRAI" THEN
                        W_Total="VRAI"
                        GOSUB 30
                     END
                     IF (W_RupturePage=1 AND W_Premier="VRAI") OR (W_Ligne > W_LignePage) THEN
                        PAGE
                        GOSUB 40 
                     END
                     W_SauveCpte=ENR_DETAILECRITUREGENE<3>
                     PRINT "|                                                                                                                               |"
                     READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveCpte ELSE ENR_PLANCOMPTABLE=""
                     PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(112-LEN(ENR_PLANCOMPTABLE<1>)):"|"
                     PRINT "|                                                                                                                               |"
                     W_Ligne=W_Ligne+3
                     W_SauveLigne=W_SauveLigne+3
                     W_PageCpte = 1
                     GOSUB 50
                     W_Premier="VRAI"
                  END
                  IF ENR_DETAILECRITUREGENE<3>[4,1] = "6" OR ENR_DETAILECRITUREGENE<3>[4,1] = "7" THEN
                     W_Sauve="FAUX"                      
                     IF W_SauveMont = "CREDIT" THEN
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_Sauve = "VRAI"
                        END ELSE
                           W_Sauve = "FAUX"
                        END
                     END ELSE
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_Sauve = "VRAI"
                        END ELSE
                           W_Sauve = "FAUX"
                        END
                     END
                         
                     IF W_SauvePiece = ENR_DETAILECRITUREGENE<5> AND W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2] AND W_SauveLib = ENR_DETAILECRITUREGENE<4> AND W_SauveDate = ENR_DETAILECRITUREGENE<2> AND W_SauveNumLigne + 1 "R%5" = ENR_BALANCEGENE<9,i>[8,5] AND W_Sauve = "VRAI" THEN
                        * dbit
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_SauveDeb = ENR_DETAILECRITUREGENE<6> + ICONV(W_Temp[87,11],"MCN")
                           W_SauveDeb=W_SauveDeb "R26(#11)"
                           W_Temp = W_Temp[1,86]:W_SauveDeb:W_Temp[98,32]
                           W_TotDebit = W_TotDebit + ENR_DETAILECRITUREGENE<6>
                        END
                        * Crdit
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_SauveCred = ENR_DETAILECRITUREGENE<7> + ICONV(W_Temp[104,11],"MCN")
                           W_SauveCred=W_SauveCred "R26(#11)"
                           W_Temp = W_Temp[1,103]:W_SauveCred:W_Temp[115,14]
                           W_TotCredit = W_TotCredit + ENR_DETAILECRITUREGENE<7>
                        END
                        W_TotSolde = W_TotDebit - W_TotCredit
                        W_SauveSolde = W_TotSolde 
                        * solde
                        *IF W_TotSolde # 0 THEN
                           W_TotSolde=W_TotSolde "R26(#11)"
                           W_Temp = W_Temp[1,115]:W_TotSolde:W_Temp[127,3]
                        *END
                             
                     END ELSE
                        IF W_Temp # "" THEN
                           PRINT W_Temp
                                  
                           W_Ligne = W_Ligne + 1
                           W_SauveLigne = W_SauveLigne + 1
                        END
                        * date
                        W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                        * journal
		     	IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        	W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		     	END ELSE
                        	W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		     	END
                        * ligne
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                        * libelle
                        IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                        END
                        * piece
                        IF ENR_DETAILECRITUREGENE<5> # "" THEN
                           W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(10):"|"
                        END
                        * quantite
                        IF ENR_DETAILECRITUREGENE<9> # "" THEN
                           W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                           ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"|"
                        END
                        * chance
                        IF ENR_DETAILECRITUREGENE<8> # "" THEN
                           W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(10):"|"
                        END
                        * dbit
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                           ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"| "
                        END
                        * lettrage
                        IF ENR_DETAILECRITUREGENE<11> # "" THEN
                           IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                              W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                           END ELSE
                              W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                           END
                        END ELSE
                           W_Temp=W_Temp:SPACE(3):"|"
                        END
                        * crdit
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                           ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"|"
                        END
                        * solde
                        W_TotSolde=W_TotDebit-W_TotCredit
                        W_SauveSolde = W_TotSolde 
                        W_TotSolde=W_TotSolde "R26(#11)"
                        W_Temp=W_Temp:W_TotSolde:"  |"
                     END
                     W_SauvePiece = ENR_DETAILECRITUREGENE<5>
                     W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2]
                     W_SauveLib = ENR_DETAILECRITUREGENE<4>
                     W_SauveDate = ENR_DETAILECRITUREGENE<2>
                     W_SauveNumLigne = ENR_BALANCEGENE<9,i>[8,5]
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_SauveMont = "DEBIT"
                     END ELSE
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_SauveMont = "CREDIT"
                        END
                     END
                     W_CountDetail = DCOUNT(ENR_BALANCEGENE<9>,CHAR(253))
  			   W_CountTemp=0
			   FOR y = 1 TO W_CountDetail
				IF W_DateFin >= ENR_BALANCEGENE<8,y> THEN
				   W_CountTemp=W_CountTemp+1
				END
 			   NEXT y
                     IF i = W_CountTemp THEN
                        PRINT W_Temp
                        W_Ligne = W_Ligne + 1
                        W_SauveLigne = W_SauveLigne + 1
                     END
                  END ELSE
  
                     * date
                     W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                     * journal
		     IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		     END ELSE
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		     END
                     * ligne
                     W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                     * libelle
                     IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                     END
                     * piece
                     IF ENR_DETAILECRITUREGENE<5> # "" THEN
                        W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * quantite
                     IF ENR_DETAILECRITUREGENE<9> # "" THEN
                        W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                        ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END
                     * chance
                     IF ENR_DETAILECRITUREGENE<8> # "" THEN
                        W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * dbit
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                        ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"| "
                     END
                     * lettrage
                     IF ENR_DETAILECRITUREGENE<11> # "" THEN
                        IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                        END
                     END ELSE
                        W_Temp=W_Temp:SPACE(3):"|"
                     END
                     * crdit
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                        ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END 
                     * solde
                     W_TotSolde=W_TotDebit-W_TotCredit
                     W_SauveSolde = W_TotSolde 
                     W_TotSolde=W_TotSolde "R26(#11)"
                     W_Temp=W_Temp:W_TotSolde:"  |"
                     PRINT W_Temp
                     W_Ligne=W_Ligne+1
                     W_SauveLigne=W_SauveLigne+1
                  END
               END   

            END ELSE
               IF W_Ligne > W_LignePage THEN
                  GOSUB 30
                  PAGE
                  GOSUB 40

                  IF W_ImprimeTotal = "FAUX" THEN
                     W_PageCpte = W_PageCpte + 1
                     PRINT "|                                                                                                                               |"
                     PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(36-LEN(ENR_PLANCOMPTABLE<1>)):"Page : ":W_PageCpte:SPACE(69-LEN(W_PageCpte)):"|"
                     PRINT "|                                                                                                                               |"
                     W_Ligne=W_Ligne+3
                     W_SauveLigne=W_SauveLigne+3
                     GOSUB 50
 		  END
               END
               IF W_SauveCpte # ENR_DETAILECRITUREGENE<3> THEN
                  IF W_Premier="VRAI" THEN
                     W_Total="VRAI"
                     GOSUB 30
                  END
                  IF (W_RupturePage=1 AND W_Premier="VRAI") OR (W_Ligne > W_LignePage) THEN
                     PAGE
                     GOSUB 40 
                  END
                  W_SauveCpte=ENR_DETAILECRITUREGENE<3>
                  PRINT "|                                                                                                                               |"
                  READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveCpte ELSE ENR_PLANCOMPTABLE=""
                  PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(112-LEN(ENR_PLANCOMPTABLE<1>)):"|"
                  PRINT "|                                                                                                                               |"
                  W_Ligne=W_Ligne+3
                  W_SauveLigne=W_SauveLigne+3
                  W_PageCpte = 1
                  GOSUB 50
                  W_Premier="VRAI"
               END
	     
               IF ENR_DETAILECRITUREGENE<3>[4,1] = "6" OR ENR_DETAILECRITUREGENE<3>[4,1] = "7" THEN
                  W_Sauve="FAUX"            
                  IF W_SauveMont = "CREDIT" THEN
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_Sauve = "VRAI"
                     END ELSE
                        W_Sauve = "FAUX"
                     END
                  END ELSE
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_Sauve = "VRAI"
                     END ELSE
                        W_Sauve = "FAUX"
                     END
                  END
                
                  IF W_SauvePiece = ENR_DETAILECRITUREGENE<5> AND W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2] AND W_SauveLib = ENR_DETAILECRITUREGENE<4> AND W_SauveDate = ENR_DETAILECRITUREGENE<2> AND W_SauveNumLigne + 1 "R%5" = ENR_BALANCEGENE<9,i>[8,5] AND W_Sauve = "VRAI" THEN
                     * dbit
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_SauveDeb = ENR_DETAILECRITUREGENE<6> + ICONV(W_Temp[87,11],"MCN")
                        W_SauveDeb=W_SauveDeb "R26(#11)"
                        W_Temp = W_Temp[1,86]:W_SauveDeb:W_Temp[98,32]
                        W_TotDebit = W_TotDebit + ENR_DETAILECRITUREGENE<6>
                     END
                     * Crdit
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_SauveCred = ENR_DETAILECRITUREGENE<7> + ICONV(W_Temp[104,11],"MCN")
                        W_SauveCred=W_SauveCred "R26(#11)"
                        W_Temp = W_Temp[1,103]:W_SauveCred:W_Temp[115,14]
                        W_TotCredit = W_TotCredit + ENR_DETAILECRITUREGENE<7>
                     END
                     W_TotSolde = W_TotDebit - W_TotCredit
                     W_SauveSolde = W_TotSolde 
                     * solde
                     *IF W_TotSolde # 0 THEN
                        W_TotSolde=W_TotSolde "R26(#11)"
                        W_Temp = W_Temp[1,115]:W_TotSolde:W_Temp[127,3]
                     *END
                          
                  END ELSE
                     IF W_Temp # "" THEN
                        PRINT W_Temp
                               
                        W_Ligne = W_Ligne + 1
                        W_SauveLigne = W_SauveLigne + 1
                     END
                     * date
                     W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                     * journal
		     IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		     END ELSE
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		     END
                     * ligne 
                     W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                     * libelle
                     IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                     END
                     * piece
                     IF ENR_DETAILECRITUREGENE<5> # "" THEN
                        W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * quantite
                     IF ENR_DETAILECRITUREGENE<9> # "" THEN
                        W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                        ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END
                     * chance
                     IF ENR_DETAILECRITUREGENE<8> # "" THEN
                        W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * dbit
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                        ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"| "
                     END
                     * lettrage
                     IF ENR_DETAILECRITUREGENE<11> # "" THEN
                        IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                        END
                     END ELSE
                        W_Temp=W_Temp:SPACE(3):"|"
                     END
                     * crdit
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                        ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END
                     * solde
                     W_TotSolde=W_TotDebit-W_TotCredit
                     W_SauveSolde = W_TotSolde 
                     W_TotSolde=W_TotSolde "R26(#11)"
                     W_Temp=W_Temp:W_TotSolde:"  |"
                  END
   
                  W_SauvePiece = ENR_DETAILECRITUREGENE<5>
                  W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2]
                  W_SauveLib = ENR_DETAILECRITUREGENE<4>
                  W_SauveDate = ENR_DETAILECRITUREGENE<2>
                  W_SauveNumLigne = ENR_BALANCEGENE<9,i>[8,5]
                  IF ENR_DETAILECRITUREGENE<6> # "" THEN
                     W_SauveMont = "DEBIT"
                  END ELSE
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_SauveMont = "CREDIT"
                     END
                  END
                  W_CountDetail = DCOUNT(ENR_BALANCEGENE<9>,CHAR(253))
  		      W_CountTemp=0
		      FOR y = 1 TO W_CountDetail
			   IF W_DateFin >= ENR_BALANCEGENE<8,y> THEN
				W_CountTemp=W_CountTemp+1
		   	   END
 			NEXT y
                  IF i = W_CountTemp THEN
                     PRINT W_Temp
                     W_Ligne = W_Ligne + 1
                     W_SauveLigne = W_SauveLigne + 1
                  END  
               END ELSE   
                  * date
                  W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |" 
                  * journal
		  IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		  END ELSE
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		  END
                  * ligne
                  W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                  * libelle
                  IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                  END ELSE
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                  END
                  * piece
                  IF ENR_DETAILECRITUREGENE<5> # "" THEN
                     W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(10):"|"
                  END
                  * quantite
                  IF ENR_DETAILECRITUREGENE<9> # "" THEN
                     W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                     ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"|"
                  END
                  * chance
                  IF ENR_DETAILECRITUREGENE<8> # "" THEN
                     W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(10):"|"
                  END
                  * dbit
                  IF ENR_DETAILECRITUREGENE<6> # "" THEN
                     W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                     ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"| "
                  END
                  * lettrage
                  IF ENR_DETAILECRITUREGENE<11> # "" THEN
                     IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                     END
                  END ELSE
                     W_Temp=W_Temp:SPACE(3):"|"
                  END
                  * crdit
                  IF ENR_DETAILECRITUREGENE<7> # "" THEN
                     W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                     ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"|"
                  END
                  * solde
                  W_TotSolde=W_TotDebit-W_TotCredit
                  W_SauveSolde = W_TotSolde 
                  W_TotSolde=W_TotSolde "R26(#11)"
                  W_Temp=W_Temp:W_TotSolde:"  |"
                  PRINT W_Temp
                  W_Ligne=W_Ligne+1
                  W_SauveLigne=W_SauveLigne+1
               END 
            END

            END
         END
      NEXT i

   NEXT j
   W_Total="VRAI"
   GOSUB 30

RETURN

*****************************************************************************
*  Imprime fin tableau
30

   W_ImprimeTotal = "FAUX"
   IF W_Total="VRAI" THEN
      
      W_TotGeneQte=W_TotGeneQte+W_TotQte
      W_TotGeneDebit=W_TotGeneDebit+W_TotDebit
      W_TotGeneCredit=W_TotGeneCredit+W_TotCredit
      W_TotGeneSolde=W_TotGeneSolde+W_SauveSolde

      PRINT "|         |   |     |                              |          |           |          |           |    |           |             |"
      W_TotQte=W_TotQte "R26(#11)"
      W_TotDebit=W_TotDebit "R26(#11)"
      W_TotCredit=W_TotCredit "R26(#11)"
  *    W_TotSolde=W_TotSolde "R26(#11)"
      IF W_TotQte # "       0,00" THEN
      PRINT "|         |   |     |TOTAL COMPTE                  |          |":W_TotQte:"|          |":W_TotDebit:"|    |":W_TotCredit:"|":W_TotSolde:"  |"
      END ELSE
      PRINT "|         |   |     |TOTAL COMPTE                  |          |           |          |":W_TotDebit:"|    |":W_TotCredit:"|":W_TotSolde:"  |"
      END
      PRINT "|         |   |     |                              |          |           |          |           |    |           |             |"
      PRINT "*********************************************************************************************************************************"
      W_Total="FAUX"
      W_TotQte=0
      W_TotDebit=0
      W_TotCredit=0
      W_TotSolde=0
      W_SauveSolde=0
      W_ImprimeTotal = "VRAI"
      W_Ligne=W_Ligne+4
   END ELSE
      IF W_Total="FAUX" THEN
         PRINT "|         |   |     |                              |          |           |          |           |    |           |             |"
         PRINT "|---------|---|-----|------------------------------|----------|-----------|----------|-----------|----|-----------|-------------|"
         W_Ligne=W_Ligne+2
      END
   END

   W_SauveLigne=0

RETURN

*****************************************************************************
*  Entete page
40

   W_Ligne=0
   W_Page = W_Page+1
   PRINT "Date : ":OCONV(DATE(),"D4/"):SPACE(105):"Page : ":W_Page
   PRINT " "
   PRINT SPACE(50):"GRAND LIVRE GENERAL"
   PRINT " "
   READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Entite ELSE ENR_ASSOCIATION=""
   PRINT "Entite juridique : ":ENR_ASSOCIATION<1>
   W_Adresse=""
   IF ENR_ASSOCIATION<3> # "" THEN
      W_Adresse=ENR_ASSOCIATION<3>:" "
   END
   IF ENR_ASSOCIATION<4> # "" THEN
      W_Adresse=W_Adresse:ENR_ASSOCIATION<4>:" "
   END
   IF ENR_ASSOCIATION<5> # "" THEN
      W_Adresse=W_Adresse:ENR_ASSOCIATION<5>:" "
   END
   IF ENR_ASSOCIATION<6> # "" THEN
      W_Adresse=W_Adresse:ENR_ASSOCIATION<6>:" "
   END
   IF W_Adresse # "" THEN
      PRINT SPACE(19):W_Adresse
   END
   IF ENR_ASSOCIATION<7> # "" THEN
      PRINT SPACE(19):ENR_ASSOCIATION<7>
   END
   PRINT SPACE(19):ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>
   PRINT " "
   READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_Entite ELSE ENR_PARAMENTITECOMPTA=""

   IF W_Exer="N-" THEN
      W_ExerTemp="N - 1" 
   END ELSE
      IF W_Exer="N0" THEN
         W_ExerTemp="N" 
      END ELSE
         W_ExerTemp="N + 1" 
      END
   END

   PRINT "Exercice         : ":W_ExerTemp:SPACE(10):"Date debut : ":OCONV(W_DateDeb,"D4/"):SPACE(5):"Date fin : ":OCONV(W_DateFin,"D4/")
   PRINT " "
   IF W_PriseCpteBrouillard=1 THEN
      PRINT "PRISE EN COMPTE DES BROUILLARDS DE SAISIE"
   END ELSE
      PRINT " "
   END

   GOSUB 80

RETURN

*****************************************************************************
*  Imprime tableau compte
50

   PRINT "|---------|---|-----|------------------------------|----------|-----------|----------|-----------|----|-----------|-------------|"
   PRINT "|         |   |     |                              |          |           |          |           |    |           |             |"
   W_SauveLigne=1
   W_Ligne=W_Ligne+2

RETURN

*****************************************************************************
*  Imprime Tempo
60

   W_Total="FAUX"
   W_Premier="FAUX"
   W_LignePage=42
   W_Temp=""

   READ ENR_BALANCEGENETEMPO FROM F.BALANCEGENETEMPO,W_RequeteTempo<k,1> ELSE ENR_BALANCEGENETEMPO=""
   W_CountDetail = DCOUNT(ENR_BALANCEGENETEMPO<9>,CHAR(253))
   FOR i = 1 TO W_CountDetail

      IF W_CumulAnt = 0 AND W_DateDeb <= ENR_BALANCEGENETEMPO<8,i> AND W_DateFin >= ENR_BALANCEGENETEMPO<8,i> THEN

         READ ENR_DETAILECRITUREGENETEMPO FROM F.DETAILECRITUREGENETEMPO,ENR_BALANCEGENETEMPO<9,i> ELSE ENR_DETAILECRITUREGENETEMPO=""
         IF W_Ligne > W_LignePage THEN
            IF W_FinTableau="FAUX" THEN
               GOSUB 30
            END
            PAGE
            GOSUB 40

            IF W_ImprimeTotal = "FAUX" THEN
               W_PageCpte = W_PageCpte + 1
               PRINT "|                                                                                                                               |"
               PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(36-LEN(ENR_PLANCOMPTABLE<1>)):"Page : ":W_PageCpte:SPACE(69-LEN(W_PageCpte)):"|"
               PRINT "|                                                                                                                               |"
               W_Ligne=W_Ligne+3
               W_SauveLigne=W_SauveLigne+3
               GOSUB 50
	    END
         END
         IF W_SauveCpte # ENR_DETAILECRITUREGENETEMPO<3> THEN
            IF W_Premier="VRAI" THEN
               W_Total="VRAI"
               GOSUB 30
            END
            IF (W_RupturePage=1 AND W_Premier="VRAI") OR (W_Ligne > W_LignePage) THEN
               PAGE
               GOSUB 40
            END
            W_SauveCpte=ENR_DETAILECRITUREGENETEMPO<3>
            PRINT "|                                                                                                                               |"
            READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveCpte ELSE ENR_PLANCOMPTABLE=""
            PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(112-LEN(ENR_PLANCOMPTABLE<1>)):"|"
            PRINT "|                                                                                                                               |"
            W_Ligne=W_Ligne+3
            W_SauveLigne=W_SauveLigne+3
            W_PageCpte = 1
            GOSUB 50
            W_Premier="VRAI"
            W_ImpTotal="VRAI"
         END

         IF ENR_DETAILECRITUREGENETEMPO<3>[4,1] = "6" OR ENR_DETAILECRITUREGENETEMPO<3>[4,1] = "7" THEN
            W_Sauve="FAUX"                    
            IF W_SauveMont = "CREDIT" THEN
               IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
                  W_Sauve = "VRAI"
               END
            END ELSE
               IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
                  W_Sauve = "VRAI"
               END
            END
          
            IF W_SauvePiece = ENR_DETAILECRITUREGENETEMPO<5> AND W_SauveJournal = ENR_BALANCEGENETEMPO<9,i>[4,2] AND W_SauveLib = ENR_DETAILECRITUREGENETEMPO<4> AND W_SauveDate = ENR_DETAILECRITUREGENETEMPO<2> AND W_SauveNumLigne + 1 "R%5" = ENR_BALANCEGENETEMPO<9,i>[8,5] AND W_Sauve = "VRAI" THEN
               * dbit
               IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
                  W_SauveDeb = ENR_DETAILECRITUREGENETEMPO<6> + ICONV(W_Temp[87,11],"MCN")
                  W_SauveDeb=W_SauveDeb "R26(#11)"
                  W_Temp = W_Temp[1,86]:W_SauveDeb:W_Temp[98,32]
                  W_TotDebit = W_TotDebit + ENR_DETAILECRITUREGENETEMPO<6>
               END
               * Crdit
               IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
                  W_SauveCred = ENR_DETAILECRITUREGENETEMPO<7> + ICONV(W_Temp[104,11],"MCN")
                  W_SauveCred=W_SauveCred "R26(#11)"
                  W_Temp = W_Temp[1,103]:W_SauveCred:W_Temp[115,14]
                  W_TotCredit = W_TotCredit + ENR_DETAILECRITUREGENETEMPO<7>
               END
               W_TotSolde = W_TotDebit - W_TotCredit
               W_SauveSolde = W_TotSolde 
               * solde
               *IF W_TotSolde # 0 THEN
                  W_TotSolde=W_TotSolde "R26(#11)"
                  W_Temp = W_Temp[1,115]:W_TotSolde:W_Temp[127,3]
               *END
              
            END ELSE
               IF W_Temp # "" THEN
                  PRINT W_Temp
                                 
                  W_Ligne = W_Ligne + 1
                  W_SauveLigne = W_SauveLigne + 1
               END

               * date
               W_Temp="|":OCONV(ENR_DETAILECRITUREGENETEMPO<2>,"D2/"):" |"
               * journal
		IF ENR_BALANCEGENETEMPO<9,i>[6,1]="N" THEN
                    W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[4,2]:" |"
		END ELSE
                    W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[4,2]:"P|"
		END
               * ligne
               W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[8,5]:"|"
               * libelle
               IF LEN(ENR_DETAILECRITUREGENETEMPO<4>) > 30 THEN
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<4>[1,30]:"|"
               END ELSE
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENETEMPO<4>)):"|"
               END
               * piece
               IF ENR_DETAILECRITUREGENETEMPO<5> # "" THEN
                  W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENETEMPO<5>)):ENR_DETAILECRITUREGENETEMPO<5>:"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(10):"|"
               END
               * quantite
               IF ENR_DETAILECRITUREGENETEMPO<9> # "" THEN
                  W_TotQte=W_TotQte+ENR_DETAILECRITUREGENETEMPO<9>
                  ENR_DETAILECRITUREGENETEMPO<9>=ENR_DETAILECRITUREGENETEMPO<9> "R26(#11)"
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<9>:"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(11):"|" 
               END
               * chance  
               IF ENR_DETAILECRITUREGENETEMPO<8> # "" THEN
                  W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENETEMPO<8>,"D4/"):"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(10):"|"
               END
               * dbit
               IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
                  W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENETEMPO<6>
                  ENR_DETAILECRITUREGENETEMPO<6>=ENR_DETAILECRITUREGENETEMPO<6> "R26(#11)"
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<6>:"| "
               END ELSE
                  W_Temp=W_Temp:SPACE(11):"| "
               END
               * lettrage
               IF ENR_DETAILECRITUREGENETEMPO<11> # "" THEN
                  IF LEN(ENR_DETAILECRITUREGENETEMPO<11>) = 1 THEN
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<11>:"  |"
                  END ELSE
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<11>:" |"
                  END
               END ELSE
                  W_Temp=W_Temp:SPACE(3):"|"
               END
               * crdit
               IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
                  W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENETEMPO<7>
                  ENR_DETAILECRITUREGENETEMPO<7>=ENR_DETAILECRITUREGENETEMPO<7> "R26(#11)"
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<7>:"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(11):"|"
               END
               * solde
               W_TotSolde=W_TotDebit-W_TotCredit
               W_SauveSolde = W_TotSolde 
               W_TotSolde=W_TotSolde "R26(#11)"
               W_Temp=W_Temp:W_TotSolde:"  |"
               * PRINT W_Temp
               * W_Ligne=W_Ligne+1
               * W_SauveLigne=W_SauveLigne+1
               W_FinTableau="FAUX"
            END
            W_SauvePiece = ENR_DETAILECRITUREGENETEMPO<5>
            W_SauveJournal = ENR_BALANCEGENETEMPO<9,i>[4,2]
            W_SauveLib = ENR_DETAILECRITUREGENETEMPO<4>
            W_SauveDate = ENR_DETAILECRITUREGENETEMPO<2>
            W_SauveNumLigne = ENR_BALANCEGENETEMPO<9,i>[8,5]
            IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
               W_SauveMont = "DEBIT"
            END ELSE
               IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
                  W_SauveMont = "CREDIT"
               END
            END 
            W_CountDetail = DCOUNT(ENR_BALANCEGENETEMPO<9>,CHAR(253))
            W_CountTemp=0
		FOR y = 1 TO W_CountDetail
		   IF W_DateFin >= ENR_BALANCEGENETEMPO<8,y> THEN
			W_CountTemp=W_CountTemp+1
		   END
 		NEXT y
            IF i = W_CountTemp THEN               
               PRINT W_Temp
               W_Ligne = W_Ligne + 1
               W_SauveLigne = W_SauveLigne + 1
            END
         END ELSE
            * date
            W_Temp="|":OCONV(ENR_DETAILECRITUREGENETEMPO<2>,"D2/"):" |"
            * journal
	    IF ENR_BALANCEGENETEMPO<9,i>[6,1]="N" THEN
               W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[4,2]:" |"
	    END ELSE
               W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[4,2]:"P|"
	    END
            * ligne
            W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[8,5]:"|"
            * libelle
            IF LEN(ENR_DETAILECRITUREGENETEMPO<4>) > 30 THEN
               W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<4>[1,30]:"|" 
            END ELSE
               W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENETEMPO<4>)):"|"
            END
            * piece
            IF ENR_DETAILECRITUREGENETEMPO<5> # "" THEN
               W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENETEMPO<5>)):ENR_DETAILECRITUREGENETEMPO<5>:"|"
            END ELSE
               W_Temp=W_Temp:SPACE(10):"|"
            END 
             * quantite
            IF ENR_DETAILECRITUREGENETEMPO<9> # "" THEN
               W_TotQte=W_TotQte+ENR_DETAILECRITUREGENETEMPO<9>
               ENR_DETAILECRITUREGENETEMPO<9>=ENR_DETAILECRITUREGENETEMPO<9> "R26(#11)"
               W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<9>:"|"
            END ELSE
               W_Temp=W_Temp:SPACE(11):"|" 
            END
            * chance
            IF ENR_DETAILECRITUREGENETEMPO<8> # "" THEN
               W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENETEMPO<8>,"D4/"):"|"
            END ELSE
               W_Temp=W_Temp:SPACE(10):"|"
            END
            * dbit
            IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
               W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENETEMPO<6>
               ENR_DETAILECRITUREGENETEMPO<6>=ENR_DETAILECRITUREGENETEMPO<6> "R26(#11)"
               W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<6>:"| "
            END ELSE
               W_Temp=W_Temp:SPACE(11):"| "
            END 
            * lettrage
            IF ENR_DETAILECRITUREGENETEMPO<11> # "" THEN
               IF LEN(ENR_DETAILECRITUREGENETEMPO<11>) = 1 THEN
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<11>:"  |"
               END ELSE
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<11>:" |"
               END
            END ELSE
               W_Temp=W_Temp:SPACE(3):"|"
            END
            * crdit
            IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
               W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENETEMPO<7>
               ENR_DETAILECRITUREGENETEMPO<7>=ENR_DETAILECRITUREGENETEMPO<7> "R26(#11)"
               W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<7>:"|"
            END ELSE
               W_Temp=W_Temp:SPACE(11):"|"
            END
            * solde
            W_TotSolde=W_TotDebit-W_TotCredit
            W_SauveSolde = W_TotSolde 
            W_TotSolde=W_TotSolde "R26(#11)"
            W_Temp=W_Temp:W_TotSolde:"  |"
            PRINT W_Temp
            W_Ligne=W_Ligne+1
            W_SauveLigne=W_SauveLigne+1
            W_FinTableau="FAUX"
     
         END
      END ELSE
         IF W_CumulAnt = 1 AND W_DateFin >= ENR_BALANCEGENETEMPO<8,i> THEN

         READ ENR_DETAILECRITUREGENETEMPO FROM F.DETAILECRITUREGENETEMPO,ENR_BALANCEGENETEMPO<9,i> ELSE ENR_DETAILECRITUREGENETEMPO=""
         IF W_Ligne > W_LignePage THEN
            IF W_FinTableau="FAUX" THEN
               GOSUB 30
            END
            PAGE
            GOSUB 40

            IF W_ImprimeTotal = "FAUX" THEN
               W_PageCpte = W_PageCpte + 1
               PRINT "|                                                                                                                               |"
               PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(36-LEN(ENR_PLANCOMPTABLE<1>)):"Page : ":W_PageCpte:SPACE(69-LEN(W_PageCpte)):"|"
               PRINT "|                                                                                                                               |"
               W_Ligne=W_Ligne+3
               W_SauveLigne=W_SauveLigne+3
               GOSUB 50
	    END
         END
         IF W_SauveCpte # ENR_DETAILECRITUREGENETEMPO<3> THEN
            IF W_Premier="VRAI" THEN
               W_Total="VRAI"
               GOSUB 30
            END
            IF (W_RupturePage=1 AND W_Premier="VRAI") OR (W_Ligne > W_LignePage) THEN
               PAGE
               GOSUB 40
            END
            W_SauveCpte=ENR_DETAILECRITUREGENETEMPO<3>
            PRINT "|                                                                                                                               |"
            READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveCpte ELSE ENR_PLANCOMPTABLE=""
            PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(112-LEN(ENR_PLANCOMPTABLE<1>)):"|"
            PRINT "|                                                                                                                               |"
            W_Ligne=W_Ligne+3
            W_SauveLigne=W_SauveLigne+3
            W_PageCpte = 1
            GOSUB 50
            W_Premier="VRAI"
            W_ImpTotal="VRAI"
         END

         IF ENR_DETAILECRITUREGENETEMPO<3>[4,1] = "6" OR ENR_DETAILECRITUREGENETEMPO<3>[4,1] = "7" THEN
            W_Sauve="FAUX"                    
            IF W_SauveMont = "CREDIT" THEN
               IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
                  W_Sauve = "VRAI"
               END
            END ELSE
               IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
                  W_Sauve = "VRAI"
               END
            END
          
            IF W_SauvePiece = ENR_DETAILECRITUREGENETEMPO<5> AND W_SauveJournal = ENR_BALANCEGENETEMPO<9,i>[4,2] AND W_SauveLib = ENR_DETAILECRITUREGENETEMPO<4> AND W_SauveDate = ENR_DETAILECRITUREGENETEMPO<2> AND W_SauveNumLigne + 1 "R%5" = ENR_BALANCEGENETEMPO<9,i>[8,5] AND W_Sauve = "VRAI" THEN
               * dbit
               IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
                  W_SauveDeb = ENR_DETAILECRITUREGENETEMPO<6> + ICONV(W_Temp[87,11],"MCN")
                  W_SauveDeb=W_SauveDeb "R26(#11)"
                  W_Temp = W_Temp[1,86]:W_SauveDeb:W_Temp[98,32]
                  W_TotDebit = W_TotDebit + ENR_DETAILECRITUREGENETEMPO<6>
               END
               * Crdit
               IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
                  W_SauveCred = ENR_DETAILECRITUREGENETEMPO<7> + ICONV(W_Temp[104,11],"MCN")
                  W_SauveCred=W_SauveCred "R26(#11)"
                  W_Temp = W_Temp[1,103]:W_SauveCred:W_Temp[115,14]
                  W_TotCredit = W_TotCredit + ENR_DETAILECRITUREGENETEMPO<7>
               END
               W_TotSolde = W_TotDebit - W_TotCredit
               W_SauveSolde = W_TotSolde 
               * solde
               *IF W_TotSolde # 0 THEN
                  W_TotSolde=W_TotSolde "R26(#11)"
                  W_Temp = W_Temp[1,115]:W_TotSolde:W_Temp[127,3]
               *END
              
            END ELSE
               IF W_Temp # "" THEN
                  PRINT W_Temp
                                 
                  W_Ligne = W_Ligne + 1
                  W_SauveLigne = W_SauveLigne + 1
               END

               * date
               W_Temp="|":OCONV(ENR_DETAILECRITUREGENETEMPO<2>,"D2/"):" |"
               * journal
		IF ENR_BALANCEGENETEMPO<9,i>[6,1]="N" THEN
                   W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[4,2]:" |"
		END ELSE
                   W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[4,2]:"P|"
		END
               * ligne
               W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[8,5]:"|"
               * libelle
               IF LEN(ENR_DETAILECRITUREGENETEMPO<4>) > 30 THEN
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<4>[1,30]:"|"
               END ELSE
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENETEMPO<4>)):"|"
               END
               * piece
               IF ENR_DETAILECRITUREGENETEMPO<5> # "" THEN
                  W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENETEMPO<5>)):ENR_DETAILECRITUREGENETEMPO<5>:"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(10):"|"
               END
               * quantite
               IF ENR_DETAILECRITUREGENETEMPO<9> # "" THEN
                  W_TotQte=W_TotQte+ENR_DETAILECRITUREGENETEMPO<9>
                  ENR_DETAILECRITUREGENETEMPO<9>=ENR_DETAILECRITUREGENETEMPO<9> "R26(#11)"
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<9>:"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(11):"|" 
               END
               * chance  
               IF ENR_DETAILECRITUREGENETEMPO<8> # "" THEN
                  W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENETEMPO<8>,"D4/"):"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(10):"|"
               END
               * dbit
               IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
                  W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENETEMPO<6>
                  ENR_DETAILECRITUREGENETEMPO<6>=ENR_DETAILECRITUREGENETEMPO<6> "R26(#11)"
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<6>:"| "
               END ELSE
                  W_Temp=W_Temp:SPACE(11):"| "
               END
               * lettrage
               IF ENR_DETAILECRITUREGENETEMPO<11> # "" THEN
                  IF LEN(ENR_DETAILECRITUREGENETEMPO<11>) = 1 THEN
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<11>:"  |"
                  END ELSE
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<11>:" |"
                  END
               END ELSE
                  W_Temp=W_Temp:SPACE(3):"|"
               END
               * crdit
               IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
                  W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENETEMPO<7>
                  ENR_DETAILECRITUREGENETEMPO<7>=ENR_DETAILECRITUREGENETEMPO<7> "R26(#11)"
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<7>:"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(11):"|"
               END
               * solde
               W_TotSolde=W_TotDebit-W_TotCredit
               W_SauveSolde = W_TotSolde 
               W_TotSolde=W_TotSolde "R26(#11)"
               W_Temp=W_Temp:W_TotSolde:"  |"
               * PRINT W_Temp
               * W_Ligne=W_Ligne+1
               * W_SauveLigne=W_SauveLigne+1
               W_FinTableau="FAUX"
            END
            W_SauvePiece = ENR_DETAILECRITUREGENETEMPO<5>
            W_SauveJournal = ENR_BALANCEGENETEMPO<9,i>[4,2]
            W_SauveLib = ENR_DETAILECRITUREGENETEMPO<4>
            W_SauveDate = ENR_DETAILECRITUREGENETEMPO<2>
            W_SauveNumLigne = ENR_BALANCEGENETEMPO<9,i>[8,5]
            IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
               W_SauveMont = "DEBIT"
            END ELSE
               IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
                  W_SauveMont = "CREDIT"
               END
            END 
            W_CountDetail = DCOUNT(ENR_BALANCEGENETEMPO<9>,CHAR(253))
            W_CountTemp=0
		FOR y = 1 TO W_CountDetail
		   IF W_DateFin >= ENR_BALANCEGENETEMPO<8,y> THEN
			W_CountTemp=W_CountTemp+1
	   	   END
 		NEXT y
            IF i = W_CountTemp THEN
               PRINT W_Temp
               W_Ligne = W_Ligne + 1
               W_SauveLigne = W_SauveLigne + 1
            END
         END ELSE
            * date
            W_Temp="|":OCONV(ENR_DETAILECRITUREGENETEMPO<2>,"D2/"):" |"
            * journal
	    IF ENR_BALANCEGENETEMPO<9,i>[6,1]="N" THEN
                W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[4,2]:" |"
	    END ELSE
                W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[4,2]:"P|"
	    END
            * ligne
            W_Temp=W_Temp:ENR_BALANCEGENETEMPO<9,i>[8,5]:"|"
            * libelle
            IF LEN(ENR_DETAILECRITUREGENETEMPO<4>) > 30 THEN
               W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<4>[1,30]:"|" 
            END ELSE
               W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENETEMPO<4>)):"|"
            END
            * piece
            IF ENR_DETAILECRITUREGENETEMPO<5> # "" THEN
               W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENETEMPO<5>)):ENR_DETAILECRITUREGENETEMPO<5>:"|"
            END ELSE
               W_Temp=W_Temp:SPACE(10):"|"
            END 
             * quantite
            IF ENR_DETAILECRITUREGENETEMPO<9> # "" THEN
               W_TotQte=W_TotQte+ENR_DETAILECRITUREGENETEMPO<9>
               ENR_DETAILECRITUREGENETEMPO<9>=ENR_DETAILECRITUREGENETEMPO<9> "R26(#11)"
               W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<9>:"|"
            END ELSE
               W_Temp=W_Temp:SPACE(11):"|" 
            END
            * chance
            IF ENR_DETAILECRITUREGENETEMPO<8> # "" THEN
               W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENETEMPO<8>,"D4/"):"|"
            END ELSE
               W_Temp=W_Temp:SPACE(10):"|"
            END
            * dbit
            IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
               W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENETEMPO<6>
               ENR_DETAILECRITUREGENETEMPO<6>=ENR_DETAILECRITUREGENETEMPO<6> "R26(#11)"
               W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<6>:"| "
            END ELSE
               W_Temp=W_Temp:SPACE(11):"| "
            END 
            * lettrage
            IF ENR_DETAILECRITUREGENETEMPO<11> # "" THEN
               IF LEN(ENR_DETAILECRITUREGENETEMPO<11>) = 1 THEN
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<11>:"  |"
               END ELSE
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<11>:" |"
               END
            END ELSE
               W_Temp=W_Temp:SPACE(3):"|"
            END
            * crdit
            IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
               W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENETEMPO<7>
               ENR_DETAILECRITUREGENETEMPO<7>=ENR_DETAILECRITUREGENETEMPO<7> "R26(#11)"
               W_Temp=W_Temp:ENR_DETAILECRITUREGENETEMPO<7>:"|"
            END ELSE
               W_Temp=W_Temp:SPACE(11):"|"
            END
            * solde
            W_TotSolde=W_TotDebit-W_TotCredit
            W_SauveSolde = W_TotSolde 
            W_TotSolde=W_TotSolde "R26(#11)"
            W_Temp=W_Temp:W_TotSolde:"  |"
            PRINT W_Temp
            W_Ligne=W_Ligne+1
            W_SauveLigne=W_SauveLigne+1
            W_FinTableau="FAUX"
     
         END

         END

      END
   NEXT i

RETURN

*****************************************************************************
*  Imprime Detail
70

   W_Total="FAUX"
   W_Premier="FAUX"
   W_LignePage=42
   W_Temp=""

   IF W_Exer="N-" THEN
      READ ENR_BALANCEGENE FROM F.BALANCEGENEARCHIVE,W_Requete<l,1> ELSE ENR_BALANCEGENE=""
   END ELSE
      READ ENR_BALANCEGENE FROM F.BALANCEGENE,W_Requete<l,1> ELSE ENR_BALANCEGENE=""
   END

   W_CountDetail = DCOUNT(ENR_BALANCEGENE<9>,CHAR(253))
   FOR i = 1 TO W_CountDetail
      IF W_CumulAnt = 0 AND W_DateDeb <= ENR_BALANCEGENE<8, i> AND W_DateFin >= ENR_BALANCEGENE<8, i> THEN
         IF W_Exer="N-" THEN
            READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENEARCHIVE,ENR_BALANCEGENE<9,i> ELSE ENR_DETAILECRITUREGENE=""
         END ELSE
            READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENE,ENR_BALANCEGENE<9,i> ELSE ENR_DETAILECRITUREGENE=""
         END
         IF W_EcrNonLettre=1 THEN 
            IF (ENR_DETAILECRITUREGENE<11> = "") OR (W_Exer # "N1" AND ENR_DETAILECRITUREGENE<11>[2,1] = "1") THEN

               IF W_Ligne > W_LignePage THEN
                  IF W_FinTableau="FAUX" THEN
                     GOSUB 30
                  END
                  PAGE
                  GOSUB 40

                  IF W_ImprimeTotal = "FAUX" THEN
                     W_PageCpte = W_PageCpte + 1
                     PRINT "|                                                                                                                               |"
                     PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(36-LEN(ENR_PLANCOMPTABLE<1>)):"Page : ":W_PageCpte:SPACE(69-LEN(W_PageCpte)):"|"
                     PRINT "|                                                                                                                               |"
                     W_Ligne=W_Ligne+3
                     W_SauveLigne=W_SauveLigne+3
                     GOSUB 50
 		  END
               END
     	       IF W_SauveCpte # ENR_DETAILECRITUREGENE<3> THEN
        	  IF W_Premier="VRAI" THEN
              	     W_Total="VRAI"
           	     GOSUB 30
        	  END
                  IF (W_RupturePage=1 AND W_Premier="VRAI") OR (W_Ligne > W_LignePage) THEN
         	     PAGE
                     GOSUB 40
           	  END
      	          W_SauveCpte=ENR_DETAILECRITUREGENE<3>
                  PRINT "|                                                                                                                               |"
                  READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveCpte ELSE ENR_PLANCOMPTABLE=""
                  PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(112-LEN(ENR_PLANCOMPTABLE<1>)):"|"
                  PRINT "|                                                                                                                               |"
                  W_Ligne=W_Ligne+3
                  W_SauveLigne=W_SauveLigne+3
                  W_PageCpte = 1
                  GOSUB 50
                  W_Premier="VRAI"
                  W_ImpTotal="VRAI"
               END
               IF ENR_DETAILECRITUREGENE<3>[4,1] = "6" OR ENR_DETAILECRITUREGENE<3>[4,1] = "7" THEN
                  W_Sauve="FAUX"                    
                  IF W_SauveMont = "CREDIT" THEN
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_Sauve = "VRAI"
                     END
                  END ELSE
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_Sauve = "VRAI"
                     END
                  END
                         
                  IF W_SauvePiece = ENR_DETAILECRITUREGENE<5> AND W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2] AND W_SauveLib = ENR_DETAILECRITUREGENE<4> AND W_SauveDate = ENR_DETAILECRITUREGENE<2> AND W_SauveNumLigne + 1 "R%5" = ENR_BALANCEGENE<9,i>[8,5] AND W_Sauve = "VRAI" THEN
                     * dbit
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_SauveDeb = ENR_DETAILECRITUREGENE<6> + ICONV(W_Temp[87,11],"MCN")
                        W_SauveDeb=W_SauveDeb "R26(#11)"
                        W_Temp = W_Temp[1,86]:W_SauveDeb:W_Temp[98,32]
                        W_TotDebit = W_TotDebit + ENR_DETAILECRITUREGENE<6>
                     END
                     * Crdit
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_SauveCred = ENR_DETAILECRITUREGENE<7> + ICONV(W_Temp[104,11],"MCN")
                        W_SauveCred=W_SauveCred "R26(#11)"
                        W_Temp = W_Temp[1,103]:W_SauveCred:W_Temp[115,14]
                        W_TotCredit = W_TotCredit + ENR_DETAILECRITUREGENE<7>
                     END
                     W_TotSolde = W_TotDebit - W_TotCredit
                     W_SauveSolde = W_TotSolde 
                     * solde
                     *IF W_TotSolde # 0 THEN
                        W_TotSolde=W_TotSolde "R26(#11)"
                        W_Temp = W_Temp[1,115]:W_TotSolde:W_Temp[127,3]
                     *END
                               
                  END ELSE
                     IF W_Temp # "" THEN
                        PRINT W_Temp
                                 
                        W_Ligne = W_Ligne + 1
                        W_SauveLigne = W_SauveLigne + 1
                     END
 
                     * date
                     W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                     * journal
		     IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		     END ELSE
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		     END
                     * ligne
                     W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                     * libelle
                     IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                     END
                     * piece
                     IF ENR_DETAILECRITUREGENE<5> # "" THEN
                        W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * quantite
                     IF ENR_DETAILECRITUREGENE<9> # "" THEN
                        W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                        ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|" 
                     END
                     * chance  
                     IF ENR_DETAILECRITUREGENE<8> # "" THEN
                        W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * dbit
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                        ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"| "
                     END
                     * lettrage
                     IF ENR_DETAILECRITUREGENE<11> # "" THEN
                        IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                        END
                     END ELSE
                        W_Temp=W_Temp:SPACE(3):"|"
                     END
                     * crdit
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                        ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END
                     * solde
                     W_TotSolde=W_TotDebit-W_TotCredit
                     W_SauveSolde = W_TotSolde 
                     W_TotSolde=W_TotSolde "R26(#11)"
                     W_Temp=W_Temp:W_TotSolde:"  |"
                     * PRINT W_Temp
                     * W_Ligne=W_Ligne+1
                     * W_SauveLigne=W_SauveLigne+1
                     W_FinTableau="FAUX"
                  END
                  W_SauvePiece = ENR_DETAILECRITUREGENE<5>
                  W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2]
                  W_SauveLib = ENR_DETAILECRITUREGENE<4>
                  W_SauveDate = ENR_DETAILECRITUREGENE<2>
                  W_SauveNumLigne = ENR_BALANCEGENE<9,i>[8,5]
                  IF ENR_DETAILECRITUREGENE<6> # "" THEN
                     W_SauveMont = "DEBIT"
                  END ELSE
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_SauveMont = "CREDIT"
                     END
                  END
                  W_CountDetail = DCOUNT(ENR_BALANCEGENE<9>,CHAR(253))
  			W_CountTemp=0
			FOR y = 1 TO W_CountDetail
			   IF W_DateFin >= ENR_BALANCEGENE<8,y> THEN
			      W_CountTemp=W_CountTemp+1
			   END
 			NEXT y
                  IF i = W_CountTemp THEN
                     PRINT W_Temp
                     W_Ligne = W_Ligne + 1
                     W_SauveLigne = W_SauveLigne + 1
                  END
               END ELSE
                  * date
                  W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                  * journal
		  IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                      W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		  END ELSE
                      W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		  END
                  * ligne
                  W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                  * libelle
                  IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|" 
                  END ELSE
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                  END
                  * piece
                  IF ENR_DETAILECRITUREGENE<5> # "" THEN
                     W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(10):"|"
                  END
                  * quantite
                  IF ENR_DETAILECRITUREGENE<9> # "" THEN
                     W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                     ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"|" 
                  END
                  * chance
                  IF ENR_DETAILECRITUREGENE<8> # "" THEN
                     W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(10):"|"
                  END
                  * dbit
                  IF ENR_DETAILECRITUREGENE<6> # "" THEN
                     W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                     ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                  END ELSE
                      W_Temp=W_Temp:SPACE(11):"| "
                  END 
                  * lettrage
                  IF ENR_DETAILECRITUREGENE<11> # "" THEN
                     IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                     END
                  END ELSE
                     W_Temp=W_Temp:SPACE(3):"|"
                  END
                  * crdit
                  IF ENR_DETAILECRITUREGENE<7> # "" THEN
                     W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                     ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"|"
                  END 
                  * solde
                  W_TotSolde=W_TotDebit-W_TotCredit
                  W_SauveSolde = W_TotSolde 
                  W_TotSolde=W_TotSolde "R26(#11)"
                  W_Temp=W_Temp:W_TotSolde:"  |"
                  PRINT W_Temp
                  W_Ligne=W_Ligne+1
                  W_SauveLigne=W_SauveLigne+1 
                  W_FinTableau="FAUX"
      
               END
            END
         END ELSE

            IF W_Ligne > W_LignePage THEN
               IF W_FinTableau="FAUX" THEN
                  GOSUB 30
               END
               PAGE
               GOSUB 40

               IF W_ImprimeTotal = "FAUX" THEN
                  W_PageCpte = W_PageCpte + 1
                  PRINT "|                                                                                                                               |"
                  PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(36-LEN(ENR_PLANCOMPTABLE<1>)):"Page : ":W_PageCpte:SPACE(69-LEN(W_PageCpte)):"|"
                  PRINT "|                                                                                                                               |"
                  W_Ligne=W_Ligne+3
                  W_SauveLigne=W_SauveLigne+3
                  GOSUB 50
	       END
            END

            IF W_SauveCpte # ENR_DETAILECRITUREGENE<3> THEN
               IF W_Premier="VRAI" THEN
                  W_Total="VRAI"
                  GOSUB 30
               END
               IF (W_RupturePage=1 AND W_Premier="VRAI") OR (W_Ligne > W_LignePage) THEN
                  PAGE
                  GOSUB 40
               END
               W_SauveCpte=ENR_DETAILECRITUREGENE<3>
               PRINT "|                                                                                                                               |"
               READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveCpte ELSE ENR_PLANCOMPTABLE=""
               PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(112-LEN(ENR_PLANCOMPTABLE<1>)):"|"
               PRINT "|                                                                                                                               |"
               W_Ligne=W_Ligne+3
               W_SauveLigne=W_SauveLigne+3
               W_PageCpte = 1
               GOSUB 50
               W_Premier="VRAI"
               W_ImpTotal="VRAI"
            END
            IF ENR_DETAILECRITUREGENE<3>[4,1] = "6" OR ENR_DETAILECRITUREGENE<3>[4,1] = "7" THEN
               W_Sauve="FAUX"                    
               IF W_SauveMont = "CREDIT" THEN
                  IF ENR_DETAILECRITUREGENE<7> # "" THEN
                     W_Sauve = "VRAI"
                  END
               END ELSE
                  IF ENR_DETAILECRITUREGENE<6> # "" THEN
                     W_Sauve = "VRAI"
                  END
               END
                         
               IF W_SauvePiece = ENR_DETAILECRITUREGENE<5> AND W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2] AND W_SauveLib = ENR_DETAILECRITUREGENE<4> AND W_SauveDate = ENR_DETAILECRITUREGENE<2> AND W_SauveNumLigne + 1 "R%5" = ENR_BALANCEGENE<9,i>[8,5] AND W_Sauve = "VRAI" THEN
                  * dbit
                  IF ENR_DETAILECRITUREGENE<6> # "" THEN
                     W_SauveDeb = ENR_DETAILECRITUREGENE<6> + ICONV(W_Temp[87,11],"MCN")
                     W_SauveDeb=W_SauveDeb "R26(#11)"
                     W_Temp = W_Temp[1,86]:W_SauveDeb:W_Temp[98,32]
                     W_TotDebit = W_TotDebit + ENR_DETAILECRITUREGENE<6>
                  END
                  * Crdit
                  IF ENR_DETAILECRITUREGENE<7> # "" THEN
                     W_SauveCred = ENR_DETAILECRITUREGENE<7> + ICONV(W_Temp[104,11],"MCN")
                     W_SauveCred=W_SauveCred "R26(#11)"
                     W_Temp = W_Temp[1,103]:W_SauveCred:W_Temp[115,14]
                     W_TotCredit = W_TotCredit + ENR_DETAILECRITUREGENE<7>
                  END
                  W_TotSolde = W_TotDebit - W_TotCredit
                  W_SauveSolde = W_TotSolde 
                  * solde
                  *IF W_TotSolde # 0 THEN
                     W_TotSolde=W_TotSolde "R26(#11)"
                     W_Temp = W_Temp[1,115]:W_TotSolde:W_Temp[127,3]
                  *END
                                
               END ELSE
                  IF W_Temp # "" THEN
                     PRINT W_Temp
                                 
                     W_Ligne = W_Ligne + 1
                     W_SauveLigne = W_SauveLigne + 1
                  END
 
                  * date
                  W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                  * journal
		  IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		  END ELSE
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		  END
                  * ligne
                  W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                  * libelle
                  IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                  END ELSE
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                  END
                  * piece
                  IF ENR_DETAILECRITUREGENE<5> # "" THEN
                     W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(10):"|"
                  END
                  * quantite
                  IF ENR_DETAILECRITUREGENE<9> # "" THEN
                     W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                     ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"|" 
                  END
                  * chance  
                  IF ENR_DETAILECRITUREGENE<8> # "" THEN
                     W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(10):"|"
                  END
                  * dbit
                  IF ENR_DETAILECRITUREGENE<6> # "" THEN
                     W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                     ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"| "
                  END
                  * lettrage
                  IF ENR_DETAILECRITUREGENE<11> # "" THEN
                     IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                     END 
                  END ELSE
                     W_Temp=W_Temp:SPACE(3):"|"
                  END
                  * crdit
                  IF ENR_DETAILECRITUREGENE<7> # "" THEN
                     W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                     ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                  END ELSE
                     W_Temp=W_Temp:SPACE(11):"|"
                  END
                  * solde
                  W_TotSolde=W_TotDebit-W_TotCredit
                  W_SauveSolde = W_TotSolde 
                  W_TotSolde=W_TotSolde "R26(#11)"
                  W_Temp=W_Temp:W_TotSolde:"  |"
                  * PRINT W_Temp
                  * W_Ligne=W_Ligne+1
                  * W_SauveLigne=W_SauveLigne+1
                  W_FinTableau="FAUX"
               END
               W_SauvePiece = ENR_DETAILECRITUREGENE<5>
               W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2]
               W_SauveLib = ENR_DETAILECRITUREGENE<4>
               W_SauveDate = ENR_DETAILECRITUREGENE<2>
               W_SauveNumLigne = ENR_BALANCEGENE<9,i>[8,5]
               IF ENR_DETAILECRITUREGENE<6> # "" THEN
                  W_SauveMont = "DEBIT"
               END ELSE
                  IF ENR_DETAILECRITUREGENE<7> # "" THEN
                     W_SauveMont = "CREDIT"
                  END
               END
               W_CountDetail = DCOUNT(ENR_BALANCEGENE<9>,CHAR(253))
  		   W_CountTemp=0
		   FOR y = 1 TO W_CountDetail
			IF W_DateFin >= ENR_BALANCEGENE<8,y> THEN
			   W_CountTemp=W_CountTemp+1
			END
 		   NEXT y
               IF i = W_CountTemp THEN
                  PRINT W_Temp
                  W_Ligne = W_Ligne + 1
                  W_SauveLigne = W_SauveLigne + 1
               END
            END ELSE
               * date
               W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
               * journal
	       IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                  W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
	       END ELSE
                  W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
	       END
               * ligne
               W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
               * libelle
               IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|" 
               END ELSE
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
               END
               * piece
               IF ENR_DETAILECRITUREGENE<5> # "" THEN
                  W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(10):"|"
               END
               * quantite
               IF ENR_DETAILECRITUREGENE<9> # "" THEN
                  W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                  ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(11):"|" 
               END
               * chance
               IF ENR_DETAILECRITUREGENE<8> # "" THEN
                  W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(10):"|"
               END
               * dbit
               IF ENR_DETAILECRITUREGENE<6> # "" THEN
                  W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                  ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
               END ELSE
                  W_Temp=W_Temp:SPACE(11):"| "
               END 
               * lettrage
               IF ENR_DETAILECRITUREGENE<11> # "" THEN
                  IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                  END ELSE
                     W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                  END
               END ELSE
                  W_Temp=W_Temp:SPACE(3):"|"
               END
               * crdit
               IF ENR_DETAILECRITUREGENE<7> # "" THEN
                  W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                  ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                  W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
               END ELSE
                  W_Temp=W_Temp:SPACE(11):"|"
               END 
               * solde
               W_TotSolde=W_TotDebit-W_TotCredit
               W_SauveSolde = W_TotSolde 
               W_TotSolde=W_TotSolde "R26(#11)"
               W_Temp=W_Temp:W_TotSolde:"  |"
               PRINT W_Temp
               W_Ligne=W_Ligne+1
               W_SauveLigne=W_SauveLigne+1 
               W_FinTableau="FAUX"
      
            END
         END

      END ELSE

         IF W_CumulAnt = 1 AND W_DateFin >= ENR_BALANCEGENE<8, i> THEN
            IF W_Exer="N-" THEN
               READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENEARCHIVE,ENR_BALANCEGENE<9,i> ELSE ENR_DETAILECRITUREGENE=""
            END ELSE
               READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENE,ENR_BALANCEGENE<9,i> ELSE ENR_DETAILECRITUREGENE=""
            END
            IF W_EcrNonLettre=1 THEN 
               IF (ENR_DETAILECRITUREGENE<11> = "") OR (W_Exer # "N1" AND ENR_DETAILECRITUREGENE<11>[2,1] = "1") THEN
                  IF W_Ligne > W_LignePage THEN
                     IF W_FinTableau="FAUX" THEN
                        GOSUB 30
                     END
                     PAGE
                     GOSUB 40

                     IF W_ImprimeTotal = "FAUX" THEN
                        W_PageCpte = W_PageCpte + 1
                        PRINT "|                                                                                                                               |"
                        PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(36-LEN(ENR_PLANCOMPTABLE<1>)):"Page : ":W_PageCpte:SPACE(69-LEN(W_PageCpte)):"|"
                        PRINT "|                                                                                                                               |"
                        W_Ligne=W_Ligne+3
                        W_SauveLigne=W_SauveLigne+3
                        GOSUB 50
		     END
                  END
                  IF W_SauveCpte # ENR_DETAILECRITUREGENE<3> THEN
                     IF W_Premier="VRAI" THEN
                        W_Total="VRAI"
                        GOSUB 30
                     END
                     IF (W_RupturePage=1 AND W_Premier="VRAI") OR (W_Ligne > W_LignePage) THEN
                        PAGE
                        GOSUB 40
                     END
                     W_SauveCpte=ENR_DETAILECRITUREGENE<3>
                     PRINT "|                                                                                                                               |"
                     READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveCpte ELSE ENR_PLANCOMPTABLE=""
                     PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(112-LEN(ENR_PLANCOMPTABLE<1>)):"|"
                     PRINT "|                                                                                                                               |"
                     W_Ligne=W_Ligne+3
                     W_SauveLigne=W_SauveLigne+3
                     W_PageCpte = 1
                     GOSUB 50
                     W_Premier="VRAI"
                     W_ImpTotal="VRAI"
                  END
                  IF ENR_DETAILECRITUREGENE<3>[4,1] = "6" OR ENR_DETAILECRITUREGENE<3>[4,1] = "7" THEN
                     W_Sauve="FAUX"                     
                     IF W_SauveMont = "CREDIT" THEN
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_Sauve = "VRAI"
                        END
                     END ELSE
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_Sauve = "VRAI"
                        END
                     END
                         
                     IF W_SauvePiece = ENR_DETAILECRITUREGENE<5> AND W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2] AND W_SauveLib = ENR_DETAILECRITUREGENE<4> AND W_SauveDate = ENR_DETAILECRITUREGENE<2> AND W_SauveNumLigne + 1 "R%5" = ENR_BALANCEGENE<9,i>[8,5] AND W_Sauve = "VRAI" THEN
                        * dbit
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_SauveDeb = ENR_DETAILECRITUREGENE<6> + ICONV(W_Temp[87,11],"MCN")
                           W_SauveDeb=W_SauveDeb "R26(#11)"
                           W_Temp = W_Temp[1,86]:W_SauveDeb:W_Temp[98,32]
                           W_TotDebit = W_TotDebit + ENR_DETAILECRITUREGENE<6>
                        END
                        * Crdit
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_SauveCred = ENR_DETAILECRITUREGENE<7> + ICONV(W_Temp[104,11],"MCN")
                           W_SauveCred=W_SauveCred "R26(#11)"
                           W_Temp = W_Temp[1,103]:W_SauveCred:W_Temp[115,14]
                           W_TotCredit = W_TotCredit + ENR_DETAILECRITUREGENE<7>
                        END
                        W_TotSolde = W_TotDebit - W_TotCredit
                        W_SauveSolde = W_TotSolde 
                        * solde
                        *IF W_TotSolde # 0 THEN
                           W_TotSolde=W_TotSolde "R26(#11)"
                           W_Temp = W_Temp[1,115]:W_TotSolde:W_Temp[127,3]
                        *END
                               
                     END ELSE
                        IF W_Temp # "" THEN
                           PRINT W_Temp
                                 
                           W_Ligne = W_Ligne + 1
                           W_SauveLigne = W_SauveLigne + 1
                        END
 
                        * date
                        W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                        * journal
		     	IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        	W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		     	END ELSE
                        	W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		     	END
                        * ligne
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                        * libelle
                        IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                        END
                        * piece
                        IF ENR_DETAILECRITUREGENE<5> # "" THEN
                           W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(10):"|"
                        END
                        * quantite
                        IF ENR_DETAILECRITUREGENE<9> # "" THEN
                           W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                           ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"|" 
                        END
                        * chance  
                        IF ENR_DETAILECRITUREGENE<8> # "" THEN
                           W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(10):"|"
                        END
                        * dbit
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                           ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"| "
                        END
                        * lettrage
                        IF ENR_DETAILECRITUREGENE<11> # "" THEN
                           IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                              W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                           END ELSE
                              W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                           END
                        END ELSE
                           W_Temp=W_Temp:SPACE(3):"|"
                        END
                        * crdit
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                           ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"|"
                        END
                        * solde
                        W_TotSolde=W_TotDebit-W_TotCredit
                        W_SauveSolde = W_TotSolde 
                        W_TotSolde=W_TotSolde "R26(#11)"
                        W_Temp=W_Temp:W_TotSolde:"  |"
                        * PRINT W_Temp
                        * W_Ligne=W_Ligne+1
                        * W_SauveLigne=W_SauveLigne+1
                        W_FinTableau="FAUX"
                     END
                     W_SauvePiece = ENR_DETAILECRITUREGENE<5>
                     W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2]
                     W_SauveLib = ENR_DETAILECRITUREGENE<4>
                     W_SauveDate = ENR_DETAILECRITUREGENE<2>
                     W_SauveNumLigne = ENR_BALANCEGENE<9,i>[8,5]
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_SauveMont = "DEBIT"
                     END ELSE
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_SauveMont = "CREDIT"
                        END
                     END
                     W_CountDetail = DCOUNT(ENR_BALANCEGENE<9>,CHAR(253))
  			   W_CountTemp=0
			   FOR y = 1 TO W_CountDetail
				IF W_DateFin >= ENR_BALANCEGENE<8,y> THEN
				   W_CountTemp=W_CountTemp+1
				END
 			   NEXT y
                     IF i = W_CountTemp THEN
                        PRINT W_Temp
                        W_Ligne = W_Ligne + 1
                        W_SauveLigne = W_SauveLigne + 1
                     END
                  END ELSE
                     * date
                     W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                     * journal
		     IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		     END ELSE
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		     END
                     * ligne
                     W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                     * libelle
                     IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|" 
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                     END
                     * piece
                     IF ENR_DETAILECRITUREGENE<5> # "" THEN
                        W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * quantite
                     IF ENR_DETAILECRITUREGENE<9> # "" THEN
                        W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                        ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|" 
                     END
                     * chance
                     IF ENR_DETAILECRITUREGENE<8> # "" THEN
                        W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * dbit
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                        ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"| "
                     END 
                     * lettrage
                     IF ENR_DETAILECRITUREGENE<11> # "" THEN
                        IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                        END
                     END ELSE
                        W_Temp=W_Temp:SPACE(3):"|" 
                     END
                     * crdit
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                        ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END 
                     * solde
                     W_TotSolde=W_TotDebit-W_TotCredit
                     W_SauveSolde = W_TotSolde 
                     W_TotSolde=W_TotSolde "R26(#11)"
                     W_Temp=W_Temp:W_TotSolde:"  |"
                     PRINT W_Temp
                     W_Ligne=W_Ligne+1
                     W_SauveLigne=W_SauveLigne+1 
                     W_FinTableau="FAUX"
      
                  END
               END
            END ELSE

                  IF W_Ligne > W_LignePage THEN
                     IF W_FinTableau="FAUX" THEN
                        GOSUB 30
                     END
                     PAGE
                     GOSUB 40

                     IF W_ImprimeTotal = "FAUX" THEN
                        W_PageCpte = W_PageCpte + 1
                        PRINT "|                                                                                                                               |"
                        PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(36-LEN(ENR_PLANCOMPTABLE<1>)):"Page : ":W_PageCpte:SPACE(69-LEN(W_PageCpte)):"|"
                        PRINT "|                                                                                                                               |"
                        W_Ligne=W_Ligne+3
                        W_SauveLigne=W_SauveLigne+3
                        GOSUB 50
		     END
                  END
                  IF W_SauveCpte # ENR_DETAILECRITUREGENE<3> THEN
                     IF W_Premier="VRAI" THEN
                        W_Total="VRAI"
                        GOSUB 30
                     END
                     IF (W_RupturePage=1 AND W_Premier="VRAI") OR (W_Ligne > W_LignePage) THEN
                        PAGE
                        GOSUB 40
                     END
                     W_SauveCpte=ENR_DETAILECRITUREGENE<3>
                     PRINT "|                                                                                                                               |"
                     READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveCpte ELSE ENR_PLANCOMPTABLE=""
                     PRINT "|":SPACE(2):W_SauveCpte[4,10]:SPACE(3):ENR_PLANCOMPTABLE<1>:SPACE(112-LEN(ENR_PLANCOMPTABLE<1>)):"|"
                     PRINT "|                                                                                                                               |"
                     W_Ligne=W_Ligne+3
                     W_SauveLigne=W_SauveLigne+3
                     W_PageCpte = 1
                     GOSUB 50
                     W_Premier="VRAI"
                     W_ImpTotal="VRAI"
                  END
                  IF ENR_DETAILECRITUREGENE<3>[4,1] = "6" OR ENR_DETAILECRITUREGENE<3>[4,1] = "7" THEN
                     W_Sauve="FAUX"                     
                     IF W_SauveMont = "CREDIT" THEN
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_Sauve = "VRAI"
                        END
                     END ELSE
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_Sauve = "VRAI"
                        END
                     END
                         
                     IF W_SauvePiece = ENR_DETAILECRITUREGENE<5> AND W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2] AND W_SauveLib = ENR_DETAILECRITUREGENE<4> AND W_SauveDate = ENR_DETAILECRITUREGENE<2> AND W_SauveNumLigne + 1 "R%5" = ENR_BALANCEGENE<9,i>[8,5] AND W_Sauve = "VRAI" THEN
                        * dbit
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_SauveDeb = ENR_DETAILECRITUREGENE<6> + ICONV(W_Temp[87,11],"MCN")
                           W_SauveDeb=W_SauveDeb "R26(#11)"
                           W_Temp = W_Temp[1,86]:W_SauveDeb:W_Temp[98,32]
                           W_TotDebit = W_TotDebit + ENR_DETAILECRITUREGENE<6>
                        END
                        * Crdit
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_SauveCred = ENR_DETAILECRITUREGENE<7> + ICONV(W_Temp[104,11],"MCN")
                           W_SauveCred=W_SauveCred "R26(#11)"
                           W_Temp = W_Temp[1,103]:W_SauveCred:W_Temp[115,14]
                           W_TotCredit = W_TotCredit + ENR_DETAILECRITUREGENE<7>
                        END
                        W_TotSolde = W_TotDebit - W_TotCredit
                        W_SauveSolde = W_TotSolde 
                        * solde
                        *IF W_TotSolde # 0 THEN
                           W_TotSolde=W_TotSolde "R26(#11)"
                           W_Temp = W_Temp[1,115]:W_TotSolde:W_Temp[127,3]
                        *END
                               
                     END ELSE
                        IF W_Temp # "" THEN
                           PRINT W_Temp
                                 
                           W_Ligne = W_Ligne + 1
                           W_SauveLigne = W_SauveLigne + 1
                        END
 
                        * date
                        W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                        * journal
		     	IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        	W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		     	END ELSE
                       	 	W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		     	END
                        * ligne
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                        * libelle
                        IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                        END
                        * piece
                        IF ENR_DETAILECRITUREGENE<5> # "" THEN
                           W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(10):"|"
                        END
                        * quantite
                        IF ENR_DETAILECRITUREGENE<9> # "" THEN
                           W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                           ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"|" 
                        END
                        * chance  
                        IF ENR_DETAILECRITUREGENE<8> # "" THEN
                           W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(10):"|"
                        END
                        * dbit
                        IF ENR_DETAILECRITUREGENE<6> # "" THEN
                           W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                           ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"| "
                        END
                        * lettrage
                        IF ENR_DETAILECRITUREGENE<11> # "" THEN
                           IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                              W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                           END ELSE
                              W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                           END
                        END ELSE
                           W_Temp=W_Temp:SPACE(3):"|"
                        END
                        * crdit
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                           ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                        END ELSE
                           W_Temp=W_Temp:SPACE(11):"|"
                        END
                        * solde
                        W_TotSolde=W_TotDebit-W_TotCredit
                        W_SauveSolde = W_TotSolde 
                        W_TotSolde=W_TotSolde "R26(#11)"
                        W_Temp=W_Temp:W_TotSolde:"  |"
                        * PRINT W_Temp
                        * W_Ligne=W_Ligne+1
                        * W_SauveLigne=W_SauveLigne+1
                        W_FinTableau="FAUX"
                     END
                     W_SauvePiece = ENR_DETAILECRITUREGENE<5>
                     W_SauveJournal = ENR_BALANCEGENE<9,i>[4,2]
                     W_SauveLib = ENR_DETAILECRITUREGENE<4>
                     W_SauveDate = ENR_DETAILECRITUREGENE<2>
                     W_SauveNumLigne = ENR_BALANCEGENE<9,i>[8,5]
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_SauveMont = "DEBIT"
                     END ELSE
                        IF ENR_DETAILECRITUREGENE<7> # "" THEN
                           W_SauveMont = "CREDIT"
                        END
                     END
                     W_CountDetail = DCOUNT(ENR_BALANCEGENE<9>,CHAR(253))
  			   W_CountTemp=0
			   FOR y = 1 TO W_CountDetail
				IF W_DateFin >= ENR_BALANCEGENE<8,y> THEN
				   W_CountTemp=W_CountTemp+1
				END
 			   NEXT y
                     IF i = W_CountTemp THEN
                        PRINT W_Temp
                        W_Ligne = W_Ligne + 1
                        W_SauveLigne = W_SauveLigne + 1
                     END
                  END ELSE
                     * date
                     W_Temp="|":OCONV(ENR_DETAILECRITUREGENE<2>,"D2/"):" |"
                     * journal		     
		     IF ENR_BALANCEGENE<9,i>[6,1]="N" THEN
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:" |"
		     END ELSE
                        W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[4,2]:"P|"
		     END
                     * ligne
                     W_Temp=W_Temp:ENR_BALANCEGENE<9,i>[8,5]:"|"
                     * libelle
                     IF LEN(ENR_DETAILECRITUREGENE<4>) > 30 THEN
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>[1,30]:"|" 
                     END ELSE
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(30-LEN(ENR_DETAILECRITUREGENE<4>)):"|"
                     END
                     * piece
                     IF ENR_DETAILECRITUREGENE<5> # "" THEN
                        W_Temp=W_Temp:SPACE(10-LEN(ENR_DETAILECRITUREGENE<5>)):ENR_DETAILECRITUREGENE<5>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * quantite
                     IF ENR_DETAILECRITUREGENE<9> # "" THEN
                        W_TotQte=W_TotQte+ENR_DETAILECRITUREGENE<9>
                        ENR_DETAILECRITUREGENE<9>=ENR_DETAILECRITUREGENE<9> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<9>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|" 
                     END
                     * chance
                     IF ENR_DETAILECRITUREGENE<8> # "" THEN
                        W_Temp=W_Temp:OCONV(ENR_DETAILECRITUREGENE<8>,"D4/"):"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(10):"|"
                     END
                     * dbit
                     IF ENR_DETAILECRITUREGENE<6> # "" THEN
                        W_TotDebit=W_TotDebit+ENR_DETAILECRITUREGENE<6>
                        ENR_DETAILECRITUREGENE<6>=ENR_DETAILECRITUREGENE<6> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<6>:"| "
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"| "
                     END 
                     * lettrage
                     IF ENR_DETAILECRITUREGENE<11> # "" THEN
                        IF LEN(ENR_DETAILECRITUREGENE<11>) = 1 THEN
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:"  |"
                        END ELSE
                           W_Temp=W_Temp:ENR_DETAILECRITUREGENE<11>:" |"
                        END
                     END ELSE
                        W_Temp=W_Temp:SPACE(3):"|" 
                     END
                     * crdit
                     IF ENR_DETAILECRITUREGENE<7> # "" THEN
                        W_TotCredit=W_TotCredit+ENR_DETAILECRITUREGENE<7>
                        ENR_DETAILECRITUREGENE<7>=ENR_DETAILECRITUREGENE<7> "R26(#11)"
                        W_Temp=W_Temp:ENR_DETAILECRITUREGENE<7>:"|"
                     END ELSE
                        W_Temp=W_Temp:SPACE(11):"|"
                     END 
                     * solde
                     W_TotSolde=W_TotDebit-W_TotCredit
                     W_SauveSolde = W_TotSolde 
                     W_TotSolde=W_TotSolde "R26(#11)"
                     W_Temp=W_Temp:W_TotSolde:"  |"
                     PRINT W_Temp
                     W_Ligne=W_Ligne+1
                     W_SauveLigne=W_SauveLigne+1 
                     W_FinTableau="FAUX"
      
                  END

            END

         END

      END

   NEXT i

RETURN

*****************************************************************************
*  Imprime Entete tableau
80

   IF W_PageTotal="FAUX" THEN
      PRINT "|---------|---|-----|------------------------------|----------|-----------|----------|-----------|----|-----------|-------------|" 
      PRINT "|  DATE   |JO |LIGNE|            LIBELLE           |   PIECE  | QUANTITE  | ECHEANCE |  DEBIT    |LET.|  CREDIT   |   SOLDE     |"
      PRINT "|         |   |     |                              |          |           |          |           |    |           |             |"
      PRINT "|---------|---|-----|------------------------------|----------|-----------|----------|-----------|----|-----------|-------------|"
   END ELSE
      PRINT "|-------------------------------------------------------------|-----------|----------|------------|--|------------|-------------|" 
      PRINT "|                                                             | QUANTITE  |          |   DEBIT    |  |   CREDIT   |   SOLDE     |"
      PRINT "|                                                             |           |          |            |  |            |             |"
      PRINT "|-------------------------------------------------------------|-----------|----------|------------|--|------------|-------------|"
   END

RETURN

*****************************************************************************
*  Imprime Page Total
90

   W_PageTotal="VRAI"
   PAGE
   GOSUB 40

   PRINT "|                                                             |           |          |            |  |            |             |"
   W_TotGeneQte=W_TotGeneQte "R26(#11)"
   W_TotGeneDebit=W_TotGeneDebit "R26(#12)"
   W_TotGeneCredit=W_TotGeneCredit "R26(#12)"
   W_TotGeneSolde=W_TotGeneSolde "R26(#12)"
   IF W_TotGeneQte # "       0,00" THEN
   PRINT "|     TOTAL DES MOUVEMENTS EDITES                             |":W_TotGeneQte:"|          |":W_TotGeneDebit:"|  |":W_TotGeneCredit:"|":W_TotGeneSolde:" |"
   END ELSE
   PRINT "|     TOTAL DES MOUVEMENTS EDITES                             |           |          |":W_TotGeneDebit:"|  |":W_TotGeneCredit:"|":W_TotGeneSolde:" |"
   END
   PRINT "|                                                             |           |          |            |  |            |             |"
   PRINT "|-------------------------------------------------------------|-----------|----------|------------|--|------------|-------------|"

RETURN
