[Progress] Fonction Accumulate qui marche pas

Fonction Accumulate qui marche pas [Progress] - Divers - Programmation

Marsh Posté le 15-12-2002 à 23:19:32    

Bon jsais que c pas tres répendu le progress sur ce forum mais je tente le coup parce que là jsuis vraiment découragé
 

Code :
  1. DEF VAR VD-Date AS DATE FORMAT 99/99/9999.
  2.     DEF VAR VC-Marque AS CHAR.
  3.    
  4.     ASSIGN VD-DATE = DATE(INPUT fln_Date).
  5.     FOR EACH Facture WHERE Facture.I-SousGarantie <> 0 AND Facture.D-DateFacture >= DATE(INPUT fln_Date):
  6.         FIND FIRST Vehicule OF Facture NO-LOCK NO-ERROR.
  7.        
  8.         CREATE TFacture.
  9.         ASSIGN  TFacture.C-Marque = Vehicule.C-Marque
  10.                 TFacture.I-NoFacture = Facture.I-NoFacture
  11.                 TFacture.N-TempsMainOeuvre = Facture.N-TempsMainOeuvre
  12.                 TFacture.I-SousGarantie = Facture.I-SousGarantie.
  13.     END.
  14.    
  15.     OUTPUT TO CR0044.txt PAGED.
  16.    
  17.     FIND FIRST CieParam NO-LOCK NO-ERROR.
  18.    
  19.     FOR EACH TFacture BREAK BY TFacture.C-Marque:
  20.    
  21.         IF TFacture.C-Marque <> VC-Marque THEN
  22.         DO:   
  23.             PUT "CR 0044  Réclamation au fabricant pour la période débutant le  ".
  24.             PUT VD-DATE SKIP.
  25.             PUT "Date:  ".
  26.             PUT TODAY.
  27.             PUT " à ".
  28.             PUT String(TIME,"HH:MM" ).
  29.             PUT "Page:" AT 50.
  30.             PUT PAGE-NUMBER AT 55 SKIP(1).
  31.             PUT "Fabricant :  " AT 5.
  32.             PUT TFacture.C-Marque.
  33.             PUT "# Date" AT 9 SKIP.
  34.             PUT "  facture facture".
  35.             PUT "Frais MO Cout pieces" AT 24 SKIP.
  36.             PUT "--------- ---------- ---------- -----------" SKIP.
  37.            
  38.             VC-Marque = TFacture.C-Marque.
  39.         END.
  40.        
  41.         FOR EACH Facture OF TFacture, EACH Vehicule OF Facture WHERE Vehicule.C-Marque = TFacture.C-Marque:
  42.             PUT TFacture.I-NoFacture TO 9.
  43.             PUT Facture.D-Date AT 11.
  44.             IF TFacture.I-SousGarantie = 1 THEN
  45.             DO:
  46.                 ACCUMULATE TFacture.N-TempsMainOeuvre * CieParam.N-TauxHorraire (TOTAL).
  47.                 PUT TFacture.N-TempsMainOeuvre * CieParam.N-TauxHorraire TO 31.
  48.             END.
  49.             ELSE
  50.                 PUT "0.00" TO 31.
  51.             FOR EACH Detail OF Facture:
  52.                 FIND FIRST Piece OF Detail NO-LOCK NO-ERROR.
  53.                 ACCUMULATE Detail.I-QuantiteRequise * Piece.N-Prix (TOTAL).         
  54.             END.
  55.             PUT ACCUM TOTAL Detail.I-QuantiteRequise * Piece.N-Prix TO 43 SKIP.
  56.             ACCUMULATE (ACCUM TOTAL Detail.I-QuantiteRequise * Piece.N-Prix) (TOTAL).
  57.            
  58.             IF LAST-OF (TFacture.C-Marque) THEN
  59.             DO:
  60.                 DEF VAR N-SousTotal AS DECIMAL.
  61.                 N-SousTotal = (ACCUM TOTAL TFacture.N-TempsMainOeuvre * CieParam.N-TauxHorraire) + (ACCUM TOTAL (ACCUM TOTAL Detail.I-QuantiteRequise * Piece.N-Prix)).
  62.                
  63.                 PUT "---------- -----------" AT 25 SKIP.
  64.                 PUT ACCUM TOTAL TFacture.N-TempsMainOeuvre * CieParam.N-TauxHorraire TO 31.
  65.                 PUT ACCUM TOTAL (ACCUM TOTAL Detail.I-QuantiteRequise * Piece.N-Prix) TO 43 SKIP(1).
  66.                 PUT "Sous Total:" TO 42.
  67.                 PUT N-SousTotal TO 52 SKIP.
  68.                 PUT "TPS:" TO 42.
  69.                 PUT CieParam.N-TPS * N-SousTotal TO 52 SKIP.
  70.                 PUT "TVQ:" TO 42.
  71.                 PUT CieParam.N-TVQ * (N-SousTotal + (CieParam.N-TPS * N-SousTotal)) TO 52 SKIP.
  72.                 PUT "GRAND Total:" TO 42.
  73.                 PUT N-SousTotal + CieParam.N-TVQ * (N-SousTotal + (CieParam.N-TPS * N-SousTotal)) + CieParam.N-TPS * N-SousTotal TO 52 SKIP.
  74.                 OUTPUT CLOSE.
  75.                 OUTPUT TO CR0044.txt PAGED APPEND.
  76.             END.
  77.            
  78.         END.
  79.        
  80.        
  81.        
  82.     END.
  83.    
  84.  
  85.     OUTPUT CLOSE.
  86.    
  87.     MESSAGE "Impression terminée.".


 
ce dode devrait me permettre de faire un rapport, ca marche plutot bien sauf pour 2 trucs
 
les sous-totaux de ma colonne Frais MO et Cout piece ne fonctionne pas, ca me donne le prix de la derniere piece alors que mon Accumulate est selon moi correctement fait
 
la 2e question c pour connaitre une fonction de saut de page, parce que présentment jfais une fermeture et ouverture de fichier, sauf que ca reset mon # de page, donc jai tjrs 1 comme # de page
 
merci


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 15-12-2002 à 23:19:32   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed