**********************************************************
*  Mise en forme du fichier ARCHIVEFACT
*  Vanessa
*  MARS 2001
*
*  MICHAEL : MAJ octobre 2001 : ajout de W_NbPage 
*  pour grer les factures de + de 2 pages...
**********************************************************

* Ouvertures des fichiers

EXECUTE "DATE.FORMAT"
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE PRINT "OUVERTURE FACTURAIDE" ;* en lecture
OPEN "","ARCHIVEFACT" TO F.ARCHIVEFACT ELSE PRINT "OUVERTURE ARCHIVEFACT" ;* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en criture 
*********************************************************
* initialisation des variables
ENR_ARCHIVEFACT=""
ENR_TEMPO=""
W_Ligne=1
W_PremierePage="FAUX"
W_Len=0
W_Total=0
W_TabDyn=""
W_NumOrdre=1
*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_User=FIELD(ARGUMENTS," ",2)
W_Basic=FIELD(ARGUMENTS," ",3)
*********************************************************
* PROGRAMME PRINCIPAL

   EXECUTE "SET-DEC ,"
   EXECUTE "SET-THOUS ."

   IF W_Basic=1 THEN
      READ ENR_TEMPO FROM F.TEMPO,"REQUETEFACT":W_User ELSE ENR_TEMPO=""
      IF ENR_TEMPO<1> # "" THEN
	* Ecriture de TEMPO "ARCHIVEFACT":"USER" : en att. 1 , toutes les cles ARCHIVEFACT
         GOSUB 100
      END
   END

   READ ENR_TEMPO FROM F.TEMPO,"ARCHIVEFACT":W_User ELSE ENR_TEMPO=""
   W_TabDyn=ENR_TEMPO<1>

   W_Count = DCOUNT(W_TabDyn,CHAR(253))
   ENR_TEMPO=""

   FOR i = 1 TO W_Count

      READ ENR_ARCHIVEFACT FROM F.ARCHIVEFACT,W_TabDyn<1,i> ELSE ENR_ARCHIVEFACT=""
      READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_TabDyn<1,i>:"0" ELSE ENR_FACTURAIDE=""

	* En-tete
      GOSUB 10

	* En-tete2
      GOSUB 20

	*  REMPLIR DETAIL FACTURE
      GOSUB 30

	*  IMPRIME TOTAL
      GOSUB 40

	*  IMPRIME INTERV
      GOSUB 50

      *  IMPRIME LIGNE ANNOTATION
	GOSUB 60

	*  IMPRIME LIGNE EN PIED 
      GOSUB 70

      IF i # W_Count THEN
         LOOP
         WHILE MOD(W_Ligne,72) # 0 DO
            GOSUB 5
         REPEAT
      END

      IF MOD(i,200)=0 THEN
         WRITE ENR_TEMPO ON F.TEMPO,"EDITFACT":W_User:W_NumOrdre
         W_NumOrdre=W_NumOrdre+1
         W_Ligne=1
         ENR_TEMPO=""
      END
      GOSUB 5

   NEXT i

   WRITE ENR_TEMPO ON F.TEMPO,"EDITFACT":W_User:W_NumOrdre

   EXECUTE "SET-DEC ."
   EXECUTE "SET-THOUS ,"

STOP

*****************************************************************************
*  SAUTE UNE LIGNE
5

   ENR_TEMPO<W_Ligne>=""
   W_Ligne=W_Ligne+1

RETURN

*****************************************************************************
*  ENTETE FACTURE
10

   GOSUB 5

   W_Var=ENR_ARCHIVEFACT<2>
   GOSUB 80
   ENR_ARCHIVEFACT<2>=W_Var
   ENR_TEMPO<W_Ligne>=SPACE(41):ENR_ARCHIVEFACT<2>
   W_Ligne=W_Ligne+1
   GOSUB 5

   ENR_TEMPO<W_Ligne>=ENR_ARCHIVEFACT<4>
   W_Ligne=W_Ligne+1
   GOSUB 5

   * cadre association
   * sigle + tel
   ENR_TEMPO<W_Ligne>=" ":ENR_ARCHIVEFACT<6,1>:SPACE(40-LEN(ENR_ARCHIVEFACT<6,1>)):ENR_ARCHIVEFACT<6,2>
   W_Ligne=W_Ligne+1

   * adresse + fax
   ENR_TEMPO<W_Ligne>=" ":ENR_ARCHIVEFACT<7,1>:SPACE(40-LEN(ENR_ARCHIVEFACT<7,1>)):ENR_ARCHIVEFACT<7,2>
   W_Ligne=W_Ligne+1

   * complement adresse
   IF ENR_ARCHIVEFACT<8> # "" THEN
      ENR_TEMPO<W_Ligne>=" ":ENR_ARCHIVEFACT<8>
      W_Ligne=W_Ligne+1
   END

   * code postal + ville
   ENR_TEMPO<W_Ligne>=" ":ENR_ARCHIVEFACT<9>
   W_Ligne=W_Ligne+1

   IF ENR_ARCHIVEFACT<8> = "" THEN
      ENR_TEMPO<W_Ligne>=" "
      W_Ligne=W_Ligne+1
   END

RETURN

*****************************************************************************
*  ENTETE FACTURE 2
20

   GOSUB 5
   GOSUB 5

   * identifiant + titre + nom + prnom
   ENR_TEMPO<W_Ligne>=ENR_ARCHIVEFACT<11,1>:SPACE(40-LEN(ENR_ARCHIVEFACT<11,1>)):ENR_ARCHIVEFACT<11,2>
   W_Ligne=W_Ligne+1

   IF LEN(SPACE(15):ENR_ARCHIVEFACT<12,1>) <= 40 THEN
      ENR_TEMPO<W_Ligne>=SPACE(15):ENR_ARCHIVEFACT<12,1>
   END ELSE
      ENR_TEMPO<W_Ligne>=SPACE(15):ENR_ARCHIVEFACT<12,1>[1,25]
   END
   W_Ligne=W_Ligne+1

   GOSUB 5

   * numro facture + adresse
   W_Var=ENR_ARCHIVEFACT<13,2>
   GOSUB 80
   ENR_ARCHIVEFACT<13,2>=W_Var
   ENR_TEMPO<W_Ligne>=ENR_ARCHIVEFACT<13,1>:SPACE(40-LEN(ENR_ARCHIVEFACT<13,1>)):ENR_ARCHIVEFACT<13,2>
   W_Ligne=W_Ligne+1

   * complment adresse
   W_Var=ENR_ARCHIVEFACT<14,2>
   GOSUB 80
   ENR_ARCHIVEFACT<14,2>=W_Var
   ENR_TEMPO<W_Ligne>=SPACE(40):ENR_ARCHIVEFACT<14,2>
   W_Ligne=W_Ligne+1

   * code postal + ville
   ENR_TEMPO<W_Ligne>=SPACE(40):ENR_ARCHIVEFACT<15,2>
   W_Ligne=W_Ligne+1

   GOSUB 5
   GOSUB 5
   GOSUB 5

   IF ENR_ARCHIVEFACT<16> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_ARCHIVEFACT<16>
   END ELSE
      ENR_TEMPO<W_Ligne>=""
   END
   W_Ligne=W_Ligne+1

   IF ENR_ARCHIVEFACT<17> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_ARCHIVEFACT<17>
   END ELSE
      ENR_TEMPO<W_Ligne>=""
   END
   W_Ligne=W_Ligne+1

RETURN

*****************************************************************************
*  REMPLIR DETAIL FACTURE
30

   GOSUB 5
   GOSUB 5
   GOSUB 5

   * 1ere ligne detail
   W_Rang=19

   W_CountDetail=0
   W_NbPages = 1
   LOOP 

   UNTIL ENR_ARCHIVEFACT<W_Rang> = "#6" DO
      W_Rang=W_Rang+1
      W_CountDetail=W_CountDetail+1
   REPEAT
   PRINT "Total : ":W_CountDetail
   * W_CountDetail = nb lignes detail

   W_Rang=19

   FOR j=1 TO W_CountDetail
      W_Multi12=INT(j/12)
      IF (W_Multi12 * 12) + 1 = j AND j # 1 THEN
         W_PremierePage="VRAI"
	   PRINT "Attention : W_Ligne = ":W_Ligne
         FOR k = W_Ligne TO 72 * W_NbPages
            GOSUB 5
         NEXT k
         GOSUB 10
         GOSUB 20
         GOSUB 5
         GOSUB 5
         GOSUB 5
	   W_NbPages = W_NbPages + 1
      END
   
      * priode
      W_Var=ENR_ARCHIVEFACT<W_Rang,1>
      GOSUB 80
      ENR_ARCHIVEFACT<W_Rang,1>=W_Var
      ENR_TEMPO<W_Ligne>=OCONV(ENR_ARCHIVEFACT<W_Rang,1>,"MCU"):SPACE(15-LEN(ENR_ARCHIVEFACT<W_Rang,1>))
      * libell
      W_Long=LEN(ENR_ARCHIVEFACT<W_Rang,2>)
      IF W_Long > 39 THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,2>[1,39]
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,2>
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(39-W_Long)
      END
      * base
      IF ENR_ARCHIVEFACT<W_Rang,3> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,3> "R26(#9)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
      END
      * taux
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:" "
      IF ENR_ARCHIVEFACT<W_Rang,4> # "" THEN
         IF W_TabDyn<1,i>[9,1]="M" THEN
            IF ENR_FACTURAIDE<13> = "3" THEN
               IF ENR_ARCHIVEFACT<W_Rang,4> >= 100000 THEN
                  ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,4>/10 "R26(#6)"
               END ELSE
                  ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,4> "R37(#6)"
               END
            END ELSE
               ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,4> "R26(#6)"
            END
         END ELSE
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,4> "R26(#6)"
         END
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(6)
      END 
      * montant
      IF ENR_ARCHIVEFACT<W_Rang,5> # "" THEN
         IF ENR_ARCHIVEFACT<W_Rang,5> <= -1000000 THEN
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,5> "R26(#8)"
         END ELSE
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:" ":ENR_ARCHIVEFACT<W_Rang,5> "R26(#8)"
         END
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(8)
      END
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1

   NEXT j
   W_SauveRang=W_Rang

RETURN

*****************************************************************************
*  IMPRIME TOTAL
40

   W_Rang=W_SauveRang+1

   IF W_CountDetail > 12 THEN

      LOOP
      UNTIL W_CountDetail < 12 DO
         W_CountDetail=W_CountDetail-12
      REPEAT
   END

   W_Diff = 13 - W_CountDetail
   FOR j = 1 TO W_Diff
      GOSUB 5
   NEXT j

   W_Rang=W_Rang+1

   IF ENR_ARCHIVEFACT<W_Rang>[27,1] # "0" AND ENR_ARCHIVEFACT<W_Rang>[27,1] # "" THEN
      W_Rang=W_Rang-1

      W_Len=LEN(ENR_ARCHIVEFACT<W_Rang>)
      ENR_TEMPO<W_Ligne>=SPACE(44):ENR_ARCHIVEFACT<W_Rang>[1,26]:ENR_ARCHIVEFACT<W_Rang>[27,W_Len-26] "R26(#9)"

      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1

      W_Len=LEN(ENR_ARCHIVEFACT<W_Rang>)
      ENR_TEMPO<W_Ligne>=SPACE(44):ENR_ARCHIVEFACT<W_Rang>[1,26]:ENR_ARCHIVEFACT<W_Rang>[27,W_Len-26] "R26(#9)"

      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1

      W_Len=LEN(ENR_ARCHIVEFACT<W_Rang>)
      ENR_TEMPO<W_Ligne>=SPACE(44):ENR_ARCHIVEFACT<W_Rang>[1,26]:ENR_ARCHIVEFACT<W_Rang>[27,W_Len-26] "R26(#9)"
      W_Total = ENR_ARCHIVEFACT<W_Rang>[27,W_Len-26]
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1

      IF ENR_ARCHIVEFACT<W_Rang> # "#7" THEN
         W_Len=LEN(ENR_ARCHIVEFACT<W_Rang>)
         ENR_TEMPO<W_Ligne>=SPACE(44):ENR_ARCHIVEFACT<W_Rang>[1,26]:ENR_ARCHIVEFACT<W_Rang>[27,W_Len-26] "R26(#9)"
         W_Ligne=W_Ligne+1   
         W_Rang=W_Rang+1
      END ELSE
         GOSUB 5
      END

   END ELSE

      W_Rang=W_Rang+1
      W_Len=LEN(ENR_ARCHIVEFACT<W_Rang>)
      ENR_TEMPO<W_Ligne>=SPACE(44):ENR_ARCHIVEFACT<W_Rang>[1,26]:ENR_ARCHIVEFACT<W_Rang>[27,W_Len-26] "R26(#9)"
      W_Total = ENR_ARCHIVEFACT<W_Rang>[27,W_Len-26]
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1

      IF ENR_ARCHIVEFACT<W_Rang> # "#7" THEN
         W_Len=LEN(ENR_ARCHIVEFACT<W_Rang>)
         ENR_TEMPO<W_Ligne>=SPACE(44):ENR_ARCHIVEFACT<W_Rang>[1,26]:ENR_ARCHIVEFACT<W_Rang>[27,W_Len-26] "R26(#9)"
         W_Ligne=W_Ligne+1   
         W_Rang=W_Rang+1
      END ELSE
         GOSUB 5
      END

      GOSUB 5
      GOSUB 5
   END

   W_SauveRang=0
   W_SauveRang=W_Rang

RETURN

*****************************************************************************
*  IMPRIME INTERV
50

   W_Rang=W_SauveRang+1

   GOSUB 5
   GOSUB 5
   GOSUB 5

   W_CountInterv=0

   LOOP
   UNTIL ENR_ARCHIVEFACT<W_Rang> = "#8" DO
      W_Rang=W_Rang+1
      W_CountInterv=W_CountInterv+1
   REPEAT

   IF W_CountInterv > 5 THEN
      W_CountInterv=5
   END

   W_Rang=W_SauveRang+1

   FOR j=1 TO W_CountInterv
      ENR_TEMPO<W_Ligne>=""
      IF LEN(ENR_ARCHIVEFACT<W_Rang,1>) < 25 THEN
         ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEFACT<W_Rang,1>:SPACE(27-LEN(ENR_ARCHIVEFACT<W_Rang,1>))
      END ELSE
         ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEFACT<W_Rang,1>[1,25]:SPACE(1)
      END

      IF ENR_ARCHIVEFACT<W_Rang,2> # "" THEN
         IF LEN(ENR_ARCHIVEFACT<W_Rang,2>) < 24 THEN
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,2>:SPACE(25-LEN(ENR_ARCHIVEFACT<W_Rang,2>))
         END ELSE
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,2>[1,24]:SPACE(1)
         END
      END

      IF ENR_ARCHIVEFACT<W_Rang,3> # "" THEN
         IF LEN(ENR_ARCHIVEFACT<W_Rang,3>) < 25 THEN
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,3>
         END ELSE
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEFACT<W_Rang,3>[1,25]:SPACE(1)
         END
      END
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1
   NEXT j

   W_SauveRang=0
   W_SauveRang=W_Rang-1

   W_Diff=5-W_CountInterv+1
   FOR j=1 TO W_Diff
      GOSUB 5
   NEXT j

RETURN

*****************************************************************************
*  IMPRIME LIGNE ANNOTATION
60

   W_Rang=W_SauveRang+1
   W_Rang=W_Rang+1

   FOR j=1 TO 3
      IF ENR_ARCHIVEFACT<W_Rang> # "" THEN
         ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEFACT<W_Rang>
      END ELSE
         ENR_TEMPO<W_Ligne>=""
      END
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1
   NEXT j

   W_SauveRang=W_Rang-1

RETURN

*****************************************************************************
*  IMPRIME LIGNE EN PIED 
70

   W_Rang=W_SauveRang+1

   W_Rang=W_Rang+1
   GOSUB 5
   GOSUB 5

   IF W_Total >= 0 THEN
      FOR j=1 TO 3
         IF ENR_ARCHIVEFACT<W_Rang> # "" THEN
            ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEFACT<W_Rang>
         END ELSE
            ENR_TEMPO<W_Ligne>=""
         END
         W_Ligne=W_Ligne+1   
         W_Rang=W_Rang+1
      NEXT j

      GOSUB 5
      GOSUB 5
      GOSUB 5
  
      ENR_TEMPO<W_Ligne>=SPACE(57):ENR_ARCHIVEFACT<W_Rang,2>
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1

      IF ENR_ARCHIVEFACT<W_Rang,1>[1,3] = " CE" THEN
         ENR_TEMPO<W_Ligne>=ENR_ARCHIVEFACT<W_Rang,1>:SPACE(3)
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_ARCHIVEFACT<W_Rang,1>:SPACE(4)
      END
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(25):ENR_ARCHIVEFACT<W_Rang,2>[1,24]
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1

      IF ENR_ARCHIVEFACT<W_Rang,1>[1,3] = " AU" THEN
         ENR_TEMPO<W_Ligne>=ENR_ARCHIVEFACT<W_Rang,1>:SPACE(10)
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_ARCHIVEFACT<W_Rang,1>:SPACE(18)
      END
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(13):ENR_ARCHIVEFACT<W_Rang,2>
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1

      IF ENR_ARCHIVEFACT<W_Rang,1>[1,3] = " LE" THEN
         ENR_TEMPO<W_Ligne>=OCONV(ENR_ARCHIVEFACT<W_Rang,1>,"MCU"):SPACE(34-LEN(ENR_ARCHIVEFACT<W_Rang,1>))
      END ELSE
         ENR_TEMPO<W_Ligne>=OCONV(ENR_ARCHIVEFACT<W_Rang,1>,"MCU"):SPACE(14)
      END
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(23):TRIM(ENR_ARCHIVEFACT<W_Rang,2> "R26(#9)"):ENR_ARCHIVEFACT<W_Rang,3>
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1

      ENR_TEMPO<W_Ligne>=SPACE(57):ENR_ARCHIVEFACT<W_Rang,2>
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1

      W_Var=ENR_ARCHIVEFACT<W_Rang,2>
      GOSUB 80
      ENR_ARCHIVEFACT<W_Rang,2>=W_Var
      ENR_TEMPO<W_Ligne>=SPACE(57):ENR_ARCHIVEFACT<W_Rang,2>
      W_Ligne=W_Ligne+1   
      W_Rang=W_Rang+1
   END ELSE

      FOR j=1 TO 2
         IF ENR_ARCHIVEFACT<W_Rang> # "" THEN
            ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEFACT<W_Rang>
            W_Ligne=W_Ligne+1   
            W_Rang=W_Rang+1
         END ELSE
            ENR_TEMPO<W_Ligne>=""
            W_Ligne=W_Ligne+1   
            W_Rang=W_Rang+1
         END
      NEXT j

   END

RETURN

*****************************************************************************
*  CONVERTIR LETTRE ACCENTUEE 
80

   W_Var=CONVERT("","a",W_Var)
   W_Var=CONVERT("","a",W_Var)
   W_Var=CONVERT("","e",W_Var)
   W_Var=CONVERT("","e",W_Var)
   W_Var=CONVERT("","e",W_Var)
   W_Var=CONVERT("","o",W_Var)
   W_Var=CONVERT("","u",W_Var)

RETURN

*****************************************************************************
*  REQUETE ARCHIVEFACT 
100

   W_Temp='SSELECT ARCHIVEFACT AVEC AssocArcFact = "':ENR_TEMPO<1,1>:'"'
   W_Temp=W_Temp:' AND AVEC PeriodeArcFact = "':ENR_TEMPO<1,2>:'"'
   W_Temp=W_Temp:' AND AVEC ActiviteArcFact = "':ENR_TEMPO<1,3>:'"'

   IF ENR_TEMPO<1,4> = "Resp" THEN
      IF ENR_TEMPO<1,5> # "" THEN
         W_Temp=W_Temp:' AND AVEC CodeRespArcFact = "':ENR_TEMPO<1,5>:'"'
      END ELSE
         W_Temp=W_Temp:' AND AVEC CodeRespArcFact # ""'
      END
   END ELSE
      IF ENR_TEMPO<1,4> = "Sect" THEN
         IF ENR_TEMPO<1,5> # "" THEN
            W_Temp=W_Temp:' AND AVEC CodeSectArcFact = "':ENR_TEMPO<1,5>:'"'
         END ELSE
            W_Temp=W_Temp:' AND AVEC CodeSectArcFact # ""'
         END
      END
   END

   IF ENR_TEMPO<1,6> = "Aide" THEN
      W_Temp=W_Temp:' AND AVEC NomAideArcFact >= "':ENR_TEMPO<1,7>:']" AND AVEC NomAideArcFact <= "':ENR_TEMPO<1,8>:']"'
   END ELSE
      IF ENR_TEMPO<1,6> = "NumFact" THEN
         W_Temp=W_Temp:' AND AVEC NumFactArcFact >= "':ENR_TEMPO<1,7>:']" AND AVEC NumFactArcFact <= "':ENR_TEMPO<1,8>:']"'
      END
   END

   IF ENR_TEMPO<1,9>="1" THEN
      W_Temp=W_Temp:' PAR ComAdrArcFact PAR NomAdrArcFact'
   END

   IF ENR_TEMPO<1,10>="Alpha" THEN
      W_Temp=W_Temp:' PAR NomAideArcFact PAR PrenomAideArcFact PAR @ID'
   END ELSE
      IF ENR_TEMPO<1,10>="Resp" THEN
         W_Temp=W_Temp:' PAR CodeRespArcFact PAR NomAideArcFact PAR PrenomAideArcFact PAR @ID'
      END ELSE
         IF ENR_TEMPO<1,10>="Sect" THEN
            W_Temp=W_Temp:' PAR CodeSectArcFact PAR NomAideArcFact PAR PrenomAideArcFact PAR @ID'
         END ELSE
            IF ENR_TEMPO<1,10>="NumFact" THEN
               W_Temp=W_Temp:' PAR NumFactArcFact PAR NomAideArcFact PAR PrenomAideArcFact PAR @ID'
            END ELSE
               IF ENR_TEMPO<1,10>="Comm" THEN
                  W_Temp=W_Temp:' PAR LibComArcFact PAR NomAideArcFact PAR PrenomAideArcFact PAR @ID'
               END 
            END
         END
      END
   END

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

   IF MSGCODE<1>=209 THEN
      STOP
   END ELSE
      SELECT F.ARCHIVEFACT TO W_RequeteArchiveFact

      ENR_TEMPO=""
      W_End="FAUX"
      i=1

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

         ENR_TEMPO<1,i>=W_Cle
         i=i+1

      REPEAT
   END

   WRITE ENR_TEMPO ON F.TEMPO,"ARCHIVEFACT":W_User

RETURN
